public TagInputDialog(String locatorId) { super(locatorId); setIsModal(true); setShowHeader(false); setShowEdges(false); setEdgeSize(10); setWidth(200); setHeight(30); setShowToolbar(false); setDismissOnEscape(true); setDismissOnOutsideClick(true); Map<String, Integer> bodyDefaults = new HashMap<String, Integer>(2); bodyDefaults.put("layoutLeftMargin", 5); bodyDefaults.put("membersMargin", 10); setBodyDefaults(bodyDefaults); final LocatableDynamicForm form = new LocatableDynamicForm(extendLocatorId("tagInputForm")); addItem(form); tagInputItem = new ComboBoxItem("tag"); tagInputItem.setShowTitle(false); tagInputItem.setHideEmptyPickList(true); tagInputItem.setValueField("tag"); tagInputItem.setDisplayField("tag"); tagInputItem.setType("comboBox"); tagInputItem.setTextMatchStyle(TextMatchStyle.SUBSTRING); tagInputItem.setTooltip(MSG.view_tags_tooltip_3()); tagInputItem.addKeyPressHandler( new KeyPressHandler() { public void onKeyPress(KeyPressEvent event) { if ((event.getCharacterValue() != null) && (event.getCharacterValue() == KeyCodes.KEY_ENTER)) { // String tag = form.getValueAsString("tag"); String tag = tagInputItem.getEnteredValue(); if (tag != null) { Tag newTag = new Tag(tag); tags.add(newTag); TagEditorView.this.save(); TagInputDialog.this.hide(); } } } }); form.setFields(tagInputItem); }