public class EditorInputTransfer extends ByteArrayTransfer
EditorInputTransfer
class is used to transfer an
IEditorInput
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 a
DropTarget
. When a drag occurs a Transfer
is used
to marshall the drag data from the source into a byte array. If a drop
occurs another Transfer
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 (see getInstance
).
For an implementor of IEditorInput
to be supported by
EditorInputTransfer
, it must provide a proper implementation of
IEditorInput
.getPersistable
. For further details,
consult the org.eclipse.ui.elementFactories
extension point.
The data for a transfer is represented by the EditorInputData
class, and a convenience method createEditorInputData
is
provided. A DragSource
.dragSetData
implementation
should set the data to an array of EditorInputData
. 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}; } }
Modifier and Type | Class and Description |
---|---|
static class |
EditorInputTransfer.EditorInputData |
Modifier and Type | Method and 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 of
javaToNative converts a java
byte[] to a platform specific representation. |
Object |
nativeToJava(TransferData transferData)
This implementation of
nativeToJava converts a platform specific
representation of a byte array to a java byte[] . |
getSupportedTypes, isSupportedType
registerType, validate
public static EditorInputTransfer getInstance()
protected int[] getTypeIds()
Transfer
getTypeIds
in class Transfer
protected String[] getTypeNames()
Transfer
getTypeNames
in class Transfer
public void javaToNative(Object data, TransferData transferData)
ByteArrayTransfer
javaToNative
converts a java
byte[]
to a platform specific representation.javaToNative
in class ByteArrayTransfer
data
- a java byte[]
containing the data to be convertedtransferData
- an empty TransferData
object that will
be filled in on return with the platform specific format of the dataTransfer.nativeToJava(org.eclipse.swt.dnd.TransferData)
public Object nativeToJava(TransferData transferData)
ByteArrayTransfer
nativeToJava
converts a platform specific
representation of a byte array to a java byte[]
.nativeToJava
in class ByteArrayTransfer
transferData
- the platform specific representation of the data to be convertedbyte[]
containing the converted data if the conversion was
successful; otherwise nullTransfer.javaToNative(java.lang.Object, org.eclipse.swt.dnd.TransferData)
public static EditorInputTransfer.EditorInputData createEditorInputData(String editorId, IEditorInput input)
Copyright (c) 2000, 2018 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.