/* ArtifactOptionsPanel.java created 2007-11-02 * */ package org.signalml.plugin.newartifact.ui; import static org.signalml.plugin.i18n.PluginI18n._; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.DefaultComboBoxModel; import javax.swing.GroupLayout; import javax.swing.GroupLayout.Alignment; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.CompoundBorder; import javax.swing.border.EmptyBorder; import javax.swing.border.TitledBorder; import org.signalml.app.view.common.components.ResolvableComboBox; import org.signalml.plugin.newartifact.data.NewArtifactPowerGridFrequency; /** ArtifactOptionsPanel * * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o. * (dialog design based on work by Hubert Klekowicz) */ public class NewArtifactOptionsPanel extends JPanel { private static final long serialVersionUID = 1L; private ResolvableComboBox powerComboBox; private JCheckBox exclusionCheckBox; private JButton exclusionButton; public NewArtifactOptionsPanel() { super(); initialize(); } private void initialize() { CompoundBorder border = new CompoundBorder( new TitledBorder(_("Options")), new EmptyBorder(3,3,3,3) ); setBorder(border); GroupLayout layout = new GroupLayout(this); this.setLayout(layout); layout.setAutoCreateContainerGaps(false); layout.setAutoCreateGaps(true); JLabel powerLabel = new JLabel(_("Power frequency")); GroupLayout.SequentialGroup hGroup = layout.createSequentialGroup(); hGroup.addGroup( layout.createParallelGroup() .addComponent(powerLabel) .addComponent(getExclusionCheckBox()) ); hGroup.addGroup( layout.createParallelGroup(Alignment.TRAILING) .addComponent(getPowerComboBox()) .addComponent(getExclusionButton()) ); layout.setHorizontalGroup(hGroup); GroupLayout.SequentialGroup vGroup = layout.createSequentialGroup(); vGroup.addGroup( layout.createParallelGroup(Alignment.BASELINE) .addComponent(powerLabel) .addComponent(getPowerComboBox()) ); vGroup.addGroup( layout.createParallelGroup(Alignment.BASELINE) .addComponent(getExclusionCheckBox()) .addComponent(getExclusionButton()) ); layout.setVerticalGroup(vGroup); } public ResolvableComboBox getPowerComboBox() { if (powerComboBox == null) { powerComboBox = new ResolvableComboBox(); DefaultComboBoxModel model = new DefaultComboBoxModel(NewArtifactPowerGridFrequency.values()); powerComboBox.setModel(model); } return powerComboBox; } public JCheckBox getExclusionCheckBox() { if (exclusionCheckBox == null) { exclusionCheckBox = new JCheckBox(_("Exclude some derivations")); exclusionCheckBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { boolean selected = (e.getStateChange() == ItemEvent.SELECTED); getExclusionButton().setEnabled(selected); } }); } return exclusionCheckBox; } public JButton getExclusionButton() { if (exclusionButton == null) { exclusionButton = new JButton(); } return exclusionButton; } }