*******************************************************************************/
package org.simantics.ui.dnd;
-import java.awt.datatransfer.DataFlavor;
-import java.awt.datatransfer.FlavorTable;
import java.awt.datatransfer.SystemFlavorMap;
-import java.util.Map;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.swt.dnd.ByteArrayTransfer;
import org.eclipse.swt.dnd.TransferData;
-import sun.awt.datatransfer.DataTransferer;
-
public class LocalObjectTransfer extends ByteArrayTransfer {
// First attempt to create a UUID for the type name to make sure that
// <code>LocalSelectionTransfer</code>
public static final String TYPE_NAME = SystemFlavorMap.encodeJavaMIMEType(LocalObjectTransferable.TYPE_NAME);
- private static int getMapping() {
-
- for(Map.Entry<DataFlavor, String> entry : SystemFlavorMap.getDefaultFlavorMap().getNativesForFlavors(new DataFlavor[] { LocalObjectTransferable.FLAVOR }).entrySet()) {
- for(long l : DataTransferer.getInstance().getFormatsForFlavorAsArray(entry.getKey(), (FlavorTable)SystemFlavorMap.getDefaultFlavorMap())) {
- return (int)l;
- }
- }
-
- throw new Error("No mapping.");
-
- }
+// private static int getMapping() {
+//
+// for(Map.Entry<DataFlavor, String> entry : SystemFlavorMap.getDefaultFlavorMap().getNativesForFlavors(new DataFlavor[] { LocalObjectTransferable.FLAVOR }).entrySet()) {
+// for(long l : DataTransferer.getInstance().getFormatsForFlavorAsArray(entry.getKey(), (FlavorTable)SystemFlavorMap.getDefaultFlavorMap())) {
+// return (int)l;
+// }
+// }
+// DataFlavor[] flavors = SystemFlavorMap.getDefaultFlavorMap().getNativesForFlavors(new DataFlavor[] { LocalObjectTransferable.FLAVOR }).keySet().toArray(new DataFlavor[0]);
+// for(long l : DataTransferer.getInstance().getFormatsForFlavors(flavors, (FlavorTable)SystemFlavorMap.getDefaultFlavorMap()).keySet()) {
+// return (int)l;
+// }
+//
+// throw new Error("No mapping.");
+//
+// }
// In Linux (Ubuntu 14.04) using SystemFlavorMap to get the type id gives different result than what is received with drop data (TransferData.type)
private static final int TYPEID = registerType(TYPE_NAME);//getMapping();