From 1c36016f14e2a0245afc1d41b82b41f905cb924c Mon Sep 17 00:00:00 2001 From: jurgen Date: Tue, 5 Feb 2013 15:12:41 +0000 Subject: [PATCH] RSV properties --- .../dbeaver/model/data/DBDDataFormatter.java | 2 + .../impl/data/DateTimeDataFormatter.java | 10 ++++- .../model/impl/data/DefaultDataFormatter.java | 6 +++ .../model/impl/data/NumberDataFormatter.java | 6 +++ .../jdbc/data/JDBCAbstractValueHandler.java | 8 ++++ .../jdbc/data/JDBCComplexValueHandler.java | 2 + .../jdbc/data/JDBCContentValueHandler.java | 5 ++- .../jdbc/data/JDBCDateTimeValueHandler.java | 42 ++++++++++++------- .../jdbc/data/JDBCNumberValueHandler.java | 3 ++ .../jdbc/data/JDBCStringValueHandler.java | 9 ---- .../model/navigator/DBNAdapterFactory.java | 4 +- .../dbeaver/ui/controls/ColumnInfoPanel.java | 8 ++-- .../ui/properties/PropertySourceAbstract.java | 4 +- 13 files changed, 74 insertions(+), 35 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/data/DBDDataFormatter.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/data/DBDDataFormatter.java index fecee1f29b..1f8f7e8a57 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/data/DBDDataFormatter.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/data/DBDDataFormatter.java @@ -30,6 +30,8 @@ public interface DBDDataFormatter { void init(Locale locale, Map properties); + String getPattern(); + String formatValue(Object value); Object parseValue(String value) throws ParseException; diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/data/DateTimeDataFormatter.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/data/DateTimeDataFormatter.java index 7322c39e44..8bf74d29b5 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/data/DateTimeDataFormatter.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/data/DateTimeDataFormatter.java @@ -31,16 +31,24 @@ public class DateTimeDataFormatter implements DBDDataFormatter { public static final String PROP_PATTERN = "pattern"; + private String pattern; private DateFormat dateFormat; @Override public void init(Locale locale, Map properties) { + pattern = CommonUtils.toString(properties.get(PROP_PATTERN)); dateFormat = new ExtendedDateFormat( - CommonUtils.toString(properties.get(PROP_PATTERN)), + pattern, locale); } + @Override + public String getPattern() + { + return pattern; + } + @Override public String formatValue(Object value) { diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/data/DefaultDataFormatter.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/data/DefaultDataFormatter.java index 3035a95cfa..0cd53dbff3 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/data/DefaultDataFormatter.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/data/DefaultDataFormatter.java @@ -38,6 +38,12 @@ public class DefaultDataFormatter implements DBDDataFormatter { { } + @Override + public String getPattern() + { + return null; + } + @Override public String formatValue(Object value) { diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/data/NumberDataFormatter.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/data/NumberDataFormatter.java index 8df38eb93d..d423562c90 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/data/NumberDataFormatter.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/data/NumberDataFormatter.java @@ -65,6 +65,12 @@ public class NumberDataFormatter implements DBDDataFormatter { } } + @Override + public String getPattern() + { + return null; + } + @Override public String formatValue(Object value) { diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCAbstractValueHandler.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCAbstractValueHandler.java index 7e4d66c545..5143f49651 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCAbstractValueHandler.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCAbstractValueHandler.java @@ -57,6 +57,8 @@ public abstract class JDBCAbstractValueHandler implements DBDValueHandler { static final Log log = LogFactory.getLog(JDBCAbstractValueHandler.class); private static final String CELL_VALUE_INLINE_EDITOR = "org.jkiss.dbeaver.CellValueInlineEditor"; + public static final String PROP_CATEGORY_STANDARD = "Standard"; + @Override public final Object fetchValueObject(DBCExecutionContext context, DBCResultSet resultSet, DBSTypedObject type, int index) throws DBCException @@ -114,6 +116,12 @@ public abstract class JDBCAbstractValueHandler implements DBDValueHandler { public void fillProperties(PropertySourceAbstract propertySource, DBDValueController controller) { propertySource.addProperty( + PROP_CATEGORY_STANDARD, + "column_type", //$NON-NLS-1$ + "Data Type", + controller.getAttributeMetaData().getTypeName()); + propertySource.addProperty( + PROP_CATEGORY_STANDARD, "column_size", //$NON-NLS-1$ CoreMessages.model_jdbc_column_size, controller.getAttributeMetaData().getMaxLength()); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCComplexValueHandler.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCComplexValueHandler.java index 9c8ce564ca..32df1eadcb 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCComplexValueHandler.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCComplexValueHandler.java @@ -84,10 +84,12 @@ public abstract class JDBCComplexValueHandler extends JDBCAbstractValueHandler { @Override public void fillProperties(PropertySourceAbstract propertySource, DBDValueController controller) { + super.fillProperties(propertySource, controller); try { Object value = controller.getValue(); if (value instanceof DBDComplexType) { propertySource.addProperty( + PROP_CATEGORY_STANDARD, "object_type", //$NON-NLS-1$ CoreMessages.model_jdbc_type_name, ((DBDComplexType) value).getObjectDataType().getName()); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCContentValueHandler.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCContentValueHandler.java index 37d0bdce71..648fb575ed 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCContentValueHandler.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCContentValueHandler.java @@ -232,16 +232,19 @@ public class JDBCContentValueHandler extends JDBCAbstractValueHandler { @Override public void fillProperties(PropertySourceAbstract propertySource, DBDValueController controller) { + super.fillProperties(propertySource, controller); try { Object value = controller.getValue(); if (value instanceof DBDContent) { propertySource.addProperty( + PROP_CATEGORY_STANDARD, "content_type", //$NON-NLS-1$ CoreMessages.model_jdbc_content_type, ((DBDContent)value).getContentType()); final long contentLength = ((DBDContent) value).getContentLength(); if (contentLength >= 0) { propertySource.addProperty( + PROP_CATEGORY_STANDARD, "content_length", //$NON-NLS-1$ CoreMessages.model_jdbc_content_length, contentLength); @@ -252,7 +255,7 @@ public class JDBCContentValueHandler extends JDBCAbstractValueHandler { log.warn("Could not extract LOB value information", e); //$NON-NLS-1$ } propertySource.addProperty( - "max_length", //$NON-NLS-1$ + null, "max_length", //$NON-NLS-1$ CoreMessages.model_jdbc_max_length, controller.getAttributeMetaData().getMaxLength()); } diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCDateTimeValueHandler.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCDateTimeValueHandler.java index 4265f702be..c8d5f0e941 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCDateTimeValueHandler.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCDateTimeValueHandler.java @@ -37,6 +37,7 @@ import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.struct.DBSTypedObject; import org.jkiss.dbeaver.ui.UIUtils; import org.jkiss.dbeaver.ui.dialogs.data.DateTimeViewDialog; +import org.jkiss.dbeaver.ui.properties.PropertySourceAbstract; import java.sql.SQLException; import java.sql.Time; @@ -216,14 +217,7 @@ public class JDBCDateTimeValueHandler extends JDBCAbstractValueHandler { "','YYYY-MM-DD HH24:MI:SS')"; } } else { - switch (column.getTypeID()) { - case java.sql.Types.TIME: - return getFormatter(TYPE_NAME_TIME).formatValue(value); - case java.sql.Types.DATE: - return getFormatter(TYPE_NAME_DATE).formatValue(value); - default: - return getFormatter(TYPE_NAME_TIMESTAMP).formatValue(value); - } + return getFormatter(column).formatValue(value); } } @@ -249,14 +243,7 @@ public class JDBCDateTimeValueHandler extends JDBCAbstractValueHandler { } else if (object instanceof String) { String strValue = (String)object; try { - switch (type.getTypeID()) { - case java.sql.Types.TIME: - return getFormatter(TYPE_NAME_TIME).parseValue(strValue); - case java.sql.Types.DATE: - return getFormatter(TYPE_NAME_DATE).parseValue(strValue); - default: - return getFormatter(TYPE_NAME_TIMESTAMP).parseValue(strValue); - } + return getFormatter(type).parseValue(strValue); } catch (ParseException e) { log.warn("Can't parse string value [" + strValue + "] to date/time value", e); return null; @@ -280,6 +267,17 @@ public class JDBCDateTimeValueHandler extends JDBCAbstractValueHandler { }); } + @Override + public void fillProperties(PropertySourceAbstract propertySource, DBDValueController controller) + { + super.fillProperties(propertySource, controller); + propertySource.addProperty( + PROP_CATEGORY_STANDARD, + "format", //$NON-NLS-1$ + "Pattern", + getFormatter(controller.getAttributeMetaData()).getPattern()); + } + public static Date getDate(DateTime dateEditor, DateTime timeEditor) { Calendar cl = Calendar.getInstance(); @@ -352,4 +350,16 @@ public class JDBCDateTimeValueHandler extends JDBCAbstractValueHandler { } } + protected DBDDataFormatter getFormatter(DBSTypedObject column) + { + switch (column.getTypeID()) { + case java.sql.Types.TIME: + return getFormatter(TYPE_NAME_TIME); + case java.sql.Types.DATE: + return getFormatter(TYPE_NAME_DATE); + default: + return getFormatter(TYPE_NAME_TIMESTAMP); + } + } + } \ No newline at end of file diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCNumberValueHandler.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCNumberValueHandler.java index 55a4ebbcac..a06b15b0c2 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCNumberValueHandler.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCNumberValueHandler.java @@ -309,11 +309,14 @@ public class JDBCNumberValueHandler extends JDBCAbstractValueHandler { @Override public void fillProperties(PropertySourceAbstract propertySource, DBDValueController controller) { + super.fillProperties(propertySource, controller); propertySource.addProperty( + PROP_CATEGORY_STANDARD, "precision", //$NON-NLS-1$ CoreMessages.model_jdbc_precision, controller.getAttributeMetaData().getPrecision()); propertySource.addProperty( + PROP_CATEGORY_STANDARD, "scale", //$NON-NLS-1$ CoreMessages.model_jdbc_scale, controller.getAttributeMetaData().getScale()); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCStringValueHandler.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCStringValueHandler.java index 52ce462151..181ee97a0e 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCStringValueHandler.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCStringValueHandler.java @@ -136,13 +136,4 @@ public class JDBCStringValueHandler extends JDBCAbstractValueHandler { } } - @Override - public void fillProperties(PropertySourceAbstract propertySource, DBDValueController controller) - { - propertySource.addProperty( - "max_length", //$NON-NLS-1$ - CoreMessages.model_jdbc_max_length, - controller.getAttributeMetaData().getMaxLength()); - } - } \ No newline at end of file diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNAdapterFactory.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNAdapterFactory.java index 9266f772ba..cb1b05bd54 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNAdapterFactory.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/navigator/DBNAdapterFactory.java @@ -121,8 +121,8 @@ public class DBNAdapterFactory implements IAdapterFactory if (props.isEmpty() && adaptableObject instanceof DBSObject) { // Add default properties DBSObject meta = (DBSObject)adaptableObject; - props.addProperty("name", CoreMessages.model_navigator_Name, meta.getName()); //$NON-NLS-1$ - props.addProperty("desc", CoreMessages.model_navigator_Description, meta.getDescription()); //$NON-NLS-1$ + props.addProperty(null, "name", CoreMessages.model_navigator_Name, meta.getName()); //$NON-NLS-1$ + props.addProperty(null, "desc", CoreMessages.model_navigator_Description, meta.getDescription()); //$NON-NLS-1$ } return props; } diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/ColumnInfoPanel.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/ColumnInfoPanel.java index f53b3c2e70..fe47c1716a 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/ColumnInfoPanel.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/ColumnInfoPanel.java @@ -52,12 +52,12 @@ public class ColumnInfoPanel extends Composite { protected void createPanel(DBDAttributeController valueController) { PropertyCollector infoItem = new PropertyCollector(valueController.getAttributeMetaData(), false); - infoItem.addProperty("Table_Name", CoreMessages.controls_column_info_panel_property_table_name, valueController.getAttributeMetaData().getEntityName()); //$NON-NLS-1$ - infoItem.addProperty("Column_Name", CoreMessages.controls_column_info_panel_property_column_name, valueController.getAttributeMetaData().getName() ); //$NON-NLS-1$ - infoItem.addProperty("Column_Type", CoreMessages.controls_column_info_panel_property_column_type, valueController.getAttributeMetaData().getTypeName() ); //$NON-NLS-1$ + infoItem.addProperty(null, "Table_Name", CoreMessages.controls_column_info_panel_property_table_name, valueController.getAttributeMetaData().getEntityName()); //$NON-NLS-1$ + infoItem.addProperty(null, "Column_Name", CoreMessages.controls_column_info_panel_property_column_name, valueController.getAttributeMetaData().getName() ); //$NON-NLS-1$ + infoItem.addProperty(null, "Column_Type", CoreMessages.controls_column_info_panel_property_column_type, valueController.getAttributeMetaData().getTypeName() ); //$NON-NLS-1$ valueController.getValueHandler().fillProperties(infoItem, valueController); if (valueController.getValueLocator() != null) { - infoItem.addProperty("Key", CoreMessages.controls_column_info_panel_property_key, new CellKeyInfo(valueController) ); //$NON-NLS-1$ + infoItem.addProperty(null, "Key", CoreMessages.controls_column_info_panel_property_key, new CellKeyInfo(valueController) ); //$NON-NLS-1$ } GridData gd = new GridData(GridData.FILL_HORIZONTAL); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/properties/PropertySourceAbstract.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/properties/PropertySourceAbstract.java index e63a6b0c66..fd8592719e 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/properties/PropertySourceAbstract.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/properties/PropertySourceAbstract.java @@ -78,9 +78,9 @@ public abstract class PropertySourceAbstract implements IPropertySourceMulti return this; } - public PropertySourceAbstract addProperty(Object id, String name, Object value) + public PropertySourceAbstract addProperty(String category, Object id, String name, Object value) { - props.add(new PropertyDescriptorEx(null, id, name, null, value == null ? null : value.getClass(), false, null, null, false)); + props.add(new PropertyDescriptorEx(category, id, name, null, value == null ? null : value.getClass(), false, null, null, false)); propValues.put(id, value); return this; -- GitLab