Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/win32/org/eclipse/swt/dnd/Transfer.java')
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Drag and Drop/win32/org/eclipse/swt/dnd/Transfer.java87
1 files changed, 87 insertions, 0 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/win32/org/eclipse/swt/dnd/Transfer.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/win32/org/eclipse/swt/dnd/Transfer.java
new file mode 100755
index 0000000000..4556298271
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/win32/org/eclipse/swt/dnd/Transfer.java
@@ -0,0 +1,87 @@
+package org.eclipse.swt.dnd;
+
+/*
+ * Licensed Materials - Property of IBM,
+ * WebSphere Studio Workbench
+ * (c) Copyright IBM Corp 2000
+ */
+import org.eclipse.swt.internal.ole.win32.COM;
+
+/**
+ * The class <code>Transfer</code> provides a mechanism for converting a Java object to a
+ * platform specific format that can be passed around in a Drag and Drop operation and vice versa.
+ *
+ * <p>You should only need to become familiar with this class if you are implementing
+ * a Transfer subclass and you are unable to subclass the ByteArrayTransfer class.</p>
+ *
+ */
+public abstract class Transfer {
+/**
+ * Returns a list of the data types that can be transferred using this Transfer agent.
+ *
+ * <p>Only the data type fields of the TransferData Object are filled in.</p>
+ *
+ * @return a list of the data types that can be transferred using this Transfer agent
+ *
+ */
+abstract public TransferData[] getSupportedTypes();
+/**
+ * Returns true if the transferData data type can be transferred using this Transfer agent.
+ *
+ * @param transferData a platform specific description of a data type; only the data type fields
+ * of the TransferData Object need to be filled in
+ *
+ * @return true if the transferData data type can be transferred using this Transfer agent
+ *
+ */
+abstract public boolean isSupportedType(TransferData transferData);
+
+abstract protected int[] getTypeIds();
+abstract protected String[] getTypeNames();
+/**
+ * Converts a Java Object to a platform specific representation of the data.
+ *
+ * <p>On a successful conversion, the transferData.result field will be set to OLE.S_OK.
+ * If this transfer agent is unable to perform the conversion, the transferData.result field
+ * will be set to the failure value of OLE.DV_E_TYMED.</p>
+ *
+ * @param object a Java Object containing the data to be transferred
+ *
+ * @param transferData an empty TransferData object; this object will be filled in on return
+ * with the platform specfifc representation of the data
+ *
+ */
+
+ abstract protected void javaToNative (Object object, TransferData transferData);
+/**
+ * Converts a platform specific representation of data to a Java Object.
+ *
+ * @param transferData the platform specific representation of the data that has been transferred
+ *
+ * @return a Java Object containing the transferred data if the conversion was successful; otherwise null
+ *
+ */
+
+ abstract protected Object nativeToJava(TransferData transferData);
+/**
+ * Registers a name for a data type and returns the associated unique identifier.
+ *
+ * <p>You may register the same type more than once, the same unique identifier will be returned if the
+ * type has been previously registered.</p>
+ *
+ * <p>Note: Do <b>not</b> call this method with pre-defined Clipboard Format types such as CF_TEXT
+ * or CF_BITMAP because the pre-defined value will not be returned</p>
+ *
+ * @param formatName the name of a data type
+ *
+ * @return the unique identifier associated with htis data type
+ *
+ */
+public static int registerType(String formatName){
+ // Look name up in the registry
+ // If name is not in registry, add it and return assigned value.
+ // If name already exists in registry, return its assigned value
+ byte[] chFormatName = (formatName+'\0').getBytes();
+ return COM.RegisterClipboardFormat(chFormatName);
+}
+}

Back to the top