提交 8882b822 编写于 作者: S Serge Rider

Complex editor contributor model refactoring

上级 b564aee1
......@@ -1053,7 +1053,7 @@ public class ResultSetViewer extends Viewer
// Menus from value handler
try {
manager.add(new Separator());
valueController.getValueManager().contributeActions(manager, valueController);
valueController.getValueManager().contributeActions(manager, valueController, null);
}
catch (Exception e) {
log.error(e);
......
......@@ -151,7 +151,7 @@ abstract class ViewValuePanel extends Composite {
}
toolBarManager.removeAll();
try {
valueManager.contributeActions(toolBarManager, valueController);
valueManager.contributeActions(toolBarManager, valueController, valueViewer);
} catch (DBCException e) {
log.error("Error filling toolbar actions", e);
}
......
......@@ -35,9 +35,10 @@ public interface IValueManager
*
* @param manager context menu manager
* @param controller value controller
* @param activeEditor active editor
* @throws DBCException on error
*/
void contributeActions(@NotNull IContributionManager manager, @NotNull IValueController controller)
void contributeActions(@NotNull IContributionManager manager, @NotNull IValueController controller, @Nullable IValueEditor activeEditor)
throws DBCException;
/**
......
......@@ -48,7 +48,7 @@ public class ComplexValueInlineEditor extends BaseValueEditor<Tree> {
@Override
protected Tree createControl(Composite editPlaceholder)
{
editor = new ComplexObjectEditor(controller, SWT.BORDER);
editor = new ComplexObjectEditor(controller, this, SWT.BORDER);
editor.setModel(controller.getExecutionContext(), (DBDComplexValue) controller.getValue());
return editor.getTree();
}
......
......@@ -20,10 +20,12 @@ package org.jkiss.dbeaver.ui.data.managers;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IContributionManager;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.model.exec.DBCException;
import org.jkiss.dbeaver.ui.DBeaverIcons;
import org.jkiss.dbeaver.ui.UIIcon;
import org.jkiss.dbeaver.ui.data.IValueController;
import org.jkiss.dbeaver.ui.data.IValueEditor;
/**
* Array value manager.
......@@ -31,17 +33,27 @@ import org.jkiss.dbeaver.ui.data.IValueController;
public class ArrayValueManager extends ComplexValueManager {
@Override
public void contributeActions(@NotNull IContributionManager manager, @NotNull IValueController controller) throws DBCException {
public void contributeActions(@NotNull IContributionManager manager, @NotNull final IValueController controller, @Nullable IValueEditor activeEditor) throws DBCException {
manager.add(new Action("Add element", DBeaverIcons.getImageDescriptor(UIIcon.ROW_ADD)) {
@Override
public boolean isEnabled() {
return true;
}
@Override
public void run() {
super.run();
}
});
manager.add(new Action("Remove element", DBeaverIcons.getImageDescriptor(UIIcon.ROW_DELETE)) {
@Override
public boolean isEnabled() {
return false;
}
@Override
public void run() {
super.run();
}
});
}
......
......@@ -30,6 +30,7 @@ import org.jkiss.dbeaver.model.exec.DBCExecutionPurpose;
import org.jkiss.dbeaver.model.exec.DBCSession;
import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor;
import org.jkiss.dbeaver.ui.data.IValueController;
import org.jkiss.dbeaver.ui.data.IValueEditor;
import org.jkiss.dbeaver.ui.data.IValueManager;
/**
......@@ -61,7 +62,7 @@ public abstract class BaseValueManager implements IValueManager {
}
@Override
public void contributeActions(@NotNull IContributionManager manager, @NotNull IValueController controller) throws DBCException {
public void contributeActions(@NotNull IContributionManager manager, @NotNull IValueController controller, @Nullable IValueEditor activeEditor) throws DBCException {
// nothing
}
......
......@@ -20,6 +20,7 @@ package org.jkiss.dbeaver.ui.data.managers;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IContributionManager;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.core.CoreMessages;
......@@ -110,7 +111,7 @@ public class ContentValueManager extends BaseValueManager {
}
@Override
public void contributeActions(@NotNull IContributionManager manager, @NotNull final IValueController controller)
public void contributeActions(@NotNull IContributionManager manager, @NotNull final IValueController controller, @Nullable IValueEditor activeEditor)
throws DBCException
{
contributeContentActions(manager, controller);
......
......@@ -20,6 +20,7 @@ package org.jkiss.dbeaver.ui.data.managers;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IContributionManager;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.CoreMessages;
......@@ -41,7 +42,7 @@ public class DateTimeValueManager extends BaseValueManager {
protected static final Log log = Log.getLog(DateTimeValueManager.class);
@Override
public void contributeActions(@NotNull IContributionManager manager, @NotNull final IValueController controller)
public void contributeActions(@NotNull IContributionManager manager, @NotNull final IValueController controller, @Nullable IValueEditor activeEditor)
throws DBCException
{
manager.add(new Action(CoreMessages.model_jdbc_set_to_current_time, DBeaverIcons.getImageDescriptor(DBIcon.TYPE_DATETIME)) {
......
......@@ -98,7 +98,8 @@ public class ComplexObjectEditor extends TreeViewer {
}
}
private IValueController parentController;
private final IValueController parentController;
private final IValueEditor editor;
private DBCExecutionContext executionContext;
private final TreeEditor treeEditor;
private IValueEditor curCellEditor;
......@@ -109,10 +110,11 @@ public class ComplexObjectEditor extends TreeViewer {
private Map<Object, ComplexElement[]> childrenMap = new IdentityHashMap<>();
public ComplexObjectEditor(IValueController parentController, int style)
public ComplexObjectEditor(IValueController parentController, IValueEditor editor, int style)
{
super(parentController.getEditPlaceholder(), style | SWT.SINGLE | SWT.FULL_SELECTION);
this.parentController = parentController;
this.editor = editor;
ITheme currentTheme = parentController.getValueSite().getWorkbenchWindow().getWorkbench().getThemeManager().getCurrentTheme();
this.backgroundAdded = currentTheme.getColorRegistry().get(ThemeConstants.COLOR_SQL_RESULT_CELL_NEW_BACK);
......@@ -229,7 +231,7 @@ public class ComplexObjectEditor extends TreeViewer {
}
manager.add(new Separator());
try {
parentController.getValueManager().contributeActions(manager, parentController);
parentController.getValueManager().contributeActions(manager, parentController, editor);
} catch (DBCException e) {
log.error(e);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册