private String inputPrompt = null;
private boolean prompting = false;
private int lastCursorPos = -1;
+ private boolean wordwrap = true;
public VTextField() {
this(DOM.createInputText());
}
if (listenTextChangeEvents
- && (event.getTypeInt() & TEXTCHANGE_EVENTS) == event
- .getTypeInt()) {
+ && (event.getTypeInt() & TEXTCHANGE_EVENTS) == event.getTypeInt()) {
deferTextChangeEvent();
}
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());
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("")));
}
});
}
+
+ // For backward compatibility; to be moved to TextArea
+ if (uidl.hasAttribute("wordwrap")) {
+ setWordwrap(uidl.getBooleanAttribute("wordwrap"));
+ }
}
protected void onCut() {
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;
+ }
}
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) {
textChangeEventPending = true;
}
- /* ** Text Change Events ** */
+ /* ** Text Change Events ** */
/**
* Sets the mode how the TextField triggers {@link TextChangeEvent}s.
--- /dev/null
+package com.vaadin.tests.tickets;\r
+\r
+import com.vaadin.data.Property;\r
+import com.vaadin.data.Property.ValueChangeEvent;\r
+import com.vaadin.tests.components.TestBase;\r
+import com.vaadin.ui.CheckBox;\r
+import com.vaadin.ui.HorizontalLayout;\r
+import com.vaadin.ui.TextArea;\r
+import com.vaadin.ui.VerticalLayout;\r
+import com.vaadin.ui.Window;\r
+\r
+public class Ticket6003 extends TestBase {\r
+\r
+ @Override\r
+ public void setup() {\r
+ Window main = new Window("The Main Window");\r
+ setMainWindow(main);\r
+\r
+ final VerticalLayout mainLayout = new VerticalLayout();\r
+ main.setContent(mainLayout);\r
+\r
+ HorizontalLayout layout = new HorizontalLayout();\r
+\r
+ TextArea area1 = new TextArea("Wrapping");\r
+ area1.setWordwrap(true); // The default\r
+ area1.setValue("A quick brown fox jumps over the lazy dog");\r
+\r
+ final TextArea area2 = new TextArea("Nonwrapping");\r
+ area2.setWordwrap(false);\r
+ area2.setValue("Victor jagt zwölf Boxkämpfer quer "\r
+ + "über den Sylter Deich");\r
+\r
+ layout.addComponent(area1);\r
+ layout.addComponent(area2);\r
+ layout.setSpacing(true);\r
+\r
+ mainLayout.addComponent(layout);\r
+\r
+ CheckBox onoff = new CheckBox("Wrap state for the right field");\r
+ onoff.setValue(false);\r
+ onoff.addListener(new Property.ValueChangeListener() {\r
+ @Override\r
+ public void valueChange(ValueChangeEvent event) {\r
+ area2.setWordwrap((Boolean) event.getProperty().getValue());\r
+ }\r
+ });\r
+ onoff.setImmediate(true);\r
+\r
+ mainLayout.addComponent(onoff);\r
+ }\r
+\r
+ @Override\r
+ protected String getDescription() {\r
+ return "";\r
+ }\r
+\r
+ @Override\r
+ protected Integer getTicketNumber() {\r
+ return 6003;\r
+ }\r
+}\r