Skip to content

Commit 4e0f7be

Browse files
committed
Feature: #44
SQL result table: Numeric values can now be right aligned, see menu File --> Global Preferences tab Data Types --> section "General"
1 parent 5170383 commit 4e0f7be

File tree

13 files changed

+105
-8
lines changed

13 files changed

+105
-8
lines changed

sql12/core/doc/changes.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ Not yet released, available in our GIT repository, snapshots and future releases
66

77
Enhancements:
88

9+
https://github.com/squirrel-sql-client/squirrel-sql-code/issues/44
10+
SQL result table: Numeric values can now be right aligned,
11+
see menu File --> Global Preferences tab Data Types --> section "General"
12+
913
https://github.com/squirrel-sql-client/squirrel-sql-code/issues/43
1014
The maximum number of characters to display in the table cell data popup can now be configured.
1115
See menu File -- > Global Preferences --> tab General --> section "Table cell data value popup".

sql12/core/src/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/BaseDataTypeComponent.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,7 @@
5353
public abstract class BaseDataTypeComponent implements IDataTypeComponent {
5454

5555
/** Logger for this class. */
56-
private static ILogger s_log = LoggerController
57-
.createLogger(BaseDataTypeComponent.class);
56+
private static ILogger s_log = LoggerController.createLogger(BaseDataTypeComponent.class);
5857

5958
/** the whole column definition */
6059
protected ColumnDisplayDefinition _colDef;
@@ -361,4 +360,9 @@ public String getColumnForContentSelect(DialectType dialectType, String columnPr
361360
return columnPrefix + DialectUtils2.checkColumnDoubleQuotes(dialectType, _colDef.getColumnName());
362361
}
363362

363+
@Override
364+
public Integer getHorizontalAlignmentOrNull()
365+
{
366+
return null;
367+
}
364368
}

sql12/core/src/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/CellRenderer.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@ public final class CellRenderer extends DefaultTableCellRenderer implements Squi
3737
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
3838
{
3939
JLabel label = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
40+
41+
if(null != _dataTypeObject.getHorizontalAlignmentOrNull())
42+
{
43+
label.setHorizontalAlignment(_dataTypeObject.getHorizontalAlignmentOrNull());
44+
}
45+
4046
label.putClientProperty("html.disable", Boolean.TRUE);
4147

4248
if (null != _coloringService)

sql12/core/src/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeBigDecimal.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -656,4 +656,11 @@ public void exportObject(FileOutputStream outStream, String text)
656656
outWriter.flush();
657657
outWriter.close();
658658
}
659+
660+
@Override
661+
public Integer getHorizontalAlignmentOrNull()
662+
{
663+
return NumberTypeUtil.getHorizontalAlignmentOrNull();
664+
}
665+
659666
}

sql12/core/src/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeDouble.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,14 +125,14 @@ public String renderObject(Object value)
125125

126126
if (value == null || FloatingPointBaseDTProperties.isUseJavaDefaultFormat())
127127
{
128-
return (String) DefaultColumnRenderer.renderObject(value);
128+
return DefaultColumnRenderer.renderObject(value);
129129
}
130130
else
131131
{
132132

133133
try
134134
{
135-
return (String) DefaultColumnRenderer.renderObject(_numberFormat.format(value));
135+
return DefaultColumnRenderer.renderObject(_numberFormat.format(value));
136136
}
137137
catch (Exception e)
138138
{
@@ -141,7 +141,7 @@ public String renderObject(Object value)
141141
_renderExceptionHasBeenLogged = true;
142142
s_log.error("Could not format \"" + value + "\" as number type", e);
143143
}
144-
return (String) DefaultColumnRenderer.renderObject(value);
144+
return DefaultColumnRenderer.renderObject(value);
145145
}
146146

147147
}
@@ -591,4 +591,10 @@ public void exportObject(FileOutputStream outStream, String text) throws IOExcep
591591
outWriter.flush();
592592
outWriter.close();
593593
}
594+
595+
@Override
596+
public Integer getHorizontalAlignmentOrNull()
597+
{
598+
return NumberTypeUtil.getHorizontalAlignmentOrNull();
599+
}
594600
}

sql12/core/src/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeFloat.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,14 +127,14 @@ public String renderObject(Object value) {
127127

128128
if (value == null || FloatingPointBaseDTProperties.isUseJavaDefaultFormat())
129129
{
130-
return (String)DefaultColumnRenderer.renderObject(value);
130+
return DefaultColumnRenderer.renderObject(value);
131131
}
132132
else
133133
{
134134

135135
try
136136
{
137-
return (String)DefaultColumnRenderer.renderObject(_numberFormat.format(value));
137+
return DefaultColumnRenderer.renderObject(_numberFormat.format(value));
138138
}
139139
catch (Exception e)
140140
{
@@ -143,7 +143,7 @@ public String renderObject(Object value) {
143143
_renderExceptionHasBeenLogged = true;
144144
s_log.error("Could not format \"" + value + "\" as number type", e);
145145
}
146-
return (String) DefaultColumnRenderer.renderObject(value);
146+
return DefaultColumnRenderer.renderObject(value);
147147
}
148148

149149

@@ -604,4 +604,10 @@ public void exportObject(FileOutputStream outStream, String text)
604604
outWriter.flush();
605605
outWriter.close();
606606
}
607+
608+
@Override
609+
public Integer getHorizontalAlignmentOrNull()
610+
{
611+
return NumberTypeUtil.getHorizontalAlignmentOrNull();
612+
}
607613
}

