private TextBox textBoxEditor(final RuleMetadata rm, final boolean isReadOnly) { final TextBox box = new TextBox(); box.setEnabled(!isReadOnly); box.setVisibleLength((rm.getValue().length() < 3) ? 3 : rm.getValue().length()); box.setText(rm.getValue()); box.addChangeHandler( new ChangeHandler() { public void onChange(ChangeEvent event) { rm.setValue(box.getText()); } }); box.addKeyUpHandler( new KeyUpHandler() { public void onKeyUp(KeyUpEvent event) { box.setVisibleLength(box.getText().length()); } }); return box; }