@Override public void buildUI(Container container) { TextFieldWithAutoCompletion<String> textField = CompletionUtil.createTextFieldWithAutoCompletion(context, input); component = new ComponentWithBrowseButton<>(textField, createBrowseButtonActionListener(textField)); inputField = component.getChildComponent(); inputField.setToolTipText(input.getDescription()); component.setToolTipText(input.getDescription()); inputField .getDocument() .addDocumentListener( new DocumentListener() { @Override public void beforeDocumentChange(DocumentEvent event) {} @Override public void documentChanged(DocumentEvent event) { PluginService.getInstance() .submitFormUpdate( new FormUpdateCallback( converterFactory, input, getValue(), valueChangeListener)); } }); container.add(component); component.setToolTipText(input.getDescription()); addNoteLabel(container, component).setText(input.getNote()); }