/[svn]/jsampler/trunk/src/org/jsampler/view/std/JSMidiInstrumentsPane.java
ViewVC logotype

Annotation of /jsampler/trunk/src/org/jsampler/view/std/JSMidiInstrumentsPane.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1286 - (hide annotations) (download)
Fri Aug 10 20:24:23 2007 UTC (16 years, 9 months ago) by iliev
File size: 4116 byte(s)
- Updated to version 0.6a. The Fantasia distribution is now
  capable of controlling all features available in LinuxSampler

1 iliev 1286 /*
2     * JSampler - a java front-end for LinuxSampler
3     *
4     * Copyright (C) 2005-2007 Grigor Iliev <grigor@grigoriliev.com>
5     *
6     * This file is part of JSampler.
7     *
8     * JSampler is free software; you can redistribute it and/or modify
9     * it under the terms of the GNU General Public License version 2
10     * as published by the Free Software Foundation.
11     *
12     * JSampler is distributed in the hope that it will be useful,
13     * but WITHOUT ANY WARRANTY; without even the implied warranty of
14     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15     * GNU General Public License for more details.
16     *
17     * You should have received a copy of the GNU General Public License
18     * along with JSampler; if not, write to the Free Software
19     * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20     * MA 02111-1307 USA
21     */
22    
23     package org.jsampler.view.std;
24    
25     import java.awt.BorderLayout;
26    
27     import java.awt.event.ActionEvent;
28    
29     import javax.swing.AbstractAction;
30     import javax.swing.Action;
31     import javax.swing.JPanel;
32     import javax.swing.JScrollPane;
33    
34     import javax.swing.event.TreeSelectionEvent;
35     import javax.swing.event.TreeSelectionListener;
36    
37     import net.sf.juife.Wizard;
38    
39     import org.jsampler.CC;
40     import org.jsampler.MidiInstrument;
41     import org.jsampler.MidiInstrumentMap;
42    
43     import org.linuxsampler.lscp.MidiInstrumentInfo;
44    
45     import static org.jsampler.view.std.StdI18n.i18n;
46    
47     /**
48     *
49     * @author Grigor Iliev
50     */
51     public class JSMidiInstrumentsPane extends JPanel implements TreeSelectionListener {
52     protected final JSMidiInstrumentTree midiInstrumentTree = new JSMidiInstrumentTree();
53    
54     protected final Action actionAddInstrument = new AddInstrumentAction();
55     protected final Action actionEditInstrument = new EditInstrumentAction();
56     protected final Action actionRemove = new RemoveAction();
57    
58     /** Creates a new instance of <code>JSMidiInstrumentsPane</code> */
59     public
60     JSMidiInstrumentsPane() {
61     this(null);
62     }
63    
64     /** Creates a new instance of <code>JSMidiInstrumentsPane</code> */
65     public
66     JSMidiInstrumentsPane(MidiInstrumentMap map) {
67     setMidiInstrumentMap(map);
68    
69     setLayout(new BorderLayout());
70     JScrollPane sp = new JScrollPane(midiInstrumentTree);
71     add(sp);
72    
73     midiInstrumentTree.addTreeSelectionListener(this);
74     }
75    
76     public void
77     setMidiInstrumentMap(MidiInstrumentMap map) {
78     midiInstrumentTree.setMidiInstrumentMap(map);
79     actionAddInstrument.setEnabled(map != null);
80     }
81    
82     public void
83     valueChanged(TreeSelectionEvent e) {
84     actionRemove.setEnabled(midiInstrumentTree.getSelectionCount() > 0);
85     boolean b = midiInstrumentTree.getSelectedInstrument() != null;
86     actionEditInstrument.setEnabled(b);
87     }
88    
89     public void
90     addInstrument() { }
91    
92     public void
93     editInstrument(MidiInstrument instr) {
94     JSEditMidiInstrumentDlg dlg = new JSEditMidiInstrumentDlg(instr.getInfo());
95     dlg.setVisible(true);
96    
97     if(dlg.isCancelled()) return;
98    
99     MidiInstrumentInfo info = dlg.getInstrument();
100     CC.getSamplerModel().mapBackendMidiInstrument (
101     info.getMapId(), info.getMidiBank(), info.getMidiProgram(), info
102     );
103     }
104    
105     private class AddInstrumentAction extends AbstractAction {
106     AddInstrumentAction() {
107     super(i18n.getLabel("JSMidiInstrumentsPane.addInstrument"));
108    
109     String s = "JSMidiInstrumentsPane.addInstrument.tt";
110     putValue(SHORT_DESCRIPTION, i18n.getLabel(s));
111     }
112    
113     public void
114     actionPerformed(ActionEvent e) {
115     addInstrument();
116     }
117     }
118    
119     private class EditInstrumentAction extends AbstractAction {
120     EditInstrumentAction() {
121     super(i18n.getLabel("JSMidiInstrumentsPane.editInstrument"));
122    
123     String s = i18n.getLabel("JSMidiInstrumentsPane.editInstrument.tt");
124     putValue(SHORT_DESCRIPTION, s);
125    
126     setEnabled(false);
127     }
128    
129     public void
130     actionPerformed(ActionEvent e) {
131     editInstrument(midiInstrumentTree.getSelectedInstrument());
132    
133     }
134     }
135    
136     private class RemoveAction extends AbstractAction {
137     RemoveAction() {
138     String s = i18n.getLabel("JSMidiInstrumentsPane.remove.tt");
139     putValue(SHORT_DESCRIPTION, s);
140    
141     setEnabled(false);
142     }
143    
144     public void
145     actionPerformed(ActionEvent e) {
146     midiInstrumentTree.removeSelectedInstrumentOrBank();
147     }
148     }
149     }

  ViewVC Help
Powered by ViewVC