sql12/core/src/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeGeneral.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,15 @@ public class DataTypeGeneral
1414
{
1515
public static final String USE_COLUMN_LABEL_INSTEAD_COLUMN_NAME = "useColumnLabelInsteadColumnName";
1616
public static final String FORMAT_XML_JSON_WHEN_DISPLAYED_IN_POPUP_PANEL = "formatXmlJsonWhenDisplayedInPopupPanel";
17+
public static final String RIGHT_ALIGN_NUMERIC_TYPES = "rightAlignNumericTypes";
1718

1819
private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(DataTypeGeneral.class);
1920

2021

2122
private static boolean propertiesAlreadyLoaded = false;
2223
private static boolean _useColumnLabelInsteadColumnName = false;
2324
private static boolean _formatXmlJsonWhenDisplayedInPopupPanel = false;
25+
private static boolean _rightAlignNumericTypes = false;
2426

2527
public static OkJPanel getControlPanel()
2628
{
@@ -34,6 +36,12 @@ public static boolean isUseColumnLabelInsteadColumnName()
3436
return _useColumnLabelInsteadColumnName;
3537
}
3638

39+
public static boolean isRightAlignNumericTypes()
40+
{
41+
loadProperties();
42+
return _rightAlignNumericTypes;
43+
}
44+
3745
public static boolean isFormatXmlJsonWhenDisplayedInPopupPanel()
3846
{
3947
loadProperties();
@@ -61,6 +69,14 @@ private static void loadProperties()
6169
_formatXmlJsonWhenDisplayedInPopupPanel = true;
6270
}
6371

72+
String rightAlignNumericTypes =
73+
DataTypeProps.getProperty(DataTypeGeneral.class.getName(), RIGHT_ALIGN_NUMERIC_TYPES);
74+
75+
if (rightAlignNumericTypes != null && rightAlignNumericTypes.equals("true"))
76+
{
77+
_rightAlignNumericTypes = true;
78+
}
79+
6480
propertiesAlreadyLoaded = true;
6581
}
6682
}
@@ -73,13 +89,17 @@ private static class GeneralOkJPanel extends OkJPanel
7389
private JCheckBox _chkFormatXmlJsonWhenDisplayedInPopupPanel =
7490
new JCheckBox(s_stringMgr.getString("dataTypeGeneral.formatXmlJsonWhenDisplayedInPopupPanel"));
7591

92+
private JCheckBox _chkRightAlignNumericTypes =
93+
new JCheckBox(s_stringMgr.getString("dataTypeGeneral.rightAlignNumericTypes"));
94+
7695

7796
public GeneralOkJPanel()
7897
{
7998
loadProperties();
8099

81100
_chkUseColumnLabelInsteadColumnName.setSelected(DataTypeGeneral._useColumnLabelInsteadColumnName);
82101
_chkFormatXmlJsonWhenDisplayedInPopupPanel.setSelected(DataTypeGeneral._formatXmlJsonWhenDisplayedInPopupPanel);
102+
_chkRightAlignNumericTypes.setSelected(DataTypeGeneral._rightAlignNumericTypes);
83103

84104
setLayout(new GridBagLayout());
85105
setBorder(BorderFactory.createTitledBorder(s_stringMgr.getString("dataTypeGeneral.generalType")));
@@ -91,6 +111,9 @@ public GeneralOkJPanel()
91111

92112
gbc = new GridBagConstraints(0,1,1,1,0,0,GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(4, 4, 4, 4), 0,0);
93113
add(_chkFormatXmlJsonWhenDisplayedInPopupPanel, gbc);
114+
115+
gbc = new GridBagConstraints(0,2,1,1,0,0,GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(4, 4, 4, 4), 0,0);
116+
add(_chkRightAlignNumericTypes, gbc);
94117
}
95118

96119

@@ -106,6 +129,9 @@ public void ok()
106129

107130
_formatXmlJsonWhenDisplayedInPopupPanel = _chkFormatXmlJsonWhenDisplayedInPopupPanel.isSelected();
108131
DataTypeProps.putDataTypeProperty(DataTypeGeneral.class.getName(), FORMAT_XML_JSON_WHEN_DISPLAYED_IN_POPUP_PANEL, Boolean.valueOf(_formatXmlJsonWhenDisplayedInPopupPanel).toString());
132+
133+
_rightAlignNumericTypes = _chkRightAlignNumericTypes.isSelected();
134+
DataTypeProps.putDataTypeProperty(DataTypeGeneral.class.getName(), RIGHT_ALIGN_NUMERIC_TYPES, Boolean.valueOf(_rightAlignNumericTypes).toString());
109135
}
110136

111137
}

sql12/core/src/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeInteger.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -563,4 +563,10 @@ public void exportObject(FileOutputStream outStream, String text)
563563
outWriter.flush();
564564
outWriter.close();
565565
}
566+
@Override
567+
public Integer getHorizontalAlignmentOrNull()
568+
{
569+
return NumberTypeUtil.getHorizontalAlignmentOrNull();
570+
}
571+
566572
}

sql12/core/src/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeLong.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,4 +539,11 @@ public void exportObject(FileOutputStream outStream, String text)
539539
outWriter.flush();
540540
outWriter.close();
541541
}
542+
543+
@Override
544+
public Integer getHorizontalAlignmentOrNull()
545+
{
546+
return NumberTypeUtil.getHorizontalAlignmentOrNull();
547+
}
548+
542549
}

sql12/core/src/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeShort.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -541,4 +541,10 @@ public void exportObject(FileOutputStream outStream, String text)
541541
outWriter.flush();
542542
outWriter.close();
543543
}
544+
545+
@Override
546+
public Integer getHorizontalAlignmentOrNull()
547+
{
548+
return NumberTypeUtil.getHorizontalAlignmentOrNull();
549+
}
544550
}

0 commit comments

Comments
 (0)