說明:這個延伸點是用來將放下的行為新增到其他外掛程式所定義的檢視畫面中。
由於外掛程式機制所強制實施的 UI 分層作業,因此,檢視畫面通常不會知道其他檢視畫面的內容和本質。 結果不同外掛程式的拖放作業也有可能不同。 比方說,有人可能會想提供 Java 重構支援,讓使用者從 Java 編輯器內容概要畫面中, 將方法拖曳到資源導覽器中的另一 Java 檔案中。 由於資源導覽器不知道 Java 內容的任何相關事項, 因此,在 Java 方法放入其中時,它不知道要怎麼辦。 同樣地,任何 ISV 都可能想要將其部份內容放到其中一個 Java 檢視器中。
org.eclipse.ui.dropActions 延伸點是由「平台」提供, 以處理這些狀況。 這個機制會將放下行為回頭委派給放下作業的起始者。 這個行為包含在一個必須實作 org.eclipse.ui.part.IDropActionDelegate 的動作中。 本身是拖曳作業來源的檢視器必須支援 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); } } }如果需要較完整的範例,請參閱「平台」的 Readme 範例。 在該範例中,放下動作定義在 ReadmeDropActionDelegate 中, 而且是由 ReadmeContentOutlineDragListener 使用。
API 資訊:class 屬性值必須是實作 org.eclipse.ui.part.IDropActionDelegate 之 Java 類別的完整名稱。 這個類別的載入要儘可能晚,以避免在真正需要它之前載入整個外掛程式。
提供的實作:工作台不會提供這個延伸點的實作。 外掛程式可以提供到這個延伸點,以新增放下行為到其他外掛程式所定義的檢視畫面中。
Copyright (c) 2002 IBM Corporation and others.
All rights reserved.
這個程式和伴隨的素材可以根據伴隨這個分送,而且可在 http://www.eclipse.org/legal/cpl-v10.html 中取得的 Common Public License v1.0 的條款來使用