Elvetés tevékenységek

org.eclipse.ui.dropActions

Ez a kiterjesztési pont elvetés viselkedést ad hozzá más bedolgozók által megadott nézetekhez.

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ábbi az elvetés tevékenység kiterjesztésre mutat példát:

    

<extension point=

"org.eclipse.ui.dropActions"

>

<action id=

"my_drop_action"

class=

"com.xyz.eclipse.TestDropAction"

>

</action>

</extension>

Az alábbiakban látható egy áthúzásfigyelő példa, amely a fent megadott elvetés tevékenységet használja.

 
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.

A class attribútum értékének az org.eclipse.ui.part.IDropActionDelegate elemet megvalósító Java osztály teljes képzésű nevének kell lennie. Ez az osztály a lehető legkésőbbi időpontban kerül betöltésre annak elkerülése érdekében, hogy a teljes bedolgozó betöltésre kerüljön, mielőtt valójában szükség lenne rá.

A munkaterület nem biztosítja ezen kiterjesztési pont megvalósítását. A bedolgozók közreadhatják ezt a kiterjesztési pontot annak érdekében, hogy elvetés viselkedést biztosítsanak más bedolgozók által megadott nézetekhez.