r2453 - trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor
Author: tchemit Date: 2012-07-30 20:29:23 +0200 (Mon, 30 Jul 2012) New Revision: 2453 Url: http://nuiton.org/repositories/revision/jaxx/2453 Log: #2215: Can auto-select NumberEditor content when having bad content Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/NumberEditor.jaxx trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/NumberEditorHandler.java Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/NumberEditor.jaxx =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/NumberEditor.jaxx 2012-07-30 18:29:11 UTC (rev 2452) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/NumberEditor.jaxx 2012-07-30 18:29:23 UTC (rev 2453) @@ -76,6 +76,9 @@ <!-- internal state --> <Boolean id='popupVisible' javaBean='false'/> + <!-- When a error occurs, previous valid value is repush in textField, with this flag setted to true then also reselect this content. --> + <Boolean id='selectAllTextOnError' javaBean='false'/> + <!-- ui handler --> <NumberEditorHandler id='handler' constructorParams='this'/> Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/NumberEditorHandler.java =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/NumberEditorHandler.java 2012-07-30 18:29:11 UTC (rev 2452) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/NumberEditorHandler.java 2012-07-30 18:29:23 UTC (rev 2453) @@ -25,6 +25,16 @@ package jaxx.runtime.swing.editor; +import org.apache.commons.beanutils.PropertyUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.swing.JComponent; +import javax.swing.JTextField; +import javax.swing.SwingUtilities; +import javax.swing.text.BadLocationException; import java.awt.Dimension; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; @@ -37,15 +47,6 @@ import java.math.BigInteger; import java.util.regex.Matcher; import java.util.regex.Pattern; -import javax.swing.JComponent; -import javax.swing.JTextField; -import javax.swing.SwingUtilities; -import javax.swing.text.BadLocationException; -import org.apache.commons.beanutils.PropertyUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.math.NumberUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import static jaxx.runtime.swing.editor.NumberEditor.PROPERTY_MODEL; import static jaxx.runtime.swing.editor.NumberEditor.PROPERTY_POPUP_VISIBLE; @@ -363,16 +364,20 @@ log.debug("invalid text " + s + " reput old text " + text); } - if (oldPosition > 0) { - oldPosition--; - } field.setText(text); lastValidText = text; - try { - field.setCaretPosition(oldPosition); - } catch (IllegalArgumentException ex) { - log.debug("CaretPosition is invalid for position : " + oldPosition, ex); + if (editor.isSelectAllTextOnError()) { + field.selectAll(); + } else { + if (oldPosition > 0) { + oldPosition--; + } + try { + field.setCaretPosition(oldPosition); + } catch (IllegalArgumentException ex) { + log.debug("CaretPosition is invalid for position : " + oldPosition, ex); + } } }
participants (1)
-
tchemit@users.nuiton.org