Class EditorInputTransfer
- java.lang.Object
-
- org.eclipse.swt.dnd.Transfer
-
- org.eclipse.swt.dnd.ByteArrayTransfer
-
- org.eclipse.ui.part.EditorInputTransfer
-
public class EditorInputTransfer extends ByteArrayTransfer
TheEditorInputTransfer
class is used to transfer anIEditorInput
and corresponding editorId from one part to another in a drag and drop operation. Only opening of internal editors is supported.In every drag and drop operation there is a
DragSource
and aDropTarget
. When a drag occurs aTransfer
is used to marshall the drag data from the source into a byte array. If a drop occurs anotherTransfer
is used to marshall the byte array into drop data for the target.This class can be used for a
Viewer
or an SWT component directly. A singleton is provided which may be serially reused (seegetInstance
). For an implementor ofIEditorInput
to be supported byEditorInputTransfer
, it must provide a proper implementation ofIEditorInput
.getPersistable
. For further details, consult theorg.eclipse.ui.elementFactories
extension point.The data for a transfer is represented by the
EditorInputData
class, and a convenience methodcreateEditorInputData
is provided. ADragSource
.dragSetData
implementation should set the data to an array ofEditorInputData
. In this way, the dragging of multiple editor inputs is supported.Below is an example of how to set the data for dragging a single editor input using a
EditorInputTransfer
.public void dragSetData(DragSourceEvent event) { if (EditorInputTransfer.getInstance().isSupportedType(event.dataType)) { EditorInputTransfer.EditorInputData data = EditorInputTransfer.createEditorInputData(EDITOR_ID, getEditorInput()); event.data = new EditorInputTransfer.EditorInputData[] { data }; } }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
EditorInputTransfer.EditorInputData
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static EditorInputTransfer.EditorInputData
createEditorInputData(String editorId, IEditorInput input)
static EditorInputTransfer
getInstance()
Returns the singleton instance.protected int[]
getTypeIds()
Returns the platform specific ids of the data types that can be converted using this transfer agent.protected String[]
getTypeNames()
Returns the platform specific names of the data types that can be converted using this transfer agent.void
javaToNative(Object data, TransferData transferData)
This implementation ofjavaToNative
converts a javabyte[]
to a platform specific representation.Object
nativeToJava(TransferData transferData)
This implementation ofnativeToJava
converts a platform specific representation of a byte array to a javabyte[]
.-
Methods inherited from class org.eclipse.swt.dnd.ByteArrayTransfer
getSupportedTypes, isSupportedType
-
Methods inherited from class org.eclipse.swt.dnd.Transfer
registerType, validate
-
-
-
-
Method Detail
-
getInstance
public static EditorInputTransfer getInstance()
Returns the singleton instance.- Returns:
- the singleton instance
-
getTypeIds
protected int[] getTypeIds()
Description copied from class:Transfer
Returns the platform specific ids of the data types that can be converted using this transfer agent.- Specified by:
getTypeIds
in classTransfer
- Returns:
- the platform specific ids of the data types that can be converted using this transfer agent
-
getTypeNames
protected String[] getTypeNames()
Description copied from class:Transfer
Returns the platform specific names of the data types that can be converted using this transfer agent.- Specified by:
getTypeNames
in classTransfer
- Returns:
- the platform specific names of the data types that can be converted using this transfer agent.
-
javaToNative
public void javaToNative(Object data, TransferData transferData)
Description copied from class:ByteArrayTransfer
This implementation ofjavaToNative
converts a javabyte[]
to a platform specific representation.- Overrides:
javaToNative
in classByteArrayTransfer
- Parameters:
data
- a javabyte[]
containing the data to be convertedtransferData
- an emptyTransferData
object that will be filled in on return with the platform specific format of the data- See Also:
Transfer.nativeToJava(org.eclipse.swt.dnd.TransferData)
-
nativeToJava
public Object nativeToJava(TransferData transferData)
Description copied from class:ByteArrayTransfer
This implementation ofnativeToJava
converts a platform specific representation of a byte array to a javabyte[]
.- Overrides:
nativeToJava
in classByteArrayTransfer
- Parameters:
transferData
- the platform specific representation of the data to be converted- Returns:
- a java
byte[]
containing the converted data if the conversion was successful; otherwise null - See Also:
Transfer.javaToNative(java.lang.Object, org.eclipse.swt.dnd.TransferData)
-
createEditorInputData
public static EditorInputTransfer.EditorInputData createEditorInputData(String editorId, IEditorInput input)
-
-