Lisäosamekanismin edellyttämän käyttöliittymän kerrosrakenteen takia näkymä ei ole selvillä muiden näkymien sisällöstä ja luonteista. Tämän takia lisäosien välinen vetäminen ja pudottaminen voi olla hankalaa. Oletetaan esimerkiksi, että halutaan lisätä koodinparannustuki, jonka avulla käyttäjä voi vetää metodin Java-muokkausohjelman sisällön hahmotelmanäkymästä resurssien navigaattorinäkymässä olevaan toiseen Java-tiedostoon. Koska resurssien navigaattorinäkymässä ei ole tietoja tästä Java-sisällöstä, näkymä ei osaa käsitellä siihen pudotettuja Java-metodeja. Tilanne on sama, jos sovelluskehittäjä haluaa pudottaa itse luomaansa sisältöä johonkin Java-katseluohjelmaan.
Käyttöympäristön org.eclipse.ui.dropActions-laajennuspiste on tarkoitettu tällaisia tilanteita varten. Tämä mekanismi siirtää pudotustoimien käsittelyn takaisin pudotustoiminnon lähteelle. Käsittelymääritys tehdään toiminnolla, jonka on toteutettava org.eclipse.ui.part.IDropActionDelegate-liittymä. Pudotustoiminnon lähteenä olevan katseluohjelman on tuettava org.eclipse.ui.part.PluginTransfer-siirtolajia ja sijoitettava PluginTransferData-objekti pudotustapahtumaan. Lisätietoja pudotustuen lisäämisestä katseluohjelmaan on org.eclipse.jface.viewers.StructuredViewer#addDragSupport-ohjeessa.
<!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>
Seuraavassa on esimerkki pudotuksen kuuntelutoiminnosta, joka käyttää edellä määritetty pudotustoimintoa.<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 = ...//anna lähetettävät tiedot. event.data = new PluginTransferData( "my_drop_action", dataToSend); } } }Ympäristön readme-tiedostossa on kuvattu näitä laajempi esimerkkitapaus. Siinä pudotustoiminto on määritetty ReadmeDropActionDelegate-laajennukseen ja pudotustoimintoa käyttää ReadmeContentOutlineDragListener-kuuntelutoiminto.
Copyright (c) 2002, 2004 IBM Corporation and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html