| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
| </HEAD> |
| <HTML> |
| <BODY> |
| <H1><CENTER>Drop Actions</CENTER></H1> |
| <b><i>Identifier: </i></b>org.eclipse.ui.dropActions<p> |
| <b><i>Description: </i></b>This extension point is used to add drop behaviour to |
| views defined by other plugins. |
| <p> |
| Due to the UI layering imposed by the plugin |
| mechanism, views are often not aware of the content |
| and nature of other views. This can make drag and |
| drop operations between plugins difficult. |
| For example, one may wish to provide Java |
| refactoring support whereby the user drags a |
| method from the Java editor's content outliner |
| into another java file in the resource navigator. |
| Since the resource navigator doesn't know anything |
| about Java content, it doesn't know how to behave |
| when java methods are dropped onto it. |
| Similarly, an ISV may want to drop some of |
| their content into one of the Java viewers. |
| <p> |
| The <samp>org.eclipse.ui.dropActions</samp> extension point is |
| provided by the Platform to address these situations. |
| This mechanism delegates the drop behaviour back to |
| the originator of the drag operation. |
| This behaviour is contained in an action that |
| must implement |
| <samp>org.eclipse.ui.part.IDropActionDelegate</samp>. |
| The viewer that is the source of the drag |
| operation must support |
| <samp>the org.eclipse.ui.part.PluginTransfer</samp> |
| transfer type, and place a |
| <samp>PluginTransferData</samp> object in the drag event. |
| See org.eclipse.jface.viewers.StructuredViewer#addDragSupport |
| to learn how to add drag support to a viewer.<p><b><i>Configuration Markup:</i></b><p> |
| <p><samp> <!ELEMENT extension (dropContribution*)></samp> |
| <br><br><samp> <!ATTLIST extension</samp> |
| <br><samp> point CDATA #REQUIRED</samp> |
| <br><samp> id CDATA #IMPLIED</samp> |
| <br><samp> name CDATA #IMPLIED</samp> |
| <br><samp> ></samp> |
| <ul> |
| <li><b>point</b> - a fully qualified identifier of the target extension point</li><li><b>id</b> - an optional identifier of the extension instance</li><li><b>name</b> - an optional name of the extension instance</li></ul> |
| <p><samp> <!ELEMENT dropContribution (action*)></samp> |
| <p><samp> <!ELEMENT action EMPTY></samp> |
| <br><br><samp> <!ATTLIST action</samp> |
| <br><samp> id CDATA #REQUIRED</samp> |
| <br><samp> class CDATA #REQUIRED</samp> |
| <br><samp> ></samp> |
| <ul> |
| <li><b>id</b> - a unique identifier that can be used to reference this action</li><li><b>class</b> - the name of the fully qualified class that implements |
| <samp>org.eclipse.ui.part.IDropActionDelegate</samp>.</li></ul> |
| <b><i>Examples: </i></b>The following is an example of a drop action extension: |
| <p> |
| <pre> |
| <extension point="org.eclipse.ui.dropActions"> |
| <action |
| id="my_drop_action" |
| class="com.xyz.eclipse.TestDropAction"> |
| </action> |
| </extension> |
| </pre> |
| </p> |
| Here is an example of a drag listener that makes use of the drop |
| action defined above. |
| <p> |
| <pre> |
| class MyDragListener extends DragSourceAdapter { |
| public void dragSetData(DragSourceEvent event) { |
| if (PluginTransfer.getInstance().isSupportedType(event.dataType)) { |
| byte[] dataToSend = ...//enter the data to be sent. |
| event.data = new PluginTransferData( |
| "my_drop_action", dataToSend); |
| } |
| } |
| } |
| </pre> |
| </p> |
| For a more complete example, see the Platform |
| readme example. In that example, a drop action is |
| defined in ReadmeDropActionDelegate, and it is used |
| by ReadmeContentOutlineDragListener.<p> |
| <b><i>API Information: </i></b>The value of the class attribute must be a fully qualified name of a Java class that implements <samp>org.eclipse.ui.part.IDropActionDelegate</samp>. This class is loaded as late as possible to avoid loading the entire plug-in before it is really needed<p> |
| <b><i>Supplied Implementation: </i></b>The workbench does not provide an implementation for this extension point. Plug-ins can contribute to this extension point to add drop behavior to views defined by other plugins.<p> |
| <p> |
| Copyright (c) 2002 IBM Corporation and others. |
| All rights reserved. This program and the accompanying materials are made available under the terms of the Common Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/cpl-v10.html<p> |
| </BODY> |
| </HTML> |