Descrição: esse 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 reformulação Java onde o usuário arrasta um método do editor de conteúdo externo do Java para dentro de outro arquivo Java no navegador de recurso. Um vez que o navegador de recurso não conhece nada sobre o conteúdo do Java, ele não sabe como se comportar quando os métodos Java são arrastados para dentro dele. Da mesma forma, um ISV pode querer soltar alguma coisa de seu conteúdo dentro de uma 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á contido na ação que deve implementar org.eclipse.ui.part.IDropActionDelegate. A exibição que é a fonte da operação de arrastar deve suportar o tipo de transferência org.eclipse.ui.part.PluginTransfer e colocar um objeto org.eclipse.ui.part.PluginTransferData no evento de arrastar. Consulte org.eclipse.jface.viewers.StructuredViewer#addDragSupport para aprender como incluir suporte de arrastar em uma exibição.
Marcação da Configuração:
<!ELEMENT dropContribution (action)*>
<!ELEMENT action*>
<!ATTLIST action
id
CDATA #REQUIRED
class CDATA #REQUIRED
>
Exemplos:
A seguir um exemplo de uma extensão da 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 atendente de arrastar que utiliza a ação de soltar definida acima.
classe MyDragListener estende DragSourceAdapter {
public void dragSetData(DragSourceEvent event)
{
se (PluginTransfer.getInstance().for SupportedType(event.dataType))
{
byte[] dataToSend = ...//digite os dados a serem enviados.
event.data = new PluginTransferData(
"my_drop_action", dataToSend);
}
}
}
Para um exemplo mais completo, consulte o exemplo do leiame da Plataforma, onde a ação de soltar é definida em ReadmeDropActionDelegate e é utilizada por ReadmeContentOutlineDragListener.
Informações do API: o valor do atributo classe deve ser o 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.