放下操作

标识:org.eclipse.ui.dropActions

描述:此扩展点用来将放下行为添加到其它插件定义的视图中。

由于插件机制实施的用户界面分层,各视图通常不了解其它视图的内容和性质。这使在插件之间进行拖放操作很困难。例如,人们可能想提供 Java 重构支持,从而用户可将方法从 Java 编辑器的内容大纲图拖动到资源导航器中的另一 java 文件中。由于资源导航器不了解 Java 内容,当将 java 方法放到其上时,资源导航器不知道该如何处理。类似地,某个 ISV 可能想将其某些内容放到其中一个 Java 查看器中。

平台提供了 org.eclipse.ui.dropActions 扩展点以解决这些情况。此机制授权放下行为返回到拖动操作的起始处。此行为包含在必须实现 org.eclipse.ui.part.IDropActionDelegate 的操作中。作为拖动操作源的查看器必须支持 the org.eclipse.ui.part.PluginTransfer 传送类型,并将 PluginTransferData 对象置于拖动事件中。参见 org.eclipse.jface.viewers.StructuredViewer#addDragSupport 以了解如何将拖动支持添加到查看器中。

配置标记:

   <!ELEMENT extension (action*)>

   <!ATTLIST extension
     point CDATA #REQUIRED
     id    CDATA #IMPLIED
     name  CDATA #IMPLIED
   >

   <!ELEMENT action EMPTY>

   <!ATTLIST action
     id    CDATA #REQUIRED
     class CDATA #REQUIRED
   >

示例:以下是放下操作扩展的示例:

    <extension point="org.eclipse.ui.dropActions">
        <action
            id="my_drop_action" 
            class="com.xyz.eclipse.TestDropAction">
        </action>
   </extension> 

以下是利用上面所定义的放下操作的拖动侦听器一个示例。

 
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); 
        } 
    } 
} 

有关较完整的示例,参见“平台”自述文件示例。在该示例中,放下操作是在 ReadmeDropActionDelegate 中定义的,且由 ReadmeContentOutlineDragListener 使用。

API 信息:class 属性的值必须是实现 org.eclipse.ui.part.IDropActionDelegate 的 Java 类的全限定名。尽可能迟地装入此类以避免在真正需要整个插件之前就装入该插件

所提供的实现:工作台不提供此扩展点的实现。插件可向此扩展点作添加以将放下行为添加到其它插件定义的视图中。

Copyright (c) 2002, 2003 IBM Corporation and others. All rights reserved. 该程序及附带提供的资料是基于“一般公共许可证”(Common Public License) v1.0 的条款提供的,本发行版中提供了该许可证条款,并且也可 在以下位置处找到该条款:http://www.eclipse.org/legal/cpl-v10.htm