javauis/lcdui_qt/src/javax/microedition/lcdui/TextField.java
changeset 57 59b3b4473dc8
parent 23 98ccebc37403
--- a/javauis/lcdui_qt/src/javax/microedition/lcdui/TextField.java	Fri Jul 23 12:27:20 2010 +0300
+++ b/javauis/lcdui_qt/src/javax/microedition/lcdui/TextField.java	Thu Aug 05 16:07:57 2010 +0300
@@ -78,10 +78,15 @@
     public static final int CONSTRAINT_MASK = 65535; // 0xFFFF
 
     /**
-     * Constant used by layouter to update TextField when setInitialInputMode
-     * was called.
+     * If TextField is changed, reasons for Re-layouting.
      */
-    static final int UPDATE_INITIAL_INPUT_MODE = 8;
+	static final int UPDATE_REASON_DELETE = UPDATE_ITEM_MAX << 1;
+	static final int UPDATE_REASON_INSERT = UPDATE_ITEM_MAX << 2;
+	static final int UPDATE_CHARS = UPDATE_ITEM_MAX << 3;
+	static final int UPDATE_CONSTRAINTS = UPDATE_ITEM_MAX << 4;
+	static final int UPDATE_INITIALINPUTMODE = UPDATE_ITEM_MAX << 5;
+	static final int UPDATE_MAXSIZE = UPDATE_ITEM_MAX << 6;
+	static final int UPDATE_STRING = UPDATE_ITEM_MAX << 7;
 
 
     private TextWrapper textWrapper;
@@ -132,7 +137,7 @@
     {
         textWrapper.setContent(newTxt);
         linesCount = 0;
-        updateParent(Item.UPDATE_CONTENT | Item.UPDATE_HEIGHT_CHANGED);
+        updateParent(UPDATE_STRING);
     }
 
     /**
@@ -182,7 +187,7 @@
         }
         textWrapper.setContent(extractedString);
         linesCount = 0;
-        updateParent(Item.UPDATE_CONTENT | Item.UPDATE_HEIGHT_CHANGED);
+        updateParent(UPDATE_CHARS);
     }
 
     /**
@@ -195,7 +200,7 @@
     {
         textWrapper.insert(newTxt, position);
         linesCount = 0;
-        updateParent(Item.UPDATE_CONTENT | Item.UPDATE_HEIGHT_CHANGED);
+        updateParent(UPDATE_REASON_INSERT);
     }
 
     /**
@@ -225,7 +230,7 @@
         }
         textWrapper.insert(extractedString, position);
         linesCount = 0;
-        updateParent(Item.UPDATE_CONTENT | Item.UPDATE_HEIGHT_CHANGED);
+        updateParent(UPDATE_REASON_INSERT);
     }
 
     /**
@@ -238,7 +243,7 @@
     {
         textWrapper.delete(offset, length);
         linesCount = 0;
-        updateParent(Item.UPDATE_CONTENT | Item.UPDATE_HEIGHT_CHANGED);
+        updateParent(UPDATE_REASON_DELETE);
     }
 
     /**
@@ -262,7 +267,7 @@
     {
         textWrapper.setMaxSize(newMaxSize);
         linesCount = 0;
-        updateParent(Item.UPDATE_CONTENT | Item.UPDATE_HEIGHT_CHANGED);
+        updateParent(UPDATE_MAXSIZE);
         return textWrapper.getMaxSize();
     }
 
@@ -284,7 +289,10 @@
     public void setConstraints(int newConstraints)
     {
         textWrapper.setConstraints(newConstraints);
-        updateParent(Item.UPDATE_CONTENT | Item.UPDATE_SIZE_CHANGED);
+        updateParent(UPDATE_CONSTRAINTS);
+        if(!textWrapper.isValidText(getString() , textWrapper.getTypeConstraint(newConstraints)))
+    	          setString("");
+        updateParent(UPDATE_STRING | UPDATE_SIZE_CHANGED);
     }
 
     /**
@@ -305,7 +313,7 @@
     public void setInitialInputMode(String inputMode)
     {
         textWrapper.setInputMode(inputMode);
-        updateParent(UPDATE_INITIAL_INPUT_MODE);
+        updateParent(UPDATE_INITIALINPUTMODE);
     }
 
     /**