From a77afeb05580529ed92b273a5de69d51990199a2 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Fri, 22 May 2009 16:48:32 +0000 Subject: [PATCH] Test case and fix for #2935 - TextField with an input prompt can send prompt text as a value svn changeset:7974/svn branch:6.0 --- .../terminal/gwt/client/ui/VTextField.java | 10 +++- ...nterShortcutMaySendInputPromptAsValue.java | 57 +++++++++++++++++++ 2 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 src/com/vaadin/tests/components/textfield/EnterShortcutMaySendInputPromptAsValue.java diff --git a/src/com/vaadin/terminal/gwt/client/ui/VTextField.java b/src/com/vaadin/terminal/gwt/client/ui/VTextField.java index 2d8e9ac219..00d76d6099 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VTextField.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VTextField.java @@ -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 index 0000000000..bf9924cdbb --- /dev/null +++ b/src/com/vaadin/tests/components/textfield/EnterShortcutMaySendInputPromptAsValue.java @@ -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); + + } + +} -- 2.39.5