Description : ce point d'extension est utilisé pour ajouter un comportement de suppression aux vues définies par d'autres plug-ins.
Du fait des différents niveaux d'interface utilisateur imposés par le mécanisme des plug-ins, les vues ne sont souvent pas conscientes du contenu et de la nature des autres vues. Ceci peut rendre difficile les opérations de déplacement par glissement entre plug-ins. Par exemple, vous pouvez souhaiter fournir un support de propagation des modifications Java, dans lequel l'utilisateur fait glisser une méthode du décomposeur de contenu de l'éditeur Java dans un autre fichier Java du navigateur de ressources. Comme ce dernier ne connaît pas le contenu Java, il ne sait pas comment se comporter lorsque les méthodes Java sont supprimées. De même, un ISV (fournisseur indépendant de logiciels) peut souhaiter supprimer une partie du contenu dans l'un des afficheurs Java.
Le point d'extension org.eclipse.ui.dropActions est fourni par la plateforme pour répondre à ces situations. Ce mécanisme délègue le comportement de suppression à l'auteur de l'opération de glissement. Ce comportement est contenu dans une action qui doit implémenter org.eclipse.ui.part.IDropActionDelegate. L'afficheur qui est la source de l'opération de glissement doit supporter le type de transfert org.eclipse.ui.part.PluginTransfer et placer un objet org.eclipse.ui.part.PluginTransferData dans l'événement de glissement. Pour apprendre comment ajouter un support de glissement à un afficheur, reportez-vous à org.eclipse.jface.viewers.StructuredViewer#addDragSupport.
Marques de configuration :
<!ELEMENT dropContribution (action)*>
<!ELEMENT action*>
<!ATTLIST action
id
CDATA #REQUIRED
class CDATA #REQUIRED
>
Exemples :
L'exemple ci-dessous illustre une extension d'action de suppression.
<extension point="org.eclipse.ui.dropActions">
<action>
id="my_drop_action"
class="com.xyz.eclipse.TestDropAction"
</action>
</extension>
L'exemple suivant est celui d'un écouteur de glissement qui utilise l'action de suppression définie ci-dessus :
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);
}
}
}
Pour un exemple plus complet, reportez-vous à l'exemple du readme de la plateforme dans lequel l'action de suppression est définie dans ReadmeDropActionDelegate et est utilisée par l'écouteur ReadmeContentOutlineDragListener.
Informations d'API : la valeur de l'attribut class doit être un nom complet qualifié d'une classe Java qui implémente org.eclipse.ui.part.IDropActionDelegate. Cette classe est chargée aussi tardivement que possible afin d'éviter le chargement du plug-in tout entier avant que cela ne soit réellement nécessaire.
Implémentation fournie : le plan de travail ne fournit pas d'implémentation pour ce point d'extension. Les plug-ins peuvent contribuer à ce point d'extension pour ajouter un comportement de suppression aux vues définies par d'autres plug-ins.