未验证 提交 cfe5eb15 编写于 作者: S ShadelessFox

#14088 `Set to NULL` action for complex object editor

上级 c9ffcaaf
......@@ -62,6 +62,7 @@ import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.controls.resultset.ResultSetPreferences;
import org.jkiss.dbeaver.ui.controls.resultset.ThemeConstants;
import org.jkiss.dbeaver.ui.data.*;
import org.jkiss.dbeaver.ui.data.managers.BaseValueManager;
import org.jkiss.dbeaver.ui.data.managers.DefaultValueManager;
import org.jkiss.dbeaver.ui.data.registry.ValueManagerRegistry;
import org.jkiss.dbeaver.ui.editors.data.internal.DataEditorsMessages;
......@@ -162,6 +163,7 @@ public class ComplexObjectEditor extends TreeViewer {
private CopyAction copyNameAction;
private CopyAction copyValueAction;
private SetToNullAction setToNullAction;
private Action addElementAction;
private Action removeElementAction;
private Action moveElementUpAction;
......@@ -260,6 +262,7 @@ public class ComplexObjectEditor extends TreeViewer {
this.copyNameAction = new CopyAction(true);
this.copyValueAction = new CopyAction(false);
this.setToNullAction = new SetToNullAction();
this.addElementAction = new AddElementAction();
this.removeElementAction = new RemoveElementAction();
this.moveElementUpAction = new MoveElementAction(SWT.UP);
......@@ -306,6 +309,7 @@ public class ComplexObjectEditor extends TreeViewer {
if (!getSelection().isEmpty()) {
manager.add(copyNameAction);
manager.add(copyValueAction);
manager.add(setToNullAction);
manager.add(new Separator());
}
try {
......@@ -822,6 +826,32 @@ public class ComplexObjectEditor extends TreeViewer {
}
}
private class SetToNullAction extends Action {
public SetToNullAction() {
super(DataEditorsMessages.complex_object_editor_dialog_menu_set_element_to_null);
}
@Override
public void run() {
final ITreeSelection selection = getStructuredSelection();
if (selection.isEmpty()) {
return;
}
try {
final IValueController valueController = new ComplexValueController(
(ComplexElement) selection.getFirstElement(),
IValueController.EditType.NONE
);
valueController.updateValue(
BaseValueManager.makeNullValue(valueController),
true
);
} catch (DBCException e) {
log.error("Error setting value attribute to NULL", e);
}
}
}
private class AddElementAction extends Action {
AddElementAction() {
super(DataEditorsMessages.complex_object_editor_dialog_menu_add_element, DBeaverIcons.getImageDescriptor(UIIcon.ROW_ADD));
......
......@@ -106,6 +106,7 @@ public class DataEditorsMessages extends NLS {
public static String complex_object_editor_dialog_menu_copy_element;
public static String complex_object_editor_dialog_menu_add_element;
public static String complex_object_editor_dialog_menu_set_element_to_null;
public static String complex_object_editor_dialog_menu_remove_element;
public static String complex_object_editor_dialog_menu_move_up_element;
public static String complex_object_editor_dialog_menu_move_down_element;
......
......@@ -83,6 +83,7 @@ virtual_structure_editor_dialog_button_refresh = Refresh
complex_object_editor_dialog_menu_copy_element = Copy {0}
complex_object_editor_dialog_menu_add_element = Add element
complex_object_editor_dialog_menu_set_element_to_null = Set to NULL
complex_object_editor_dialog_menu_remove_element = Remove element
complex_object_editor_dialog_menu_move_up_element = Move element up
complex_object_editor_dialog_menu_move_down_element = Move element down
\ No newline at end of file
......@@ -78,6 +78,7 @@ virtual_structure_editor_dialog_button_refresh = \u041E\u0431\u043D\u043E\u0432\
complex_object_editor_dialog_menu_copy_element = \u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C {0}
complex_object_editor_dialog_menu_add_element = \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u044D\u043B\u0435\u043C\u0435\u043D\u0442
complex_object_editor_dialog_menu_set_element_to_null = \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0432 NULL
complex_object_editor_dialog_menu_remove_element = \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u043B\u0435\u043C\u0435\u043D\u0442
complex_object_editor_dialog_menu_move_up_element = \u041F\u0435\u0440\u0435\u0434\u0432\u0438\u043D\u0443\u0442\u044C \u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u0432\u0432\u0435\u0440\u0445
complex_object_editor_dialog_menu_move_down_element = \u041F\u0435\u0440\u0435\u0434\u0432\u0438\u043D\u0443\u0442\u044C \u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u0432\u043D\u0438\u0437
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册