OSDN Git Service

リファクタリング
[midichordhelper/MIDIChordHelper.git] / src / camidion / chordhelper / chorddiagram / CapoSelecterView.java
1 package camidion.chordhelper.chorddiagram;
2
3 import java.awt.event.ItemEvent;
4 import java.awt.event.ItemListener;
5
6 import javax.swing.BoxLayout;
7 import javax.swing.JCheckBox;
8 import javax.swing.JComboBox;
9 import javax.swing.JPanel;
10
11 /**
12  * カポ選択ビュー
13  */
14 public class CapoSelecterView extends JPanel {
15         /**
16          * カポON/OFFチェックボックス
17          */
18         public JCheckBox checkbox = new JCheckBox("Capo") {{ setOpaque(false); }};
19         /**
20          * カポ位置選択コンボボックス
21          */
22         public JComboBox<Integer> valueSelecter = new JComboBox<Integer>() {{
23                 setMaximumRowCount(12);
24                 setVisible(false);
25         }};
26         /**
27          * カポ選択ビューを構築します。
28          */
29         public CapoSelecterView() {
30                 checkbox.addItemListener(new ItemListener() {
31                         @Override
32                         public void itemStateChanged(ItemEvent e) {
33                                 valueSelecter.setVisible(checkbox.isSelected());
34                         }
35                 });
36                 setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
37                 add(checkbox);
38                 add(valueSelecter);
39         }
40         /**
41          * 指定されたデータモデルを操作するカポ選択ビューを構築します。
42          * @param model データモデル
43          */
44         public CapoSelecterView(CapoComboBoxModel model) {
45                 this();
46                 valueSelecter.setModel(model);
47         }
48         /**
49          * カポ位置を返します。
50          * @return カポ位置
51          */
52         public int getCapo() {
53                 return checkbox.isSelected() ? valueSelecter.getSelectedIndex()+1 : 0;
54         }
55 }