aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VTextField.java37
-rw-r--r--src/com/vaadin/ui/TextField.java8
-rw-r--r--tests/src/com/vaadin/tests/tickets/Ticket6003.java61
3 files changed, 92 insertions, 14 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VTextField.java b/src/com/vaadin/terminal/gwt/client/ui/VTextField.java
index 2bfa3f5cdc..4ba6256b29 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/VTextField.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/VTextField.java
@@ -67,6 +67,7 @@ public class VTextField extends TextBoxBase implements Paintable, Field,
private String inputPrompt = null;
private boolean prompting = false;
private int lastCursorPos = -1;
+ private boolean wordwrap = true;
public VTextField() {
this(DOM.createInputText());
@@ -108,8 +109,7 @@ public class VTextField extends TextBoxBase implements Paintable, Field,
}
if (listenTextChangeEvents
- && (event.getTypeInt() & TEXTCHANGE_EVENTS) == event
- .getTypeInt()) {
+ && (event.getTypeInt() & TEXTCHANGE_EVENTS) == event.getTypeInt()) {
deferTextChangeEvent();
}
@@ -199,20 +199,18 @@ public class VTextField extends TextBoxBase implements Paintable, Field,
inputPrompt = uidl.getStringAttribute(ATTR_INPUTPROMPT);
- setMaxLength(uidl.hasAttribute("maxLength") ? uidl
- .getIntAttribute("maxLength") : -1);
+ setMaxLength(uidl.hasAttribute("maxLength") ? uidl.getIntAttribute("maxLength")
+ : -1);
immediate = uidl.getBooleanAttribute("immediate");
listenTextChangeEvents = client.hasEventListeners(this, "ie");
if (listenTextChangeEvents) {
- textChangeEventMode = uidl
- .getStringAttribute(ATTR_TEXTCHANGE_EVENTMODE);
+ textChangeEventMode = uidl.getStringAttribute(ATTR_TEXTCHANGE_EVENTMODE);
if (textChangeEventMode.equals(TEXTCHANGE_MODE_EAGER)) {
textChangeEventTimeout = 1;
} else {
- textChangeEventTimeout = uidl
- .getIntAttribute(ATTR_TEXTCHANGE_TIMEOUT);
+ textChangeEventTimeout = uidl.getIntAttribute(ATTR_TEXTCHANGE_TIMEOUT);
}
sinkEvents(TEXTCHANGE_EVENTS);
attachCutEventListener(getElement());
@@ -222,8 +220,8 @@ public class VTextField extends TextBoxBase implements Paintable, Field,
setColumns(new Integer(uidl.getStringAttribute("cols")).intValue());
}
- final String text = uidl.hasVariable("text") ? uidl
- .getStringVariable("text") : null;
+ final String text = uidl.hasVariable("text") ? uidl.getStringVariable("text")
+ : null;
setPrompting(inputPrompt != null && focusedTextField != this
&& (text == null || text.equals("")));
@@ -280,6 +278,11 @@ public class VTextField extends TextBoxBase implements Paintable, Field,
}
});
}
+
+ // For backward compatibility; to be moved to TextArea
+ if (uidl.hasAttribute("wordwrap")) {
+ setWordwrap(uidl.getBooleanAttribute("wordwrap"));
+ }
}
protected void onCut() {
@@ -538,4 +541,18 @@ public class VTextField extends TextBoxBase implements Paintable, Field,
valueChange(false);
}
+ // For backward compatibility; to be moved to TextArea
+ public void setWordwrap(boolean enabled) {
+ if (enabled == wordwrap)
+ return; // No change
+
+ if (enabled) {
+ DOM.removeElementAttribute(getElement(), "wrap");
+ DOM.setStyleAttribute(getElement(), "overflow", null);
+ } else {
+ DOM.setElementAttribute(getElement(), "wrap", "off");
+ DOM.setStyleAttribute(getElement(), "overflow", "auto");
+ }
+ wordwrap = enabled;
+ }
}
diff --git a/src/com/vaadin/ui/TextField.java b/src/com/vaadin/ui/TextField.java
index 245c498959..e4a48f52de 100644
--- a/src/com/vaadin/ui/TextField.java
+++ b/src/com/vaadin/ui/TextField.java
@@ -198,9 +198,9 @@ public class TextField extends AbstractTextField implements
if (rows != 0) {
target.addAttribute("rows", String.valueOf(rows));
target.addAttribute("multiline", true);
- if (!isWordwrap()) {
- target.addAttribute("wordwrap", false);
- }
+
+ // For backward compatibility; to be moved to TextArea
+ target.addAttribute("wordwrap", isWordwrap());
}
if (getInputPrompt() != null) {
@@ -484,7 +484,7 @@ public class TextField extends AbstractTextField implements
textChangeEventPending = true;
}
- /* ** Text Change Events ** */
+ /* ** Text Change Events ** */
/**
* Sets the mode how the TextField triggers {@link TextChangeEvent}s.
diff --git a/tests/src/com/vaadin/tests/tickets/Ticket6003.java b/tests/src/com/vaadin/tests/tickets/Ticket6003.java
new file mode 100644
index 0000000000..4e3f129a6a
--- /dev/null
+++ b/tests/src/com/vaadin/tests/tickets/Ticket6003.java
@@ -0,0 +1,61 @@
+package com.vaadin.tests.tickets;
+
+import com.vaadin.data.Property;
+import com.vaadin.data.Property.ValueChangeEvent;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.CheckBox;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.TextArea;
+import com.vaadin.ui.VerticalLayout;
+import com.vaadin.ui.Window;
+
+public class Ticket6003 extends TestBase {
+
+ @Override
+ public void setup() {
+ Window main = new Window("The Main Window");
+ setMainWindow(main);
+
+ final VerticalLayout mainLayout = new VerticalLayout();
+ main.setContent(mainLayout);
+
+ HorizontalLayout layout = new HorizontalLayout();
+
+ TextArea area1 = new TextArea("Wrapping");
+ area1.setWordwrap(true); // The default
+ area1.setValue("A quick brown fox jumps over the lazy dog");
+
+ final TextArea area2 = new TextArea("Nonwrapping");
+ area2.setWordwrap(false);
+ area2.setValue("Victor jagt zwölf Boxkämpfer quer "
+ + "über den Sylter Deich");
+
+ layout.addComponent(area1);
+ layout.addComponent(area2);
+ layout.setSpacing(true);
+
+ mainLayout.addComponent(layout);
+
+ CheckBox onoff = new CheckBox("Wrap state for the right field");
+ onoff.setValue(false);
+ onoff.addListener(new Property.ValueChangeListener() {
+ @Override
+ public void valueChange(ValueChangeEvent event) {
+ area2.setWordwrap((Boolean) event.getProperty().getValue());
+ }
+ });
+ onoff.setImmediate(true);
+
+ mainLayout.addComponent(onoff);
+ }
+
+ @Override
+ protected String getDescription() {
+ return "";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 6003;
+ }
+}