Ações de Soltar

Identificador: org.eclipse.ui.dropActions

Descrição: Este ponto de extensão é utilizado para inclusão de comportamentos de soltar em exibições definidas por outros plug-ins.

Devido à disposição da UI em camadas imposta pelo mecanismo de plug-in, as exibições são freqüentemente não cientes do conteúdo e da natureza de outras exibições. Isso pode tornar difícil as operações de arrastar e soltar entre plug-ins. Por exemplo, alguém pode querer fornecer suporte de recriação Java onde o usuário arrasta um método do editor de conteúdo externo Java para outro arquivo Java no navegador de recursos. Como o navegador de recursos não conhece o conteúdo Java, ele não saberá como se comportar quando os métodos Java forem soltos nele. De forma semelhante, um ISV pode querer soltar seu conteúdo em um das exibições Java.

O ponto de extensão org.eclipse.ui.dropActions é fornecido pela Plataforma para lidar com essas situações. Esse mecanismo delega o comportamento de soltar de volta ao originador da operação de arrastar. Esse comportamento está incluído em uma ação que deve implementar org.eclipse.ui.part.IDropActionDelegate. A exibição que é a origem da operação de arrastar deve suportar o tipo de transferência org.eclipse.ui.part.PluginTransfer e colocar um objeto PluginTransferData no evento arrastar. Consulte org.eclipse.jface.viewers.StructuredViewer#addDragSupport para obter informações sobre como incluir o suporte de operações de arrastar em uma exibição.

Marcação da Configuração:

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

Exemplos: A seguir, um exemplo de extensão de uma ação de soltar:

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

Aqui está um exemplo de um ouvinte de arrastar que utiliza a ação de soltar definida acima.

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

Para obter um exemplo mais completo, consulte o exemplo do leia-me da Plataforma. Nesse exemplo, uma ação de soltar é definida em ReadmeDropActionDelegate e é utilizada por ReadmeContentOutlineDragListener.

Informações de API: O valor do atributo class deve ser um nome completo de uma classe Java que implementa org.eclipse.ui.part.IDropActionDelegate. Essa classe é carregada o mais tarde possível para evitar o carregamento de todo o plug-in antes que isso seja realmente necessário

Implementação Fornecida: O workbench não fornece uma implementação para esse ponto de extensão. Os plug-ins podem contribuir para esse ponto de extensão para incluir comportamentos de soltar para exibições por outros plug-ins.

Copyright (c) 2002 IBM Corporation e outros. Todos os direitos reservados. Este programa e os materiais que o acompanham são disponibilizados sob os termos da Common Public License v1.0 que acompanha esta distribuição e estão disponíveis no endereço http://www.eclipse.org/legal/cpl-v10.html