TextArea textArea = createTextArea();
AbstractTextField activeComponent = textField;
@Override
protected void setup() {
FormLayout fl = new FormLayout();
Panel panel = new Panel(fl);
panel.setCaption("Hackers panel");
CheckBox ml = new CheckBox("Multiline");
ml.setImmediate(true);
ml.addListener(new Property.ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
if (textField.getUI() == null
|| textField.getUI().getSession() == null) {
replaceComponent(textArea, textField);
activeComponent = textField;
} else {
replaceComponent(textField, textArea);
activeComponent = textArea;
}
}
});
fl.addComponent(ml);
Button b = new Button("Select all ( selectAll() )");
b.addListener(new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
activeComponent.selectAll();
}
});
fl.addComponent(b);
HorizontalLayout selectRange = new HorizontalLayout();
selectRange
.setCaption("Select range of text ( setSelectionRange(int start, int lengt) )");
final TextField start = new TextField("From:");
final TextField length = new TextField("Selection length:");
b = new Button("select");
b.addListener(new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
int startPos = Integer.parseInt(start.getValue());
int lenght = Integer.parseInt(length.getValue());
activeComponent.setSelectionRange(startPos, lenght);
}
});
selectRange.addComponent(start);
selectRange.addComponent(length);
selectRange.addComponent(b);
fl.addComponent(selectRange);
HorizontalLayout setCursorPosition = new HorizontalLayout();
final TextField pos = new TextField("Position:");
b = new Button("set");
b.addListener(new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
int startPos = Integer.parseInt(pos.getValue());
activeComponent.setCursorPosition(startPos);
}
});
setCursorPosition.addComponent(pos);
setCursorPosition.addComponent(b);
setCursorPosition
.setCaption("Set cursor position ( setCursorPosition(int pos) )");
fl.addComponent(setCursorPosition);
getLayout().addComponent(textField);
getLayout().addComponent(panel);
}