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