Revision: 6198
http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=6198&view=rev
Author: wis775
Date: 2011-03-18 21:41:54 +0000 (Fri, 18 Mar 2011)
Log Message:
-----------
3222350: Cannot enter negative values for numeric fields when editing the result table.
A sign was only allowed, if no value was present. Now, a sign is allowed, if the caret is at position 0 and the char after the caret is a numeric one. (Avoiding 2 or more signs)
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
Modified: trunk/sql12/doc/src/main/resources/changes.txt
===================================================================
--- trunk/sql12/doc/src/main/resources/changes.txt 2011-03-17 22:07:19 UTC (rev 6197)
+++ trunk/sql12/doc/src/main/resources/changes.txt 2011-03-18 21:41:54 UTC (rev 6198)
@@ -29,6 +29,8 @@
Bug-fixes:
+3222350: Cannot enter negative values for numeric fields when editing the result table.
+
3196153: When typing using shift, you must release shift to type space
3088572: Squirrel fails when user tries to edit DB fields which have particular characters.
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-17 22:07:19 UTC (rev 6197)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeBigDecimal.java 2011-03-18 21:41:54 UTC (rev 6198)
@@ -36,6 +36,8 @@
import javax.swing.SwingUtilities;
import javax.swing.text.JTextComponent;
+import org.apache.commons.lang.StringUtils;
+
import net.sourceforge.squirrel_sql.fw.datasetviewer.CellDataPopup;
import net.sourceforge.squirrel_sql.fw.datasetviewer.ColumnDisplayDefinition;
import net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent.whereClause.IWhereClausePart;
@@ -410,12 +412,22 @@
e.consume();
}
}
-
+
+
+
if ( (c == '-' || c=='+') &&
- ! (text.equals("<null>") || text.length() == 0)) {
- // user entered '+' or '-' at a bad place
- _beepHelper.beep(_theComponent);
- e.consume();
+ ! (text.equals("<null>") || text.length() == 0)
+ ) {
+ int caretPosition = _theComponent.getCaretPosition();
+ if(caretPosition != 0 || !StringUtils.isNumeric(text.substring(0, 1))
+ ){
+ /*
+ * user entered '+' or '-' at a bad place,
+ * Maybe not at the first position, or there is not a numeric char at the beginning - maybe we have already a sign
+ */
+ _beepHelper.beep(_theComponent);
+ e.consume();
+ }
}
if ( ! ( Character.isDigit(c) ||
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|