diff --git a/src/main/java/me/goudham/domain/TransferableFileList.java b/src/main/java/me/goudham/domain/TransferableFileList.java new file mode 100644 index 0000000..78699aa --- /dev/null +++ b/src/main/java/me/goudham/domain/TransferableFileList.java @@ -0,0 +1,43 @@ +package me.goudham.domain; + +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.Transferable; +import java.awt.datatransfer.UnsupportedFlavorException; +import java.io.File; +import java.util.List; +import org.jetbrains.annotations.NotNull; + +public class TransferableFileList implements Transferable { + + private final List fileList; + + public TransferableFileList(@NotNull List fileList) { + this.fileList = fileList; + } + + @Override + public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException { + if (flavor.equals(DataFlavor.javaFileListFlavor)) { + return fileList; + } else { + throw new UnsupportedFlavorException(flavor); + } + } + + @Override + public DataFlavor[] getTransferDataFlavors() { + return new DataFlavor[] { DataFlavor.javaFileListFlavor }; + } + + @Override + public boolean isDataFlavorSupported(DataFlavor flavor) { + DataFlavor[] flavors = getTransferDataFlavors(); + for (DataFlavor dataFlavor : flavors) { + if (flavor.equals(dataFlavor)) { + return true; + } + } + + return false; + } +}