public static JTextField addTextField(JPanel parent, TextFieldEditor textEditor, String labelText, PropertyContainer propertyContainer, BindingContext bindingContext, String propertyName, boolean isRequired) { parent.add(new JLabel(labelText)); PropertyDescriptor propertyDescriptor = propertyContainer.getDescriptor(propertyName); if (isRequired) { propertyDescriptor.setValidator(new NotEmptyValidator()); } JComponent editorComponent = textEditor.createEditorComponent(propertyDescriptor, bindingContext); UIUtils.addPromptSupport(editorComponent, "enter " + labelText.toLowerCase().replace(":", "") + " here"); UIUtils.enableUndoRedo(editorComponent); parent.add(editorComponent); return (JTextField) editorComponent; }
private static String separateWords(String text) { return separateWords(text, true); }
public static void addPromptSupport(JComponent component, Property property) { addPromptSupport(component, property, null); }
templateContent = new JTextArea("", 15, 9); UIUtils.enableUndoRedo(templateContent);
JComponent addValidatedTextField(JPanel parent, TextFieldEditor textEditor, String labelText, String propertyName, String validatorRegex) { if(validatorRegex == null || validatorRegex.isEmpty()){ return addTextField(parent, textEditor, labelText, propertyName, false, null); } else { JLabel jLabel = new JLabel(labelText); parent.add(jLabel); PropertyDescriptor propertyDescriptor = propertyContainer.getDescriptor(propertyName); propertyDescriptor.setValidator(new PatternValidator(Pattern.compile(validatorRegex))); JComponent editorComponent = textEditor.createEditorComponent(propertyDescriptor, bindingContext); UIUtils.addPromptSupport(editorComponent, "enter " + labelText.toLowerCase().replace(":", "") + " here"); editorComponent.setPreferredSize(new Dimension(editorComponent.getPreferredSize().width, controlHeight)); editorComponent.setMaximumSize(new Dimension(editorComponent.getMaximumSize().width, controlHeight)); jLabel.setLabelFor(editorComponent); parent.add(editorComponent); return editorComponent; } }
editorComponent.setMaximumSize(new Dimension(editorComponent.getMaximumSize().width, controlHeight)); editorComponent.setPreferredSize(new Dimension(editorComponent.getPreferredSize().width, controlHeight)); org.esa.snap.utils.UIUtils.enableUndoRedo(editorComponent); JLabel jLabel = new JLabel(Bundle.CTL_Label_ToolLocation_Text()); panelToolFiles.add(jLabel); editorComponent.setMaximumSize(new Dimension(editorComponent.getMaximumSize().width, controlHeight)); editorComponent.setPreferredSize(new Dimension(editorComponent.getPreferredSize().width, controlHeight)); org.esa.snap.utils.UIUtils.enableUndoRedo(editorComponent); jLabel = new JLabel(Bundle.CTL_Label_WorkDir_Text()); panelToolFiles.add(jLabel);
JComponent addTextField(JPanel parent, TextFieldEditor textEditor, String labelText, String propertyName, boolean isRequired, String[] excludedChars) { JLabel jLabel = new JLabel(labelText); Dimension size = jLabel.getPreferredSize(); parent.add(jLabel); PropertyDescriptor propertyDescriptor = propertyContainer.getDescriptor(propertyName); if (isRequired) { propertyDescriptor.setValidator(new DecoratedNotEmptyValidator(jLabel, excludedChars)); jLabel.setMaximumSize(new Dimension(size.width + 20, size.height)); } JComponent editorComponent = textEditor.createEditorComponent(propertyDescriptor, bindingContext); UIUtils.addPromptSupport(editorComponent, "enter " + labelText.toLowerCase().replace(":", "") + " here"); UIUtils.enableUndoRedo(editorComponent); editorComponent.setPreferredSize(new Dimension(editorComponent.getPreferredSize().width, controlHeight)); editorComponent.setMaximumSize(new Dimension(editorComponent.getMaximumSize().width, controlHeight)); jLabel.setLabelFor(editorComponent); parent.add(editorComponent); return editorComponent; }
outFileName.setPreferredSize( new Dimension(filePathComponent.getPreferredSize().width + label.getPreferredSize().width - jLabel.getPreferredSize().width, 25)); org.esa.snap.utils.UIUtils.addPromptSupport(outFileName, "Enter the name of transformed file here"); outFilePanel.add(outFileName); topPanel.add(outFilePanel, BorderLayout.WEST);
public static void addPromptSupport(JComponent component, Property property, String promptText) { if (JTextComponent.class.isAssignableFrom(component.getClass())) { JTextComponent castedComponent = (JTextComponent) component; String text; if (File.class.isAssignableFrom(property.getType())) { text = promptText != null ? promptText : String.format(FILE_FIELD_PROMPT, separateWords(property.getName())); } else { if (promptText == null) { text = property.getDescriptor().getDescription(); if (StringUtils.isNullOrEmpty(text)) { text = String.format(TEXT_FIELD_PROMPT, separateWords(property.getName())); } } else { text = promptText; } } PromptSupport.setPrompt(text, castedComponent); PromptSupport.setFocusBehavior(PromptSupport.FocusBehavior.HIDE_PROMPT, castedComponent); } }
for (Property property : propertyContainer.getProperties()) { Arrays.stream(parametersPane.getBindingContext().getBinding(property.getName()).getComponents()) .forEach(c -> UIUtils.addPromptSupport(c, property)); if (this.annotatedFields.containsKey(property.getName())) { Optional<Annotation> annotation = Arrays.stream(this.annotatedFields.get(property.getName()))