Я хотел показать пользователю диалоговое окно подтверждения удаления при удалении объектов из Eclipse GMF. Я переопределил createDeleteSemanticCommand в политике редактирования роли компонента для конкретной EditPart, чтобы включить диалоговое окно подтверждения удаления. Ниже приведены фрагменты кода, которые я сделал.
/////// СООТВЕТСТВУЮЩИЙ КЛАСС ЧАСТИ EDIT, где установлена политика редактирования
protected void createDefaultEditPolicies() {
installEditPolicy(EditPolicy.COMPONENT_ROLE, new
ComponentRoleEditPolicy());
/////// СООТВЕТСТВУЮЩИЙ КЛАСС EDITPOLICY, в котором выполняются настраиваемые диалоговые операции удаления (ComponentRoleEditPolicy)
protected Command createDeleteSemanticCommand(GroupRequest deleteRequest)
{
if(deleteRequest instanceof GroupRequestViaKeyboard) {
if(deleteDialog(foo.getName()))
{
return super.createDeleteSemanticCommand(deleteRequest);
}
else {
return UnexecutableCommand.INSTANCE;
}
}
return UnexecutableCommand.INSTANCE;
}
////// УДАЛИТЬ СПОСОБ ПОДТВЕРЖДЕНИЯ
public static boolean deleteDialog(String name) {
Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
boolean delete = MessageDialog.openConfirm(shell, "Delete", "Are you sure you want to delete "
+ name + " ?");
return delete;
}
Для каждой отдельной части редактирования я изначально написал этот фрагмент кода, чтобы запросить подтверждение удаления. Позже я понял, что выбирая несколько частей редактирования на диаграмме и нажимая кнопку удаления, я получаю окна подтверждения «n» удаления для «n» частей, выбранных на диаграмме. Как решить эту проблему. Пожалуйста, помогите мне в этом.
Спасибо.