package com.vaadin.v7.tests.components.textfield;
import com.vaadin.tests.components.TestBase;
import com.vaadin.tests.util.TestUtils;
import com.vaadin.v7.event.FieldEvents.TextChangeEvent;
import com.vaadin.v7.event.FieldEvents.TextChangeListener;
import com.vaadin.v7.ui.AbstractTextField.TextChangeEventMode;
import com.vaadin.v7.ui.TextField;
public class TextChangeListenerChangingNonTextProperties extends TestBase {
int index = 0;
String[] styles = { "red", "green", "blue", "cyan", "magenta" };
private String getNextStyle() {
return styles[++index % styles.length];
}
@Override
protected void setup() {
final TextField tf2 = new TextField("Updates width") {
@Override
public void attach() {
super.attach();
TestUtils.injectCSS(getUI(), ".red { background:red;} "
+ ".green { background:green;} .blue { background:blue;} .cyan { background:cyan;} .magenta { background:magenta;}");
}
};
tf2.setTextChangeEventMode(TextChangeEventMode.EAGER);
tf2.addTextChangeListener(new TextChangeListener() {
@Override
public void textChange(TextChangeEvent event) {
tf2.setStyleName(getNextStyle());
}
});
tf2.setImmediate(true);
addComponent(tf2);
}
@Override
protected String getDescription() {
return "The color (style name) of field changes on each text change event. This should not disturb typing.";
}
@Override
protected Integer getTicketNumber() {
return Integer.valueOf(6588);
}
}