提交 57ebcf26 编写于 作者: J jurgen

Value viewer for object value types (simple read-only text)

上级 e8059a1d
......@@ -21,6 +21,9 @@ package org.jkiss.dbeaver.model.impl.jdbc.data;
import org.apache.commons.logging.Log;
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.Text;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.DBUtils;
......@@ -30,6 +33,7 @@ import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCExecutionContext;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCPreparedStatement;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCResultSet;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSTypedObject;
import org.jkiss.dbeaver.ui.dialogs.data.CursorViewDialog;
import org.jkiss.dbeaver.ui.properties.PropertySourceAbstract;
......@@ -84,7 +88,7 @@ public class JDBCObjectValueHandler extends JDBCAbstractValueHandler {
@Override
public int getFeatures()
{
return FEATURE_VIEWER;
return FEATURE_VIEWER | FEATURE_EDITOR;
}
@Override
......@@ -130,6 +134,25 @@ public class JDBCObjectValueHandler extends JDBCAbstractValueHandler {
throws DBException
{
switch (controller.getEditType()) {
case PANEL:
return new ValueEditor<Text>(controller) {
@Override
protected Text createControl(Composite editPlaceholder)
{
return new Text(valueController.getEditPlaceholder(),
SWT.BORDER | SWT.MULTI | SWT.WRAP | SWT.V_SCROLL | SWT.READ_ONLY);
}
@Override
public void refreshValue()
{
control.setText(CommonUtils.toString(valueController.getValue()));
}
@Override
public Object extractValue(DBRProgressMonitor monitor)
{
return null;
}
};
case EDITOR:
final Object value = controller.getValue();
if (value instanceof DBDCursor) {
......
......@@ -84,12 +84,9 @@ public class ResultSetPropertyTester extends PropertyTester
if (!rsv.hasData()) {
return false;
}
if ("edit".equals(expectedValue)) {
if ("edit".equals(expectedValue) || "inline".equals(expectedValue)) {
GridPos pos = rsv.getCurrentPosition();
return pos != null && rsv.isValidCell(pos);
} else if ("inline".equals(expectedValue)) {
GridPos pos = rsv.getCurrentPosition();
return pos != null && !rsv.isColumnReadOnly(pos);
} else if ("add".equals(expectedValue)) {
return rsv.isInsertable();
} else if ("copy".equals(expectedValue) || "delete".equals(expectedValue)) {
......
......@@ -4,8 +4,6 @@ import org.eclipse.jface.action.Action;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
......@@ -14,12 +12,10 @@ import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.data.DBDValueController;
import org.jkiss.dbeaver.model.data.DBDValueEditor;
import org.jkiss.dbeaver.model.data.DBDValueEditorEx;
import org.jkiss.dbeaver.ui.DBIcon;
import org.jkiss.dbeaver.ui.SharedTextColors;
import org.jkiss.dbeaver.ui.UIUtils;
/**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册