From 57ebcf26e8b1f53d8a3b704d4804ebf8c560e1bf Mon Sep 17 00:00:00 2001 From: jurgen Date: Sat, 2 Feb 2013 08:06:49 +0000 Subject: [PATCH] Value viewer for object value types (simple read-only text) --- .../jdbc/data/JDBCObjectValueHandler.java | 25 ++++++++++++++++++- .../resultset/ResultSetPropertyTester.java | 5 +--- .../ui/controls/resultset/ViewValuePanel.java | 4 --- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCObjectValueHandler.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCObjectValueHandler.java index d4276166fa..a63288ad2c 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCObjectValueHandler.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCObjectValueHandler.java @@ -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(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) { diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetPropertyTester.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetPropertyTester.java index 2814bde707..58f480304f 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetPropertyTester.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetPropertyTester.java @@ -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)) { diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ViewValuePanel.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ViewValuePanel.java index 12e21a803b..300b4235a3 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ViewValuePanel.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ViewValuePanel.java @@ -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; /** -- GitLab