Descrizione: questo punto di estensione viene utilizzato per aggiungere funzioni di rilascio alle viste definite da altri plug-in.
A causa della suddivisione in layer dell'interfaccia utente imposta dal meccanismo di plug-in, le viste spesso non rilevano il contenuto o la natura delle altre viste. Questo può rendere le operazioni di trascinamento e rilascio tra plug-in piuttosto complesse. Ad esempio, si potrebbe desiderare di fornire un supporto di refactoring Java, che consenta di trascinare un metodo da una funzione di struttura del contenuto dell'editor Java in un altro file Java, nella selezione risorse. Poiché la selezione risorse non conosce il contenuto Java, non sa come comportarsi quando metodi Java vengono rilasciati al suo interno. Ugualmente, un ISV potrebbe rilasciare parte del contenuto in uno dei visualizzatori Java.
Il punto di estensione org.eclipse.ui.dropActions viene fornito dalla piattaforma per risolvere queste situazioni. Questo meccanismo delega la funzione di rilascio all'elemento che ha originato l'operazione di trascinamento. La funzione è contenuta in un'azione che deve implementare org.eclipse.ui.part.IDropActionDelegate. Il visualizzatore che costituisce l'origine dell'operazione di trascinamento deve supportare il tipo di trasferimento org.eclipse.ui.part.PluginTransfer, e posizionare un oggetto PluginTransferData nell'evento trascinamento. Per apprendere come aggiungere un supporto di trascinamento ad un visualizzatore, consultare org.eclipse.jface.viewers.StructuredViewer#addDragSupport.
Tag di configurazione:
<!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>Segue un esempio di un listener di trascinamento che utilizza l'azione di rilascio sopra riportata.
class MyDragListener extends DragSourceAdapter { public void dragSetData(DragSourceEvent event) { if (PluginTransfer.getInstance().isSupportedType(event.dataType)) { byte[] dataToSend = ...//immettere i dati da inviare. event.data = new PluginTransferData( my_drop_action, dataToSend); } } }Per un esempio più esaustivo, consultare l'esempio readme della piattaforma. Nell'esempio, l'azione di rilascio è definita in ReadmeDropActionDelegate, ed è utilizzata da ReadmeContentOutlineDragListener.
Informazione API: il valore dell'attributo class deve essere un nome completo di una classe Java che implementa org.eclipse.ui.part.IDropActionDelegate. Questa classe viene caricata per ultima, in modo da evitare il caricamento dell'intero plug-in prima del necessario.
Implementazione fornita: il workbench non fornisce implementazione per questo punto di estensione. I plug-in possono contribuire a questo punto di estensione per aggiungere funzioni di rilascio alle viste definite da altri plug-in.
Copyright (c) 2002 IBM Corporation e altri.
Tutti i diritti riservati. Questo programma e il materiale di accompagnamento
sono disponibili secondo i termini della Common Public License v1.0 che sono
distribuiti con il prodotto, e disponibili all'indirizzo
http://www.eclipse.org/legal/cpl-v10.html