Übergabeaktionen

Kennung: org.eclipse.ui.dropActions

Beschreibung: An diesem Erweiterungspunkt kann ein Übergabeverhalten zu Sichten hinzugefügt werden, die durch andere Plug-ins definiert werden.

Auf Grund der Schichtengestaltung in der Benutzerschnittstelle, die durch den Plug-in-Mechanismus vorgegeben ist, können Sichten häufig Inhalt und Gattung anderer Sichten nicht erkennen. Dies kann das Ziehen und Übergeben zwischen Plug-ins erschweren. So kann es beispielsweise denkbar sein, dass eine Unterstützung für das Java-Refactoring bereitgestellt werden soll, wobei der Benutzer eine Methode aus der Inhaltsgliederung des Java-Editors mit der Maus in eine andere Datei zieht, die im Ressourcennavigator angezeigt wird. Da der Ressourcennavigator Java-Inhalt nicht erkennt, weiß er nicht, welches Verhalten beim Übergeben von Java-Methoden ausgeführt werden soll. Analog könnte es denkbar sein, dass ein unabhängiger Softwarelieferant Teilinhalte in eine der Java-Anzeigefunktionen übergeben wollen.

Der Erweiterungspunkt org.eclipse.ui.dropActions wird durch die Plattform bereitgestellt, um solche Situationen verarbeiten zu können. Dieser Mechanismus delegiert das Übergabeverhalten zurück an den Absender der Übergabeoperation. Dieses Verhalten ist in einer Aktion enthalten, die org.eclipse.ui.part.IDropActionDelegate implementieren muss. Die Anzeigefunktion, die die Quelle der Ziehoperation ist, muss den Übertragungstyp org.eclipse.ui.part.PluginTransfer unterstützen und ein Objekt PluginTransferData in das Ziehereignis stellen. Informationen dazu, wie die Ziehunterstützung zu einer Anzeigefunktion hinzugefügt werden kann, finden Sie in "org.eclipse.jface.viewers.StructuredViewer#addDragSupport".

Konfigurationsbefehle:

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

Beispiele: Das folgende Beispiel zeigt eine Erweiterung für ein Ziehaktion.

    <extension point="org.eclipse.ui.dropActions"> 
        <action 
            id="my_drop_action" 
            class="com.xyz.eclipse.TestDropAction"> 
        </action> 
    </extension>  

Das folgende Beispiel stellt eine Listener-Funktion für Ziehereignisse dar, die die oben definierte Übergabeaktion verwendet:

 
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); 
        } 
    } 
} 

Ein umfangreicheres Beispiel finden Sie im Beispiel der Readme-Datei für die Plattform. In diesem Beispiel ist in "ReadmeDropActionDelegate" eine Übergabeaktion definiert. Es wird von "ReadmeContentOutlineDragListener" verwendet.

API-Informationen: Der Wert des Attributs "class" muss der vollständig qualifizierte Name einer Java-Klasse sein, die org.eclipse.ui.part.IDropActionDelegate implementiert. Diese Klasse wird so spät wie möglich geladen, damit das gesamte Plug-in erst dann geladen wird, wenn es wirklich benötigt wird.

Bereitgestellte Implementierung: Die Workbench stellt keine Implementierung für diesen Erweiterungspunkt zur Verfügung. Plug-ins können diesen Erweiterungspunkt ergänzen und Übergabeverhalten für Sichten hinzufügen, die durch andere Plug-ins definiert werden.

Copyright (c) 2002 IBM Corporation und Andere. Alle Rechte vorbehalten. Dieses Programm und sein Begleitmaterial werden gemäß den Bedingungen der "Common Public License v1.0" zur Verfügung gestellt, die diese Verteilung begleitet und unter "http://www.eclipse.org/legal/cpl-v10.html" abgerufen werden kann.