в моем методе @execute. Я могу получить выделение из буфера обмена/LocalSelectionTransfer. Но я понятия не имею, как реагировать на это, основываясь на том, как пользователь поместил контент в буфер обмена. Я должен решить, дублирую ли я содержимое или нет. Это то, что у меня есть:Как определить, было ли что-то скопировано или вырезано в буфер обмена
@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());
}
}
}
любые идеи ???
Что это за метод @Execute? Это не так, как обычно вы имеете дело с выборами в других частях. Вы использовали бы это только для обработчика Вставки. –