package nl.fontys.sofa.limo.view.custom.panel; import javax.swing.BoxLayout; import javax.swing.GroupLayout; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.LayoutStyle; import javax.swing.SwingConstants; import nl.fontys.sofa.limo.view.util.LIMOResourceBundle; import org.netbeans.validation.api.Problem; import org.netbeans.validation.api.builtin.stringvalidation.StringValidators; import org.netbeans.validation.api.ui.ValidationUI; import org.netbeans.validation.api.ui.swing.SwingValidationGroup; /** * Reusable {@link JPanel} for inputting name and description. * * @author Sebastiaan Heijmann */ public class NameDescriptionDialogInputPanel extends JPanel implements ValidationUI { private JPanel contentPane; private JLabel descriptionLB; private JTextArea descriptionTF; private JScrollPane scrollPane; private JLabel nameLB; private JTextField nameTF; private final SwingValidationGroup group; /** * Creates a new DialogInputPane with validation in place. */ public NameDescriptionDialogInputPanel() { initComponents(); nameTF.setName(LIMOResourceBundle.getString("NAME")); descriptionTF.setName(LIMOResourceBundle.getString("DESCRIPTION")); group = SwingValidationGroup.create(this); group.add(nameTF, StringValidators.REQUIRE_NON_EMPTY_STRING); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") private void initComponents() { contentPane = new JPanel(); nameLB = new JLabel(); descriptionLB = new JLabel(); nameTF = new JTextField(); scrollPane = new JScrollPane(); descriptionTF = new JTextArea(); setMaximumSize(new java.awt.Dimension(600, 125)); setMinimumSize(new java.awt.Dimension(600, 125)); setPreferredSize(new java.awt.Dimension(600, 125)); setRequestFocusEnabled(false); setLayout(new BoxLayout(this, BoxLayout.LINE_AXIS)); contentPane.setMaximumSize(new java.awt.Dimension(600, 100)); contentPane.setMinimumSize(new java.awt.Dimension(600, 100)); contentPane.setPreferredSize(new java.awt.Dimension(600, 100)); nameLB.setHorizontalAlignment(SwingConstants.RIGHT); org.openide.awt.Mnemonics.setLocalizedText(nameLB, org.openide.util.NbBundle.getMessage(NameDescriptionDialogInputPanel.class, "NameDescriptionDialogInputPanel.nameLB.text")); // NOI18N descriptionLB.setHorizontalAlignment(SwingConstants.RIGHT); org.openide.awt.Mnemonics.setLocalizedText(descriptionLB, org.openide.util.NbBundle.getMessage(NameDescriptionDialogInputPanel.class, "NameDescriptionDialogInputPanel.descriptionLB.text")); // NOI18N descriptionTF.setColumns(20); descriptionTF.setRows(5); descriptionTF.setName(LIMOResourceBundle.getString("DESCRIPTION")); // NOI18N scrollPane.setViewportView(descriptionTF); GroupLayout contentPaneLayout = new GroupLayout(contentPane); contentPane.setLayout(contentPaneLayout); contentPaneLayout.setHorizontalGroup(contentPaneLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(contentPaneLayout.createSequentialGroup() .addGap(43, 43, 43) .addGroup(contentPaneLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) .addComponent(nameLB, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(descriptionLB, GroupLayout.PREFERRED_SIZE, 108, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addGroup(contentPaneLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(nameTF, GroupLayout.DEFAULT_SIZE, 247, Short.MAX_VALUE) .addComponent(scrollPane)) .addGap(40, 40, 40)) ); contentPaneLayout.setVerticalGroup(contentPaneLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(contentPaneLayout.createSequentialGroup() .addGap(0, 0, 0) .addGroup(contentPaneLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(nameTF, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(nameLB)) .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(contentPaneLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(contentPaneLayout.createSequentialGroup() .addComponent(descriptionLB) .addContainerGap(54, Short.MAX_VALUE)) .addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))) ); add(contentPane); } public String getNameFieldValue() { return nameTF.getText(); } public String getDescriptionFieldValue() { return descriptionTF.getText(); } public SwingValidationGroup getValidationGroup() { return group; } @Override public void showProblem(Problem prblm) { System.out.println(prblm.getMessage()); } @Override public void clearProblem() { } public void setBeanName(String name) { nameTF.setText(name); } public void setBeanDescription(String description) { descriptionTF.setText(description); } }