in meiner @execute-Methode Ich kann die Auswahl aus der Zwischenablage/LocalSelectionTransfer abrufen. Aber ich habe keine Ahnung, wie ich darauf reagieren soll, basierend darauf, wie der Benutzer den Inhalt in die Zwischenablage gelegt hat. Ich muss entscheiden, ob ich den Inhalt dupliziere oder nicht. Das ist, was ich habe:So ermitteln Sie, ob etwas in die Zwischenablage kopiert oder ausgeschnitten wurde
@Execute
public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell, @Named(IServiceConstants.ACTIVE_PART) MPart activePart) {
Clipboard clipboard = new Clipboard(shell.getDisplay());
TransferData[] transferDatas = clipboard.getAvailableTypes();
boolean weCanUseIt= false;
for(int i=0; i<transferDatas.length; i++) {
if(LocalSelectionTransfer.getTransfer().isSupportedType(transferDatas[i])) {
weCanUseIt = true;
break;
}
}
if (weCanUseIt) {
@SuppressWarnings("unchecked")
List<Object> objects = ((StructuredSelection)LocalSelectionTransfer.getTransfer().getSelection()).toList();
for(Object o: objects) {
System.out.println(o.getClass());
}
}
}
keine Ideen ???
Was ist diese @Execute-Methode? So gehen Sie normalerweise nicht mit Auswahlen in anderen Teilen um. Sie würden dies nur für einen Paste-Handler verwenden. –