提交 22d62942 编写于 作者: J jurgen

Value editors fix

Former-commit-id: 4fc562d6
上级 3b0fa476
......@@ -137,15 +137,15 @@ public abstract class JDBCAbstractValueHandler implements DBDValueHandler {
Object value)
throws DBCException, SQLException;
protected abstract class ValueEditor<T> implements DBDValueEditor {
protected abstract class ValueEditor<T extends Control> implements DBDValueEditor {
protected final DBDValueController valueController;
protected final T control;
protected ValueEditor(final DBDValueController valueController)
{
this.valueController = valueController;
this.control = createControl(valueController.getEditPlaceholder());
if (this.control instanceof Control) {
initInlineControl((Control)this.control);
if (this.control != null) {
initInlineControl(this.control);
}
ToolBar editToolBar = valueController.getEditToolBar();
if (editToolBar != null) {
......@@ -267,7 +267,7 @@ public abstract class JDBCAbstractValueHandler implements DBDValueHandler {
}
}
protected abstract class ValueEditorEx<T> extends ValueEditor<T> implements DBDValueEditorEx {
protected abstract class ValueEditorEx<T extends Control> extends ValueEditor<T> implements DBDValueEditorEx {
protected ValueEditorEx(final DBDValueController valueController)
{
......
......@@ -23,6 +23,7 @@ import org.apache.commons.logging.LogFactory;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Tree;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.data.DBDArray;
......@@ -141,29 +142,30 @@ public class JDBCArrayValueHandler extends JDBCAbstractValueHandler {
}
@Override
public DBDValueEditor createEditor(final DBDValueController controller)
public DBDValueEditor createEditor(DBDValueController controller)
throws DBException
{
if (controller.getEditType() == DBDValueController.EditType.PANEL) {
return new ValueEditor<ComplexObjectEditor>(controller) {
return new ValueEditor<Tree>(controller) {
ComplexObjectEditor editor;
@Override
public void refreshValue()
{
control.setModel((DBDArray) controller.getValue());
editor.setModel((DBDArray) valueController.getValue());
}
@Override
protected ComplexObjectEditor createControl(Composite editPlaceholder)
protected Tree createControl(Composite editPlaceholder)
{
final ComplexObjectEditor editor = new ComplexObjectEditor(controller.getEditPlaceholder(), SWT.BORDER);
editor.setModel((DBDArray) controller.getValue());
return editor;
editor = new ComplexObjectEditor(valueController.getEditPlaceholder(), SWT.BORDER);
editor.setModel((DBDArray) valueController.getValue());
return editor.getTree();
}
@Override
public Object extractValue(DBRProgressMonitor monitor)
{
return control.getInput();
return editor.getInput();
}
};
}
......
......@@ -23,6 +23,7 @@ import org.apache.commons.logging.LogFactory;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Tree;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.DBConstants;
......@@ -173,25 +174,26 @@ public class JDBCStructValueHandler extends JDBCAbstractValueHandler {
throws DBException
{
if (controller.getEditType() == DBDValueController.EditType.PANEL) {
return new ValueEditor<ComplexObjectEditor>(controller) {
return new ValueEditor<Tree>(controller) {
ComplexObjectEditor editor;
@Override
public void refreshValue()
{
control.setModel((DBDStructure) controller.getValue());
editor.setModel((DBDStructure) controller.getValue());
}
@Override
protected ComplexObjectEditor createControl(Composite editPlaceholder)
protected Tree createControl(Composite editPlaceholder)
{
final ComplexObjectEditor editor = new ComplexObjectEditor(controller.getEditPlaceholder(), SWT.BORDER);
editor = new ComplexObjectEditor(controller.getEditPlaceholder(), SWT.BORDER);
editor.setModel((DBDStructure) controller.getValue());
return editor;
return editor.getTree();
}
@Override
public Object extractValue(DBRProgressMonitor monitor)
{
return control.getInput();
return editor.getInput();
}
};
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册