The 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};
}
}
See Also: org.eclipse.jface.viewers.StructuredViewer See Also: org.eclipse.swt.dnd.DropTarget See Also: org.eclipse.swt.dnd.DragSource See Also: org.eclipse.ui.IEditorInput See Also: org.eclipse.ui.IPersistableElement See Also: org.eclipse.ui.IElementFactory |