| <?xml version='1.0' encoding='UTF-8'?> |
| <!-- Schema file written by PDE --> |
| <schema targetNamespace="org.eclipse.ui"> |
| <annotation> |
| <appInfo> |
| <meta.schema plugin="org.eclipse.ui" id="dropActions" name="Drop Actions"/> |
| </appInfo> |
| <documentation> |
| 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. |
| </documentation> |
| </annotation> |
| |
| <element name="extension"> |
| <complexType> |
| <sequence> |
| <element ref="action" minOccurs="0" maxOccurs="unbounded"/> |
| </sequence> |
| <attribute name="point" type="string" use="required"> |
| <annotation> |
| <documentation> |
| a fully qualified identifier of the target extension point |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="id" type="string"> |
| <annotation> |
| <documentation> |
| an optional identifier of the extension instance |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="name" type="string"> |
| <annotation> |
| <documentation> |
| an optional name of the extension instance |
| </documentation> |
| <appInfo> |
| <meta.attribute translatable="true"/> |
| </appInfo> |
| </annotation> |
| </attribute> |
| </complexType> |
| </element> |
| |
| <element name="action"> |
| <complexType> |
| <attribute name="id" type="string" use="required"> |
| <annotation> |
| <documentation> |
| a unique identifier that can be used to reference this action |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="class" type="string" use="required"> |
| <annotation> |
| <documentation> |
| the name of the fully qualified class that implements |
| <samp>org.eclipse.ui.part.IDropActionDelegate</samp>. |
| </documentation> |
| <appInfo> |
| <meta.attribute kind="java" basedOn="org.eclipse.ui.part.IDropActionDelegate"/> |
| </appInfo> |
| </annotation> |
| </attribute> |
| </complexType> |
| </element> |
| |
| <annotation> |
| <appInfo> |
| <meta.section type="examples"/> |
| </appInfo> |
| <documentation> |
| 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. |
| </documentation> |
| </annotation> |
| |
| <annotation> |
| <appInfo> |
| <meta.section type="apiInfo"/> |
| </appInfo> |
| <documentation> |
| 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 |
| </documentation> |
| </annotation> |
| |
| <annotation> |
| <appInfo> |
| <meta.section type="implementation"/> |
| </appInfo> |
| <documentation> |
| 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. |
| </documentation> |
| </annotation> |
| |
| <annotation> |
| <appInfo> |
| <meta.section type="copyright"/> |
| </appInfo> |
| <documentation> |
| Copyright (c) 2002, 2005 IBM Corporation and others.<br> |
| |
| This program and the accompanying materials are made |
| available under the terms of the Eclipse Public License 2.0 which accompanies |
| this distribution, and is available at <a |
| href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-v20.html</a>/ |
| |
| SPDX-License-Identifier: EPL-2.0 |
| </documentation> |
| </annotation> |
| |
| </schema> |