You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.5 KiB
49 lines
1.5 KiB
package com.fr.design.mainframe.dnd; |
|
|
|
import com.fr.log.FineLoggerFactory; |
|
|
|
import java.awt.datatransfer.DataFlavor; |
|
import java.awt.datatransfer.Transferable; |
|
import java.awt.datatransfer.UnsupportedFlavorException; |
|
import java.util.ArrayList; |
|
import java.util.List; |
|
|
|
public class ArrayListTransferable implements Transferable { |
|
private DataFlavor localArrayListFlavor; |
|
private DataFlavor serialArrayListFlavor; |
|
private String localArrayListType = DataFlavor.javaJVMLocalObjectMimeType + |
|
";class=java.util.ArrayList"; |
|
private List data; |
|
|
|
public ArrayListTransferable(List alist) { |
|
data = alist; |
|
|
|
try { |
|
localArrayListFlavor = new DataFlavor(localArrayListType); |
|
} catch (ClassNotFoundException e) { |
|
FineLoggerFactory.getLogger().error(e.getMessage(), e); |
|
} |
|
|
|
serialArrayListFlavor = new DataFlavor(ArrayList.class, "ArrayList"); |
|
} |
|
|
|
public Object getTransferData(DataFlavor flavor) |
|
throws UnsupportedFlavorException { |
|
if (!isDataFlavorSupported(flavor)) { |
|
throw new UnsupportedFlavorException(flavor); |
|
} |
|
return data; |
|
} |
|
|
|
public DataFlavor[] getTransferDataFlavors() { |
|
return new DataFlavor[]{localArrayListFlavor, serialArrayListFlavor}; |
|
} |
|
|
|
public boolean isDataFlavorSupported(DataFlavor flavor) { |
|
if (localArrayListFlavor.equals(flavor)) { |
|
return true; |
|
} |
|
|
|
return serialArrayListFlavor.equals(flavor); |
|
} |
|
} |