]> source.dussan.org Git - vaadin-framework.git/commitdiff
Test case and fix for #2935 - TextField with an input prompt can send prompt text...
authorArtur Signell <artur.signell@itmill.com>
Fri, 22 May 2009 16:48:32 +0000 (16:48 +0000)
committerArtur Signell <artur.signell@itmill.com>
Fri, 22 May 2009 16:48:32 +0000 (16:48 +0000)
svn changeset:7974/svn branch:6.0

src/com/vaadin/terminal/gwt/client/ui/VTextField.java
src/com/vaadin/tests/components/textfield/EnterShortcutMaySendInputPromptAsValue.java [new file with mode: 0644]

index 2d8e9ac2199a99d4401c37e3598041ccf07d0dcc..00d76d609957a85cf0765bdf9db836ae0c48301d 100644 (file)
@@ -103,7 +103,8 @@ public class VTextField extends TextBoxBase implements Paintable, Field,
         }
 
         String text = uidl.getStringVariable("text");
-        prompting = inputPrompt != null && (text == null || text.equals(""));
+        setPrompting(inputPrompt != null && focusedTextField != this
+                && (text == null || text.equals("")));
         if (prompting) {
             setText(inputPrompt);
             addStyleDependentName(CLASSNAME_PROMPT);
@@ -169,7 +170,7 @@ public class VTextField extends TextBoxBase implements Paintable, Field,
         removeStyleDependentName(CLASSNAME_FOCUS);
         focusedTextField = null;
         String text = getText();
-        prompting = inputPrompt != null && (text == null || "".equals(text));
+        setPrompting(inputPrompt != null && (text == null || "".equals(text)));
         if (prompting) {
             setText(inputPrompt);
             addStyleDependentName(CLASSNAME_PROMPT);
@@ -177,6 +178,11 @@ public class VTextField extends TextBoxBase implements Paintable, Field,
         onChange(sender);
     }
 
+    private void setPrompting(boolean prompting) {
+        this.prompting = prompting;
+        System.out.println("Prompting is now: " + prompting);
+    }
+
     public void setColumns(int columns) {
         setColumns(getElement(), columns);
     }
diff --git a/src/com/vaadin/tests/components/textfield/EnterShortcutMaySendInputPromptAsValue.java b/src/com/vaadin/tests/components/textfield/EnterShortcutMaySendInputPromptAsValue.java
new file mode 100644 (file)
index 0000000..bf9924c
--- /dev/null
@@ -0,0 +1,57 @@
+package com.vaadin.tests.components.textfield;
+
+import com.vaadin.data.Property.ValueChangeEvent;
+import com.vaadin.data.Property.ValueChangeListener;
+import com.vaadin.event.Action;
+import com.vaadin.event.ShortcutAction;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.TextField;
+
+public class EnterShortcutMaySendInputPromptAsValue extends TestBase {
+
+    @Override
+    protected String getDescription() {
+        return "?";
+    }
+
+    @Override
+    protected Integer getTicketNumber() {
+        return 2935;
+    }
+
+    @Override
+    protected void setup() {
+
+        final TextField testField = new TextField();
+        testField.setInputPrompt("Enter a value");
+
+        getMainWindow().addActionHandler(new Action.Handler() {
+
+            final Action enter = new ShortcutAction("enter",
+                    ShortcutAction.KeyCode.ENTER, null);
+
+            public Action[] getActions(Object target, Object sender) {
+                return new Action[] { enter };
+            }
+
+            public void handleAction(Action action, Object sender, Object target) {
+                if (action == enter) {
+
+                }
+            }
+
+        });
+        testField.addListener(new ValueChangeListener() {
+            public void valueChange(ValueChangeEvent event) {
+                String value = event.getProperty().getValue().toString();
+                addComponent(new Label("TextField sent value: " + value));
+                testField.setValue("");
+            }
+        });
+
+        addComponent(testField);
+
+    }
+
+}