package nl.fontys.sofa.limo.view.wizard.types.hub; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List; import javax.swing.ButtonGroup; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; import javax.swing.JPanel; import javax.swing.JRadioButton; import nl.fontys.sofa.limo.api.service.provider.HubTypeService; import nl.fontys.sofa.limo.domain.component.type.HubType; import nl.fontys.sofa.limo.view.util.LIMOResourceBundle; import org.openide.util.Lookup; /** * Selection for New or Copy LegType * * @author Pascal Lindner */ public final class NewOrDuplicatedHubTypePanel extends JPanel { private List<HubType> ht; public NewOrDuplicatedHubTypePanel() { initComponents(); } @Override public String getName() { return LIMOResourceBundle.getString("HUB_TYPE"); } private void initComponents() { buttonGroup1 = new ButtonGroup(); rbFromScratch = new JRadioButton(); rbCopyFrom = new JRadioButton(); cmbHubType = new JComboBox(); setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 1; c.gridx = 0; c.gridy = 0; buttonGroup1.add(rbFromScratch); rbFromScratch.setText(LIMOResourceBundle.getString("FROM_SCRATCH")); add(rbFromScratch, c); rbFromScratch.setSelected(true); buttonGroup1.add(rbCopyFrom); rbCopyFrom.setText(LIMOResourceBundle.getString("COPY_EXISTING")); c.weightx = 1; c.gridx = 0; c.gridy = 1; add(rbCopyFrom, c); setActionListener(); HubTypeService hubTypeService = Lookup.getDefault().lookup(HubTypeService.class); ht = hubTypeService.findAll(); List<String> hubTypeList = new ArrayList<>(); ht.stream().forEach((ht2) -> { hubTypeList.add(ht2.getName()); }); cmbHubType.setModel(new DefaultComboBoxModel(hubTypeList.toArray())); c.weightx = 1; c.gridx = 0; c.gridy = 2; add(cmbHubType, c); cmbHubType.setEnabled(false); if (ht.isEmpty()) { rbCopyFrom.setEnabled(false); cmbHubType.setEditable(false); } } public HubType getHubType() { if (rbCopyFrom.isSelected()) { return ht.get(cmbHubType.getSelectedIndex()); } else { return null; } } //AddActionListener public void setActionListener() { rbFromScratch.addActionListener((ActionEvent e) -> { if (rbFromScratch.isSelected()) { cmbHubType.setEnabled(false); } }); rbCopyFrom.addActionListener((ActionEvent e) -> { if (rbCopyFrom.isSelected()) { cmbHubType.setEnabled(true); } }); } private ButtonGroup buttonGroup1; private JRadioButton rbFromScratch; private JRadioButton rbCopyFrom; private JComboBox cmbHubType; }