Acciones de soltar

Identificador: org.eclipse.ui.dropActions

Descripción: este punto de extensión se utiliza para añadir un comportamiento de soltar a las vistas definidas por otros conectores.

Debido a la disposición en capas de la UI, impuesta por el mecanismo de los conectores, sucede a menudo que las vistas no conocen el contenido y la naturaleza de otras vistas. Esto puede llegar a dificultar las operaciones de arrastrar y soltar entre conectores. Por ejemplo, supongamos que se quiere proporcionar soporte de propagación Java, mediante el que el usuario arrastra un método desde el esquematizador de contenido del editor Java hasta otro archivo Java situado en el navegador de recursos. Como el navegador de recursos no tiene conocimiento del contenido Java, no sabe cómo comportarse cuando los métodos Java se sueltan en él. De modo similar, puede suceder que un ISV quiera soltar parte de su contenido en uno de los visores Java.

Para solucionar estas situaciones, la plataforma proporciona el punto de extensión org.eclipse.ui.dropActions. Este mecanismo delega el comportamiento de la operación de soltar en el originador de la operación de arrastrar. Este comportamiento está contenido en una acción que debe implementar org.eclipse.ui.part.IDropActionDelegate. El visor que actúa como origen de la operación de arrastrar debe dar soporte al tipo de transferencia org.eclipse.ui.part.PluginTransfer, y colocar un objeto org.eclipse.ui.part.PluginTransferData en el evento de arrastrar. Consulte org.eclipse.jface.viewers.StructuredViewer#addDragSupport para aprender cómo añadir soporte de arrastrar a un visor.

Códigos XML de configuración:

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

Ejemplos: a continuación figura un ejemplo de extensión de soltar:

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

Aquí tenemos un ejemplo de un escuchador de arrastrar que hace uso de la acción de soltar anteriormente definida.

 
class MyDragListener extends DragSourceAdapter { 
    public void dragSetData(DragSourceEvent event) { 
        if (PluginTransfer.getInstance().isSupportedType(event.dataType)) { 
            byte[] dataToSend = ...//especificar los datos que deben enviarse.
            event.data = new PluginTransferData( 
                mi_acción_de_soltar, dataToSend);
        } 
    } 
} 

Para obtener un ejemplo más completo, consulte el ejemplo del archivo readme de la plataforma. En ese ejemplo, la acción de soltar está definida en ReadmeDropActionDelegate, y la utiliza el escuchador ReadmeContentOutlineDragListener.

Información sobre las API: el valor del atributo class debe ser un nombre totalmente calificado de una clase Java que implemente org.eclipse.ui.part.IDropActionDelegate. Esta clase se cargará lo más tarde posible para evitar que se cargue todo el conector antes de que sea realmente necesario.

Implementación suministrada: el entorno de trabajo no proporciona ninguna implementación para este punto de extensión. Los conectores pueden contribuir en este punto de extensión añadiendo comportamientos de soltar a las vistas definidas por otros conectores.

Copyright (c) 2002 IBM Corporation y otros. Reservados todos los derechos. Este programa y sus materiales adjuntos están disponibles bajo los términos de la licencia pública común (Common Public License) v1.0 que acompaña a esta distribución, y está disponible en http://www.eclipse.org/legal/cpl-v10.html