Revision: 6177
http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=6177&view=rev
Author: wis775
Date: 2011-03-06 15:57:38 +0000 (Sun, 06 Mar 2011)
Log Message:
-----------
Feature request 3129413: The number of decimal digits are now configurable (See Global Preferences --> 'Data Type Controls')
The configuration is possible for the locale depended format. The default behavior is still present (maximumFractionDigits=5).
Modified Paths:
--------------
trunk/sql12/doc/src/main/resources/changes.txt
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeBigDecimal.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeDouble.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeFloat.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/FloatingPointBase.java
trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/I18NStrings.properties
trunk/sql12/fw/src/test/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeBigDecimalTest.java
trunk/sql12/fw/src/test/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeDoubleTest.java
trunk/sql12/fw/src/test/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeFloatTest.java
Added Paths:
-----------
trunk/sql12/fw/src/test/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/FloatingPointBaseTest.java
Modified: trunk/sql12/doc/src/main/resources/changes.txt
===================================================================
--- trunk/sql12/doc/src/main/resources/changes.txt 2011-03-06 00:57:05 UTC (rev 6176)
+++ trunk/sql12/doc/src/main/resources/changes.txt 2011-03-06 15:57:38 UTC (rev 6177)
@@ -7,6 +7,8 @@
Enhancements:
+Feature request 3129413: The number of decimal digits are now configurable (See Global Preferences --> 'Data Type Controls')
+
Feature requests 3001253, 2896494: New icons in Object tree
Display errors in result tab:
Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeBigDecimal.java
===================================================================
--- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeBigDecimal.java 2011-03-06 00:57:05 UTC (rev 6176)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeBigDecimal.java 2011-03-06 15:57:38 UTC (rev 6177)
@@ -122,10 +122,9 @@
_numberFormat = NumberFormat.getInstance();
- // This is a bit hard coded but if we use _scale here
- // some number displays go crazy.
+ // If we use _scale here some number displays go crazy.
//_numberFormat.setMaximumFractionDigits(_scale);
- _numberFormat.setMaximumFractionDigits(5);
+ _numberFormat.setMaximumFractionDigits(maximumFractionDigits);
_numberFormat.setMinimumFractionDigits(0);
Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeDouble.java
===================================================================
--- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeDouble.java 2011-03-06 00:57:05 UTC (rev 6176)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeDouble.java 2011-03-06 15:57:38 UTC (rev 6177)
@@ -102,9 +102,8 @@
_isNullable = colDef.isNullable();
_numberFormat = NumberFormat.getInstance();
- // This is a bit hard coded but if we use _scale here
- // some number displays go crazy.
- _numberFormat.setMaximumFractionDigits(5);
+ // If we use _scale here some number displays go crazy.
+ _numberFormat.setMaximumFractionDigits(maximumFractionDigits);
_numberFormat.setMinimumFractionDigits(0);
Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeFloat.java
===================================================================
--- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeFloat.java 2011-03-06 00:57:05 UTC (rev 6176)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeFloat.java 2011-03-06 15:57:38 UTC (rev 6177)
@@ -108,9 +108,8 @@
_numberFormat = NumberFormat.getInstance();
- // This is a bit hard coded but if we use _scale here
- // some number displays go crazy.
- _numberFormat.setMaximumFractionDigits(5);
+ // If we use _scale here some number displays go crazy.
+ _numberFormat.setMaximumFractionDigits(maximumFractionDigits);
_numberFormat.setMinimumFractionDigits(0);
Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/FloatingPointBase.java
===================================================================
--- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/FloatingPointBase.java 2011-03-06 00:57:05 UTC (rev 6176)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/FloatingPointBase.java 2011-03-06 15:57:38 UTC (rev 6177)
@@ -3,15 +3,25 @@
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
import java.text.NumberFormat;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
+import javax.swing.JLabel;
import javax.swing.JRadioButton;
+import javax.swing.JTextField;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+import net.sourceforge.squirrel_sql.fw.gui.IntegerField;
import net.sourceforge.squirrel_sql.fw.gui.OkJPanel;
import net.sourceforge.squirrel_sql.fw.util.StringManager;
import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
+import net.sourceforge.squirrel_sql.fw.util.StringUtilities;
public abstract class FloatingPointBase extends BaseDataTypeComponent
{
@@ -25,6 +35,13 @@
// flag for whether to use the default Java format (true)
// or the Locale-dependent format (false)
protected static boolean useJavaDefaultFormat = false;
+
+
+ /**
+ * How many Digits after the comma should be shown?
+ */
+ protected static int maximumFractionDigits = 5;
+
/**
* Generate a JPanel containing controls that allow the user
@@ -84,6 +101,14 @@
{
useJavaDefaultFormat =true;
}
+
+ maximumFractionDigits = 5; // by default use 5
+ String maximumFractionDigitsString = DTProperties.get(DataTypeBigDecimal.class.getName(), "maximumFractionDigits");
+
+ if (StringUtilities.isEmpty(maximumFractionDigitsString) == false)
+ {
+ maximumFractionDigits =Integer.valueOf(maximumFractionDigitsString);
+ }
}
}
@@ -98,26 +123,30 @@
JRadioButton optUseDefaultFormat;
JRadioButton optUseLocaleDependendFormat;
-
+ IntegerField maximumFraction;
+
public FloatingPointOkJPanel()
{
- NumberFormat numberFormat = NumberFormat.getInstance();
- numberFormat.setMaximumFractionDigits(5);
+
optUseDefaultFormat =
new JRadioButton(s_stringMgr.getString("floatingPointBase.useDefaultFormat", new Double(3.14159).toString()));
optUseLocaleDependendFormat =
- new JRadioButton(s_stringMgr.getString("floatingPointBase.uselocaleDependendFormat", numberFormat.format(new Double(3.14159))));
-
-
-
+ new JRadioButton(createTextForOptUseLocaleDependendFormat(maximumFractionDigits));
+
+ maximumFraction = new IntegerField(2);
+
setBorder(BorderFactory.createTitledBorder(s_stringMgr.getString("floatingPointBase.typeBigDecimal")));
setLayout(new GridBagLayout());
GridBagConstraints gbc;
- gbc = new GridBagConstraints(0,0,1,1,0,0,GridBagConstraints.NORTHWEST,GridBagConstraints.HORIZONTAL, new Insets(4, 4, 4, 4),0,0);
+ gbc = new GridBagConstraints(0,0,1,1,0,0,GridBagConstraints.WEST,GridBagConstraints.HORIZONTAL, new Insets(4, 4, 4, 4),0,0);
add(optUseLocaleDependendFormat, gbc);
+
+ gbc = new GridBagConstraints(1,0,1,1,0,0,GridBagConstraints.EAST,GridBagConstraints.HORIZONTAL, new Insets(4, 4, 4, 4),0,0);
+ add(maximumFraction, gbc);
+
gbc = new GridBagConstraints(0,1,1,1,0,0,GridBagConstraints.NORTHWEST,GridBagConstraints.HORIZONTAL, new Insets(0, 4, 4, 4),0,0);
add(optUseDefaultFormat, gbc);
@@ -127,11 +156,63 @@
bg.add(optUseDefaultFormat);
bg.add(optUseLocaleDependendFormat);
+
+
+ // Register listeners, for enabling/disabling the integer-field "maximumFraction"
+ optUseLocaleDependendFormat.addChangeListener(new ChangeListener() {
+ @Override
+ public void stateChanged(ChangeEvent e) {
+ if(optUseLocaleDependendFormat.isSelected()){
+ maximumFraction.setEditable(true);
+ maximumFraction.setEnabled(true);
+ }
+ }
+ });
+
+ optUseDefaultFormat.addChangeListener(new ChangeListener() {
+ @Override
+ public void stateChanged(ChangeEvent e) {
+ if(optUseDefaultFormat.isSelected()){
+ maximumFraction.setEditable(false);
+ maximumFraction.setEnabled(false);
+ }
+ }
+ });
+
+
+ // Register a listener for updating the example text with the actual settings of maximumFractions
+ maximumFraction.addFocusListener(new FocusListener() {
+ @Override
+ public void focusLost(FocusEvent e) {
+ optUseLocaleDependendFormat.setText(createTextForOptUseLocaleDependendFormat(maximumFraction.getInt()));
+ maximumFraction.repaint();
+ }
+
+ @Override
+ public void focusGained(FocusEvent e) {
+ // do nothing
+ }
+ });
+
+
+ // set the initial value
optUseLocaleDependendFormat.setSelected(!useJavaDefaultFormat);
optUseDefaultFormat.setSelected(useJavaDefaultFormat);
+ maximumFraction.setInt(maximumFractionDigits);
+
}
/**
+ * Creates the text for the {@link JRadioButton} of "use locale depended format" with respect of maxFractionDigits
+ * @param maxFractionDigits Number of digits after the comma to use in the example.
+ */
+ private String createTextForOptUseLocaleDependendFormat(int maxFractionDigits) {
+ NumberFormat numberFormat = NumberFormat.getInstance();
+ numberFormat.setMaximumFractionDigits(maxFractionDigits);
+ return s_stringMgr.getString("floatingPointBase.uselocaleDependendFormat", numberFormat.format(new Double(3.14159)));
+ }
+
+ /**
* User has clicked OK in the surrounding JPanel,
* so save the current state of all variables
*/
@@ -142,9 +223,12 @@
DTProperties.put(DataTypeBigDecimal.class.getName(),
"useJavaDefaultFormat",
Boolean.valueOf(useJavaDefaultFormat).toString());
+
+ maximumFractionDigits = maximumFraction.getInt();
+ DTProperties.put(DataTypeBigDecimal.class.getName(),
+ "maximumFractionDigits",
+ Integer.valueOf(maximumFractionDigits).toString());
}
} // end of inner class
-
-
}
Modified: trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/I18NStrings.properties
===================================================================
--- trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/I18NStrings.properties 2011-03-06 00:57:05 UTC (rev 6176)
+++ trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/I18NStrings.properties 2011-03-06 15:57:38 UTC (rev 6177)
@@ -63,7 +63,7 @@
floatingPointBase.typeBigDecimal=FLOAT, REAL, DOUBLE, NUMERIC, DECIMAL (SQL types 6, 7, 8, 2, 3)
floatingPointBase.useDefaultFormat=Use default format ({0})
-floatingPointBase.uselocaleDependendFormat=Use locale-dependent format: {0}
+floatingPointBase.uselocaleDependendFormat=Use locale-dependent format ({0}) with the maximum number of decimal digits of
dataTypeBlob.useColumnLabelInsteadColumnName=Use column labels instead of column names in result headers
dataTypeGeneral.generalType=General (applies to all types)
\ No newline at end of file
Modified: trunk/sql12/fw/src/test/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeBigDecimalTest.java
===================================================================
--- trunk/sql12/fw/src/test/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeBigDecimalTest.java 2011-03-06 00:57:05 UTC (rev 6176)
+++ trunk/sql12/fw/src/test/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeBigDecimalTest.java 2011-03-06 15:57:38 UTC (rev 6177)
@@ -1,10 +1,14 @@
package net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent;
+import static org.junit.Assert.assertEquals;
+
import java.math.BigDecimal;
+import java.text.NumberFormat;
import net.sourceforge.squirrel_sql.fw.datasetviewer.ColumnDisplayDefinition;
import org.junit.Before;
+import org.junit.Test;
/*
* Copyright (C) 2006 Rob Manning
@@ -30,17 +34,22 @@
*
* @author manningr
*/
-public class DataTypeBigDecimalTest extends AbstractDataTypeComponentTest
+public class DataTypeBigDecimalTest extends FloatingPointBaseTest<BigDecimal>
{
@Before
public void setUp() throws Exception
{
+ initClassUnderTest();
+ super.setUp();
+ }
+
+ @Override
+ protected void initClassUnderTest() {
ColumnDisplayDefinition columnDisplayDefinition = getMockColumnDisplayDefinition();
mockHelper.replayAll();
classUnderTest = new DataTypeBigDecimal(null, columnDisplayDefinition);
mockHelper.resetAll();
- super.setUp();
}
@Override
@@ -49,4 +58,9 @@
return BigDecimal.ONE;
}
+ @Override
+ protected BigDecimal getValueForRenderingTests() {
+ return new BigDecimal(1234.1456789);
+ }
+
}
Modified: trunk/sql12/fw/src/test/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeDoubleTest.java
===================================================================
--- trunk/sql12/fw/src/test/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeDoubleTest.java 2011-03-06 00:57:05 UTC (rev 6176)
+++ trunk/sql12/fw/src/test/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeDoubleTest.java 2011-03-06 15:57:38 UTC (rev 6177)
@@ -1,5 +1,7 @@
package net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent;
+import org.junit.Before;
+
import net.sourceforge.squirrel_sql.fw.datasetviewer.ColumnDisplayDefinition;
/*
@@ -26,7 +28,7 @@
*
* @author manningr
*/
-public class DataTypeDoubleTest extends AbstractDataTypeComponentTest {
+public class DataTypeDoubleTest extends FloatingPointBaseTest<Double> {
/**
* @see net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent.AbstractDataTypeComponentTest#getWhereClauseValueObject()
@@ -37,19 +39,30 @@
return null;
}
+ @Before
public void setUp() throws Exception {
+ initClassUnderTest();
+ super.setUp();
+ }
+
+ @Override
+ protected Object getEqualsTestObject()
+ {
+ return new Double(0);
+ }
+
+ @Override
+ protected void initClassUnderTest() {
ColumnDisplayDefinition columnDisplayDefinition =
super.getMockColumnDisplayDefinition();
mockHelper.replayAll();
classUnderTest = new DataTypeDouble(null, columnDisplayDefinition);
mockHelper.resetAll();
- super.setUp();
}
@Override
- protected Object getEqualsTestObject()
- {
- return new Double(0);
+ protected Double getValueForRenderingTests() {
+ return new Double(1234.1456789);
}
Modified: trunk/sql12/fw/src/test/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeFloatTest.java
===================================================================
--- trunk/sql12/fw/src/test/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeFloatTest.java 2011-03-06 00:57:05 UTC (rev 6176)
+++ trunk/sql12/fw/src/test/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeFloatTest.java 2011-03-06 15:57:38 UTC (rev 6177)
@@ -2,8 +2,15 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertEquals;
+
+import java.lang.reflect.Field;
+import java.sql.Date;
+import java.text.NumberFormat;
+
import net.sourceforge.squirrel_sql.fw.datasetviewer.ColumnDisplayDefinition;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -31,35 +38,44 @@
*
* @author manningr
*/
-public class DataTypeFloatTest extends AbstractDataTypeComponentTest {
+public class DataTypeFloatTest extends FloatingPointBaseTest <Float> {
+
@Before
public void setUp() throws Exception {
- ColumnDisplayDefinition mockColumnDisplayDefinition = getMockColumnDisplayDefinition();
- mockHelper.replayAll();
- classUnderTest = new DataTypeFloat(null, mockColumnDisplayDefinition);
- mockHelper.resetAll();
+ initClassUnderTest();
super.setUp();
-
+
}
-
+
@Override
- protected Object getEqualsTestObject()
- {
+ protected Object getEqualsTestObject() {
return Float.valueOf(1);
}
@Override
@Test
public void testGetWhereClauseValue() {
- ColumnDisplayDefinition localMockColumnDisplayDefinition =
- getMockColumnDisplayDefinition();
+ ColumnDisplayDefinition localMockColumnDisplayDefinition = getMockColumnDisplayDefinition();
mockHelper.replayAll();
classUnderTest.setColumnDisplayDefinition(localMockColumnDisplayDefinition);
assertNotNull(classUnderTest.getWhereClauseValue(null, mockMetaData));
- // Floats cannot be used as where clause values as there are not precise.
+ // Floats cannot be used as where clause values as there are not
+ // precise.
assertNull(classUnderTest.getWhereClauseValue(getWhereClauseValueObject(), mockMetaData));
mockHelper.verifyAll();
}
-
+
+ @Override
+ protected void initClassUnderTest() {
+ ColumnDisplayDefinition mockColumnDisplayDefinition = getMockColumnDisplayDefinition();
+ mockHelper.replayAll();
+ classUnderTest = new DataTypeFloat(null, mockColumnDisplayDefinition);
+ mockHelper.resetAll();
+ }
+
+ @Override
+ protected Float getValueForRenderingTests() {
+ return new Float(1234.1456789F);
+ }
}
Added: trunk/sql12/fw/src/test/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/FloatingPointBaseTest.java
===================================================================
--- trunk/sql12/fw/src/test/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/FloatingPointBaseTest.java (rev 0)
+++ trunk/sql12/fw/src/test/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/FloatingPointBaseTest.java 2011-03-06 15:57:38 UTC (rev 6177)
@@ -0,0 +1,198 @@
+/*
+ * Copyright (C) 2011 Stefan Willinger
+ * wi...@us...
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+package net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent;
+
+import static org.junit.Assert.assertEquals;
+
+import java.lang.reflect.Field;
+import java.text.NumberFormat;
+
+import net.sourceforge.squirrel_sql.fw.datasetviewer.ColumnDisplayDefinition;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+
+/**
+ * Some Test-Cases for data types based on {@link FloatingPointBase}.
+ * Especially rendering of values will be tested.
+ * @author Stefan Willinger
+ * @param <T> Type, which the specific data type will handle e.g. {@link Float}
+ */
+public abstract class FloatingPointBaseTest<T> extends AbstractDataTypeComponentTest {
+
+ private String[] savedDTProperties;
+
+ /**
+ * For some tests, we need to change {@link DTProperties} before initialization of
+ * the tested class. This method will be called after changing DTProperties
+ * and must recreate the classUnderTest.
+ */
+ protected abstract void initClassUnderTest();
+
+
+ @Before
+ public void setUp() throws Exception {
+ // some tests need to change the configuration. Save it first.
+ saveCurrentDTProperties();
+ super.setUp();
+
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ // some tests need to change the configuration. Restore them now.
+ restoreCurrentDTProperties();
+ }
+
+
+ /**
+ * Ensure that rendering of a value will be right with the default behavior.
+ * The default behavior uses a locale dependent format and an default fraction of 5.
+ * @see #getValueForRenderingTests()
+ * @throws Exception
+ */
+ @Test
+ public void testFormat_defaultBehavior() throws Exception
+ {
+ initClassUnderTest();
+
+ T value = getValueForRenderingTests();
+
+
+ String rendered = classUnderTest.renderObject(value);
+
+
+ /*
+ * Use the systems number format instead of comparing string's
+ * make this test independent from the locale.
+ */
+ NumberFormat numberFormat = NumberFormat.getInstance();
+ numberFormat.setMaximumFractionDigits(5);
+
+ assertEquals(numberFormat.format(value), rendered);
+ }
+
+
+ /**
+ * The value to use for rendering-tests.
+ * It is suggested to use the value <code>1234.1456789</code> because the default fraction is 5
+ * and the custom fraction used by these tests is 6.
+ */
+ protected abstract T getValueForRenderingTests();
+
+
+ /**
+ * Ensure that rendering of a value will be right by choosing the locale dependent format and an default fraction of 5.
+ * @see #getValueForRenderingTests()
+ * @throws Exception
+ */
+ @Test
+ public void testUseLocaleDependingFormat_defaultFraction() throws Exception
+ {
+ DTProperties.put(DataTypeBigDecimal.class.getName(), "useJavaDefaultFormat", "false");
+
+ initClassUnderTest();
+
+ T value = getValueForRenderingTests();
+
+ String rendered = classUnderTest.renderObject(value);
+
+ /*
+ * Use the systems number format instead of comparing string's
+ * make this test independent from the locale.
+ */
+ NumberFormat numberFormat = NumberFormat.getInstance();
+ numberFormat.setMaximumFractionDigits(5); //Default fraction
+
+ assertEquals(numberFormat.format(value), rendered);
+
+ }
+
+
+ /**
+ * Ensure that rendering of a value will be right by choosing the locale dependent format and an custom fraction.
+ * @see #getValueForRenderingTests()
+ * @throws Exception
+ */
+ @Test
+ public void testUseLocaleDependingFormat_customFraction() throws Exception
+ {
+ DTProperties.put(DataTypeBigDecimal.class.getName(), "useJavaDefaultFormat", "false");
+ DTProperties.put(DataTypeBigDecimal.class.getName(), "maximumFractionDigits", "6");
+
+ initClassUnderTest();
+
+ T value = getValueForRenderingTests();
+
+ String rendered = classUnderTest.renderObject(value);
+
+ /*
+ * Use the systems number format instead of comparing string's
+ * make this test independent from the locale.
+ */
+ NumberFormat numberFormat = NumberFormat.getInstance();
+ numberFormat.setMaximumFractionDigits(6);
+
+ assertEquals(numberFormat.format(value), rendered);
+
+ }
+
+
+
+ private void restoreCurrentDTProperties() {
+ DTProperties props = new DTProperties();
+ props.setDataArray(savedDTProperties);
+
+ }
+
+ private void saveCurrentDTProperties() {
+ DTProperties props = new DTProperties();
+ savedDTProperties = props.getDataArray();
+ }
+
+ /**
+ * Test rendering of a value using the JavaDefaultFormat
+ * @see #getValueForRenderingTests()
+ */
+ @Test
+ public void testUseDefaultFormat() throws Exception
+ {
+ DTProperties.put(DataTypeBigDecimal.class.getName(), "useJavaDefaultFormat", "true");
+
+ initClassUnderTest();
+
+ T value = getValueForRenderingTests();
+
+ String rendered = classUnderTest.renderObject(value);
+
+ assertEquals(value.toString(), rendered);
+
+ }
+
+
+ protected void resetPropertiesLoadedFlag() throws Exception {
+ Field field = FloatingPointBase.class.getDeclaredField("propertiesAlreadyLoaded");
+ field.setAccessible(true);
+ field.set(null, false);
+ }
+
+
+}
Property changes on: trunk/sql12/fw/src/test/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/FloatingPointBaseTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|