Skip to content

Commit fe07e7b

Browse files
committed
Feature: #50
SQL result and table export to CSV or XML: New formatting option "Include grouping separator if configured in Global Preferences" which is applicable when the option "Use formatting as configured in Global Preferences" is used. See section "Formatting" near the bottom of the export dialog.
1 parent d61c1f4 commit fe07e7b

33 files changed

+176
-61
lines changed

sql12/core/doc/changes.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ 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/50
10+
SQL result and table export to CSV or XML:
11+
New formatting option "Include grouping separator if configured in Global Preferences"
12+
which is applicable when the option "Use formatting as configured in Global Preferences" is used.
13+
See section "Formatting" near the bottom of the export dialog.
14+
915
SQL result and table, sum display for numerical columns:
1016
The dialog opened by the "more ..." button now offers to show means and deviations of the selection.
1117

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,9 @@ public void mousePressed(MouseEvent evt)
141141
/**
142142
* Render a value into text for this DataType.
143143
*/
144-
public String renderObject(final Object value) {
145-
String text = (String) DefaultColumnRenderer.renderObject(value);
146-
return text;
144+
public String renderObject(final Object value, DataTypeRenderingHint noGroupingSeparator)
145+
{
146+
return DefaultColumnRenderer.renderObject(value);
147147
}
148148

149149
/**

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

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,5 @@
11
package net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent;
22

3-
import java.io.FileInputStream;
4-
import java.io.FileOutputStream;
5-
import java.io.IOException;
6-
import java.lang.reflect.Method;
7-
import java.sql.PreparedStatement;
8-
import java.sql.ResultSet;
9-
import java.sql.Types;
10-
import java.util.ArrayList;
11-
import java.util.Arrays;
12-
import javax.swing.DefaultCellEditor;
13-
import javax.swing.JTable;
14-
import javax.swing.JTextArea;
15-
import javax.swing.JTextField;
16-
import javax.swing.border.EmptyBorder;
17-
183
import net.sourceforge.squirrel_sql.client.Main;
194
import net.sourceforge.squirrel_sql.fw.datasetviewer.ColumnDisplayDefinition;
205
import net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent.whereClause.IWhereClausePart;
@@ -27,6 +12,21 @@
2712
import net.sourceforge.squirrel_sql.fw.util.log.ILogger;
2813
import net.sourceforge.squirrel_sql.fw.util.log.LoggerController;
2914

15+
import javax.swing.DefaultCellEditor;
16+
import javax.swing.JTable;
17+
import javax.swing.JTextArea;
18+
import javax.swing.JTextField;
19+
import javax.swing.border.EmptyBorder;
20+
import java.io.FileInputStream;
21+
import java.io.FileOutputStream;
22+
import java.io.IOException;
23+
import java.lang.reflect.Method;
24+
import java.sql.PreparedStatement;
25+
import java.sql.ResultSet;
26+
import java.sql.Types;
27+
import java.util.ArrayList;
28+
import java.util.Arrays;
29+
3030

3131
/**
3232
* @author gwg
@@ -178,11 +178,18 @@ public static boolean areEqual(ColumnDisplayDefinition colDef, Object newValue,
178178
* Used by Text version of table.
179179
*/
180180
public static String renderObject(Object value, ColumnDisplayDefinition colDef)
181+
{
182+
return renderObject(value, colDef, DataTypeRenderingHint.NONE);
183+
}
184+
185+
public static String renderObject(Object value, ColumnDisplayDefinition colDef, DataTypeRenderingHint renderingHint)
181186
{
182187
IDataTypeComponent dataTypeObject = getDataTypeObject(null, colDef);
183188

184-
if (dataTypeObject != null)
185-
return dataTypeObject.renderObject(value);
189+
if(dataTypeObject != null)
190+
{
191+
return dataTypeObject.renderObject(value, renderingHint);
192+
}
186193

187194
// default behavior: toString
188195
if (null == value)

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

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -137,21 +137,20 @@ public String getClassName() {
137137
* Render a value into text for this DataType.
138138
*/
139139
@Override
140-
public String renderObject(Object value) {
140+
public String renderObject(Object value, DataTypeRenderingHint renderingHint) {
141141

142142

143143
//return (String)_renderer.renderObject(value);
144144

145145
if (value == null || FloatingPointBaseDTProperties.isUseJavaDefaultFormat())
146146
{
147-
return (String)DefaultColumnRenderer.renderObject(value);
147+
return DefaultColumnRenderer.renderObject(value);
148148
}
149149
else
150150
{
151-
152-
try
151+
try(DataTypeRenderingHintHandler handler = new DataTypeRenderingHintHandler(_numberFormat, renderingHint))
153152
{
154-
return (String)DefaultColumnRenderer.renderObject(_numberFormat.format(value));
153+
return DefaultColumnRenderer.renderObject(_numberFormat.format(value));
155154
}
156155
catch (Exception e)
157156
{
@@ -160,7 +159,7 @@ public String renderObject(Object value) {
160159
_renderExceptionHasBeenLogged = true;
161160
s_log.error("Could not format \"" + value + "\" as number type", e);
162161
}
163-
return (String) DefaultColumnRenderer.renderObject(value);
162+
return DefaultColumnRenderer.renderObject(value);
164163
}
165164

166165

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ public boolean areEqual(Object obj1, Object obj2) {
143143
/**
144144
* Render a value into text for this DataType.
145145
*/
146-
public String renderObject(Object value)
146+
public String renderObject(Object value, DataTypeRenderingHint noGroupingSeparator)
147147
{
148148
return _renderObject(value, -1).getRenderResult();
149149
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ public String getClassName() {
126126
/**
127127
* Render a value into text for this DataType.
128128
*/
129-
public String renderObject(Object value)
129+
public String renderObject(Object value, DataTypeRenderingHint noGroupingSeparator)
130130
{
131131
return DefaultColumnRenderer.renderObject(value);
132132
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public String getClassName()
102102
/**
103103
* Render a value into text for this DataType.
104104
*/
105-
public String renderObject(Object value)
105+
public String renderObject(Object value, DataTypeRenderingHint renderingHint)
106106
{
107107
return (String) DefaultColumnRenderer.renderObject(value);
108108
}

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,9 @@ public String getClassName() {
113113
/**
114114
* Render a value into text for this DataType.
115115
*/
116-
public String renderObject(Object value) {
117-
return (String)DefaultColumnRenderer.renderObject(value);
116+
public String renderObject(Object value, DataTypeRenderingHint renderingHint)
117+
{
118+
return DefaultColumnRenderer.renderObject(value);
118119
}
119120

120121
/**

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ public String getClassName() {
133133
/**
134134
* Render a value into text for this DataType.
135135
*/
136-
public String renderObject(Object value)
136+
public String renderObject(Object value, DataTypeRenderingHint noGroupingSeparator)
137137
{
138138
String text = (String) DefaultColumnRenderer.renderObject(value);
139139
if(s_properties.isMakeNewlinesVisibleInCell())

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ public String getClassName() {
267267
/**
268268
* Render a value into text for this DataType.
269269
*/
270-
public String renderObject(Object value) {
270+
public String renderObject(Object value, DataTypeRenderingHint renderingHint) {
271271
// use the Java default date-to-string
272272
if (useJavaDefaultFormat == true || value == null)
273273
return (String)DefaultColumnRenderer.renderObject(value);

0 commit comments

Comments
 (0)