Subversion Repositories svn.mios

Rev

Rev 642 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 642 Rev 721
Line 46... Line 46...
46
import org.midibox.utils.gui.FontLoader;
46
import org.midibox.utils.gui.FontLoader;
47
47
48
public class MidiParameterControlGUI extends JPanel implements Observer,
48
public class MidiParameterControlGUI extends JPanel implements Observer,
49
        ActionListener, MouseListener {
49
        ActionListener, MouseListener {
50
50
51
    protected MidiParameterControl midiParameter;
51
    protected MidiParameterControl midiParameterControl;
52
52
53
    protected boolean showLabel;
53
    protected boolean showLabel;
54
54
55
    protected String labelLocation;
55
    protected String labelLocation;
56
56
Line 70... Line 70...
70
70
71
    protected boolean update = true;
71
    protected boolean update = true;
72
72
73
    protected JDialog midiParameterPropertiesDialog;
73
    protected JDialog midiParameterPropertiesDialog;
74
74
75
    public MidiParameterControlGUI(MidiParameterControl midiParameter,
75
    public MidiParameterControlGUI(MidiParameterControl midiParameterControl,
76
            boolean showLabel, String labelLocation, boolean valueBelow,
76
            boolean showLabel, String labelLocation, boolean valueBelow,
77
            boolean showValue) {
77
            boolean showValue) {
78
78
79
        super(new BorderLayout());
79
        super(new BorderLayout());
80
80
81
        this.midiParameter = midiParameter;
81
        this.midiParameterControl = midiParameterControl;
82
        this.showLabel = showLabel;
82
        this.showLabel = showLabel;
83
        this.labelLocation = labelLocation;
83
        this.labelLocation = labelLocation;
84
        this.valueBelow = valueBelow;
84
        this.valueBelow = valueBelow;
85
        this.showValue = showValue;
85
        this.showValue = showValue;
86
86
87
        midiParameter.addObserver(this);
87
        midiParameterControl.addObserver(this);
88
88
89
        valueBuffer = new StringBuffer();
89
        valueBuffer = new StringBuffer();
90
90
91
        if (showLabel) {
91
        if (showLabel) {
92
            add(createLabelPanel(), labelLocation);
92
            add(createLabelPanel(), labelLocation);
Line 96... Line 96...
96
96
97
        setOpaque(false);
97
        setOpaque(false);
98
    }
98
    }
99
99
100
    protected JPopupMenu createPopMenu() {
100
    protected JPopupMenu createPopMenu() {
101
        JPopupMenu popupMenu = new JPopupMenu(midiParameter.getMidiName());
101
        JPopupMenu popupMenu = new JPopupMenu(midiParameterControl.getMidiName());
102
102
103
        JMenuItem menuItem = new JMenuItem("MIDI Properties");
103
        JMenuItem menuItem = new JMenuItem("MIDI Properties");
104
        menuItem.setActionCommand("midiproperties");
104
        menuItem.setActionCommand("midiproperties");
105
        menuItem.addActionListener(this);
105
        menuItem.addActionListener(this);
106
        popupMenu.add(menuItem);
106
        popupMenu.add(menuItem);
Line 113... Line 113...
113
        JPanel labelPanel = new JPanel((showValue) ? new GridLayout(
113
        JPanel labelPanel = new JPanel((showValue) ? new GridLayout(
114
                (valueBelow ? 2 : 1), (valueBelow ? 1 : 2)) : new GridLayout(1,
114
                (valueBelow ? 2 : 1), (valueBelow ? 1 : 2)) : new GridLayout(1,
115
                1));
115
                1));
116
        labelPanel.setOpaque(false);
116
        labelPanel.setOpaque(false);
117
117
118
        midiParameterLabel = new JLabel(midiParameter.getMidiName()
118
        midiParameterLabel = new JLabel(midiParameterControl.getMidiName()
119
                .toUpperCase(),
119
                .toUpperCase(),
120
                (showValue) ? ((valueBelow ? SwingConstants.CENTER
120
                (showValue) ? ((valueBelow ? SwingConstants.CENTER
121
                        : SwingConstants.RIGHT)) : SwingConstants.CENTER);
121
                        : SwingConstants.RIGHT)) : SwingConstants.CENTER);
122
        midiParameterLabel.setOpaque(false);
122
        midiParameterLabel.setOpaque(false);
123
        midiParameterLabel.setFont(FontLoader.getFont("uni05_53.ttf", 8f));
123
        midiParameterLabel.setFont(FontLoader.getFont("uni05_53.ttf", 8f));
Line 152... Line 152...
152
        this.labelFieldColor = labelFieldColor;
152
        this.labelFieldColor = labelFieldColor;
153
        this.midiParameterLabel.setForeground(labelFieldColor);
153
        this.midiParameterLabel.setForeground(labelFieldColor);
154
    }
154
    }
155
155
156
    public MidiParameterControl getMidiParameterControl() {
156
    public MidiParameterControl getMidiParameterControl() {
157
        return midiParameter;
157
        return midiParameterControl;
158
    }
158
    }
159
159
160
    public void updateGraphics() {
160
    public void updateGraphics() {
161
        if (valueField != null) {
161
        if (valueField != null) {
162
            updateValueField();
162
            updateValueField();
163
        }
163
        }
164
    }
164
    }
165
165
166
    public void updateValueField() {
166
    public void updateValueField() {
167
        valueBuffer.delete(0, valueBuffer.length());
167
        valueBuffer.delete(0, valueBuffer.length());
168
        valueBuffer.insert(0, midiParameter.getMidiValue());
168
        valueBuffer.insert(0, midiParameterControl.getMidiValue());
169
        valueField.setText(valueBuffer.toString());
169
        valueField.setText(valueBuffer.toString());
170
    }
170
    }
171
171
172
    private void showMidiParameterProperties() {
172
    private void showMidiParameterProperties() {
173
        if (midiParameterPropertiesDialog == null) {
173
        if (midiParameterPropertiesDialog == null) {
Line 183... Line 183...
183
            midiParameterPropertiesDialog.setVisible(true);
183
            midiParameterPropertiesDialog.setVisible(true);
184
184
185
            midiParameterPropertiesDialog
185
            midiParameterPropertiesDialog
186
                    .addWindowListener(new WindowAdapter() {
186
                    .addWindowListener(new WindowAdapter() {
187
                        public void windowClosing(WindowEvent we) {
187
                        public void windowClosing(WindowEvent we) {
188
                            midiParameter
188
                            midiParameterControl
189
                                    .deleteObserver(midiParameterProperties);
189
                                    .deleteObserver(midiParameterProperties);
190
                            midiParameterPropertiesDialog = null;
190
                            midiParameterPropertiesDialog = null;
191
                        }
191
                        }
192
                    });
192
                    });
193
        }
193
        }
Line 218... Line 218...
218
218
219
    public void actionPerformed(ActionEvent ae) {
219
    public void actionPerformed(ActionEvent ae) {
220
        Object source = ae.getSource();
220
        Object source = ae.getSource();
221
        if (source == valueField) {
221
        if (source == valueField) {
222
            try {
222
            try {
223
                midiParameter.setMidiValue(Integer.parseInt(valueField
223
                midiParameterControl.setMidiValue(Integer.parseInt(valueField
224
                        .getText()), true);
224
                        .getText()), true);
225
            } catch (Exception e) {
225
            } catch (Exception e) {
226
                midiParameter.setMidiValue(midiParameter.getMidiValue(), true);
226
                midiParameterControl.setMidiValue(midiParameterControl.getMidiValue(), true);
227
            }
227
            }
228
        } else if (ae.getActionCommand().equals("midilearn")) {
228
        } else if (ae.getActionCommand().equals("midilearn")) {
229
229
230
        } else if (ae.getActionCommand().equals("midiproperties")) {
230
        } else if (ae.getActionCommand().equals("midiproperties")) {
231
            showMidiParameterProperties();
231
            showMidiParameterProperties();
232
        }
232
        }
233
    }
233
    }
234
234
235
    public void update(Observable observable, Object object) {
235
    public void update(Observable observable, Object object) {
236
        if (observable == midiParameter) {
236
        if (observable == midiParameterControl) {
237
            if (object != MidiParameter.VALUE) {
237
            if (object != MidiParameter.VALUE) {
238
                if (showLabel) {
238
                if (showLabel) {
239
                    midiParameterLabel.setText(midiParameter.getMidiName()
239
                    midiParameterLabel.setText(midiParameterControl.getMidiName()
240
                            .toUpperCase());
240
                            .toUpperCase());
241
                }
241
                }
242
            }
242
            }
243
            updateGraphics();
243
            updateGraphics();
244
        }
244
        }