package org.limewire.ui.swing.dnd;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.limewire.core.api.library.LocalFileList;
public class LocalFileListTransferable extends LocalFileTransferable {
public static final DataFlavor LOCAL_FILE_LIST_DATA_FLAVOR = new DataFlavor(LocalFileList.class, "Local File List Transferable");
private final LocalFileList localFileList;
public LocalFileListTransferable(LocalFileList localFileList, File[] files) {
super(files);
this.localFileList = localFileList;
}
public LocalFileList getLocalFileList() {
return localFileList;
}
@Override
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
if(flavor.equals(LOCAL_FILE_LIST_DATA_FLAVOR)){
return localFileList;
} else {
return super.getTransferData(flavor);
}
}
@Override
public DataFlavor[] getTransferDataFlavors() {
List<DataFlavor> dataFlavors = new ArrayList<DataFlavor>(Arrays.asList(super.getTransferDataFlavors()));
dataFlavors.add(LOCAL_FILE_LIST_DATA_FLAVOR);
return dataFlavors.toArray(new DataFlavor[0]);
}
@Override
public boolean isDataFlavorSupported(DataFlavor flavor) {
return flavor.equals(LOCAL_FILE_LIST_DATA_FLAVOR) || super.isDataFlavorSupported(flavor);
}
}