A bedolgozó mechanizmus által megadott UI rétegezés miatt a nézetek gyakran nem ismerik más nézetek tartalmát és jellegét. Ez megnehezíti a bedolgozók közötti fogd-és-vidd műveleteket. Biztosítható például Java átdolgozási támogatás, melynek segítségével a felhasználó a Java szerkesztő tartalomkiemelőjéből áthúzhat egy metódust az erőforrás-navigátor egy másik java fájljába. Mivel az erőforrás-navigátor nem tud semmit a Java tartalomról, nem tudja, hogy hogyan viselkedjen a java metódusok érkezésekor. Ehhez hasonlóan az ISV a tartalom egy részét áthúzhatja a Java megjelenítőkbe.
A Platform az org.eclipse.ui.dropActions kiterjesztési pontot biztosítja ezen helyzetek kezelése érdekében. Ez a mechanizmus visszaadja a legördülési viselkedést a húzási művelet kezdeményezőjének. Ezt a viselkedést egy olyan tevékenység tartalmazza, amelynek meg kell valósítania az org.eclipse.ui.part.IDropActionDelegate elemet. Az áthúzás művelet forrását képező megjelenítőnek támogatnia kell az org.eclipse.ui.part.PluginTransfer átviteltípust, és egy PluginTransferData objektumot helyez az áthúzás eseménybe. Az áthúzás támogatás megjelenítőhöz adásával kapcsolatos további információkat az org.eclipse.jface.viewers.StructuredViewer#addDragSupport tartalmaz.
<!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>
Az alábbiakban látható egy áthúzásfigyelő példa, amely a fent megadott elvetés tevékenységet használja.<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 = ...//adja meg az elküldendő adatokat. event.data = new PluginTransferData( "saját_elvetés_tevékenység", dataToSend); } } }Összetett példáért tekintse meg a Platform readme példát. Ebben a példában az elvetés tevékenységet a ReadmeDropActionDelegate elem adja meg, és a ReadmeContentOutlineDragListener használja.
Copyright (c) 2002, 2004 IBM Corporation és mások.
Minden jog fenntartva. Jelen program és annak kísérőanyagai a csomaghoz
tartozó, illetve a
http://www.eclipse.org/legal/epl-v10.html
címen is elérhető Eclipse Public License 1.0 verziójának hatálya alatt lettek
közzétéve.