@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()); }
@Override public void updateState() { component.setEnabled(input.isEnabled()); component.setToolTipText(input.getDescription()); inputField.setToolTipText(input.getDescription()); if (!getValue().equals(getInputValue())) { reloadValue(); } if (CompletionUtil.hasCompletions(input)) { inputField.setVariants(getCompletions()); } updateNote(component, input.getNote()); }
protected String getValue() { return inputField.getText(); }
private void reloadValue() { String value = getInputValue(); inputField.setText(value == null ? "" : value); }
private List<String> getCompletions() { return CompletionUtil.getCompletions( converterFactory, context, input, component != null ? inputField.getText() : null); }