Actions de suppression

org.eclipse.ui.dropActions

Ce point d'extension sert à ajouter un comportement de suppression à des 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-in. 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 PluginTransferData dans l'événement de glissement. Pour savoir comment ajouter un support de glissement à un afficheur, reportez-vous org.eclipse.jface.viewers.StructuredViewer#addDragSupport.

<!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>


L'exemple ci-dessous illustre l'extension d'une action de suppression :

    

<extension point=

"org.eclipse.ui.dropActions"

>

<action id=

"mon_action_de_suppression"

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.

La valeur de l'attribut class doit correspondre au nom qualifié complet d'une classe Java implémentant 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.

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.