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

Diff of /jsampler/trunk/src/org/jsampler/view/std/JSEditMidiInstrumentDlg.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1539 by iliev, Fri Aug 10 20:24:23 2007 UTC revision 1540 by iliev, Mon Dec 3 23:22:02 2007 UTC
# Line 27  import java.awt.GridBagConstraints; Line 27  import java.awt.GridBagConstraints;
27  import java.awt.GridBagLayout;  import java.awt.GridBagLayout;
28  import java.awt.Insets;  import java.awt.Insets;
29    
30    import java.awt.event.ActionEvent;
31    import java.awt.event.ActionListener;
32    
33  import javax.swing.JComboBox;  import javax.swing.JComboBox;
34  import javax.swing.JLabel;  import javax.swing.JLabel;
35  import javax.swing.JPanel;  import javax.swing.JPanel;
36  import javax.swing.JSlider;  import javax.swing.JSlider;
 import javax.swing.JSpinner;  
37  import javax.swing.JTextField;  import javax.swing.JTextField;
 import javax.swing.SpinnerNumberModel;  
38    
39  import javax.swing.event.DocumentEvent;  import javax.swing.event.DocumentEvent;
40  import javax.swing.event.DocumentListener;  import javax.swing.event.DocumentListener;
41    
42  import net.sf.juife.OkCancelDialog;  import net.sf.juife.OkCancelDialog;
43    
44    import net.sf.juife.event.TaskEvent;
45    import net.sf.juife.event.TaskListener;
46    
47  import org.jsampler.CC;  import org.jsampler.CC;
48    import org.jsampler.JSPrefs;
49    
50    import org.jsampler.task.Global;
51    
52    import org.linuxsampler.lscp.Instrument;
53  import org.linuxsampler.lscp.MidiInstrumentInfo;  import org.linuxsampler.lscp.MidiInstrumentInfo;
54  import org.linuxsampler.lscp.SamplerEngine;  import org.linuxsampler.lscp.SamplerEngine;
55    
# Line 69  public class JSEditMidiInstrumentDlg ext Line 77  public class JSEditMidiInstrumentDlg ext
77                  new JLabel(i18n.getLabel("JSEditMidiInstrumentDlg.lVolume"));                  new JLabel(i18n.getLabel("JSEditMidiInstrumentDlg.lVolume"));
78                    
79          private final JTextField tfName = new JTextField();          private final JTextField tfName = new JTextField();
80          private final JTextField tfFilename = new JTextField();          private final JComboBox cbFilename = new JComboBox();
81          private final JSpinner spinnerIndex = new JSpinner(new SpinnerNumberModel(0, 0, 500, 1));          private final JComboBox cbIndex = new JComboBox();
82          private final JComboBox cbEngine = new JComboBox();          private final JComboBox cbEngine = new JComboBox();
83          private final JComboBox cbLoadMode = new JComboBox();          private final JComboBox cbLoadMode = new JComboBox();
84          private final JSlider slVolume = new JSlider(0, 100, 100);          private final JSlider slVolume = StdUtils.createVolumeSlider();
85                    
86          private final MidiInstrumentInfo instrument;          private final MidiInstrumentInfo instrument;
87                    
# Line 138  public class JSEditMidiInstrumentDlg ext Line 146  public class JSEditMidiInstrumentDlg ext
146                  gridbag.setConstraints(tfName, c);                  gridbag.setConstraints(tfName, c);
147                  p.add(tfName);                  p.add(tfName);
148                                    
149                    cbFilename.setEditable(true);
150                    String[] files = preferences().getStringListProperty("recentInstrumentFiles");
151                    for(String s : files) cbFilename.addItem(s);
152                    cbFilename.setSelectedItem(null);
153                    Dimension d = cbFilename.getPreferredSize();
154                    d.width = 250;
155                    cbFilename.setPreferredSize(d);
156                    
157                  c.gridx = 1;                  c.gridx = 1;
158                  c.gridy = 1;                  c.gridy = 1;
159                  c.anchor = GridBagConstraints.WEST;                  c.anchor = GridBagConstraints.WEST;
160                  gridbag.setConstraints(tfFilename, c);                  gridbag.setConstraints(cbFilename, c);
161                  p.add(tfFilename);                  p.add(cbFilename);
162                                            
163                    for(int i = 0; i < 101; i++) cbIndex.addItem(i);
164                    
165                  c.gridx = 1;                  c.gridx = 1;
166                  c.gridy = 2;                  c.gridy = 2;
167                  gridbag.setConstraints(spinnerIndex, c);                  gridbag.setConstraints(cbIndex, c);
168                  p.add(spinnerIndex);                  p.add(cbIndex);
169                                    
170                  c.gridx = 1;                  c.gridx = 1;
171                  c.gridy = 3;                  c.gridy = 3;
# Line 168  public class JSEditMidiInstrumentDlg ext Line 186  public class JSEditMidiInstrumentDlg ext
186                                    
187                  setMainPane(p);                  setMainPane(p);
188                                    
189                    cbFilename.addActionListener(new ActionListener() {
190                            public void
191                            actionPerformed(ActionEvent e) {
192                                    updateState();
193                                    updateFileInstruments();
194                            }
195                    });
196                    
197                  tfName.setText(instr.getName());                  tfName.setText(instr.getName());
198                  tfFilename.setText(instr.getFilePath());                  cbFilename.setSelectedItem(instr.getFilePath());
199                  spinnerIndex.setValue(instr.getInstrumentIndex());                  cbIndex.setSelectedIndex(instr.getInstrumentIndex());
200                  slVolume.setValue((int)(instr.getVolume() * 100));                  slVolume.setValue((int)(instr.getVolume() * 100));
201                                    
202                  for(SamplerEngine e : CC.getSamplerModel().getEngines()) {                  for(SamplerEngine e : CC.getSamplerModel().getEngines()) {
# Line 185  public class JSEditMidiInstrumentDlg ext Line 211  public class JSEditMidiInstrumentDlg ext
211                  cbLoadMode.setSelectedItem(instr.getLoadMode());                  cbLoadMode.setSelectedItem(instr.getLoadMode());
212                                    
213                  tfName.getDocument().addDocumentListener(getHandler());                  tfName.getDocument().addDocumentListener(getHandler());
                 tfFilename.getDocument().addDocumentListener(getHandler());  
214          }          }
215                    
216            protected JSPrefs
217            preferences() { return CC.getViewConfig().preferences(); }
218            
219          public MidiInstrumentInfo          public MidiInstrumentInfo
220          getInstrument() { return instrument; }          getInstrument() { return instrument; }
221                    
222          public void          public void
223          onOk() {          onOk() {
224                  instrument.setName(tfName.getText());                  instrument.setName(tfName.getText());
225                  instrument.setFilePath(tfFilename.getText());                  instrument.setFilePath(cbFilename.getSelectedItem().toString());
226                  instrument.setInstrumentIndex(Integer.parseInt(spinnerIndex.getValue().toString()));                  instrument.setInstrumentIndex(cbIndex.getSelectedIndex());
227                  String s = ((SamplerEngine)cbEngine.getSelectedItem()).getName();                  String s = ((SamplerEngine)cbEngine.getSelectedItem()).getName();
228                  instrument.setEngine(s);                  instrument.setEngine(s);
229                  instrument.setLoadMode((MidiInstrumentInfo.LoadMode)cbLoadMode.getSelectedItem());                  instrument.setLoadMode((MidiInstrumentInfo.LoadMode)cbLoadMode.getSelectedItem());
# Line 212  public class JSEditMidiInstrumentDlg ext Line 240  public class JSEditMidiInstrumentDlg ext
240                    
241          private void          private void
242          updateState() {          updateState() {
243                  boolean b = tfName.getText().length() != 0 && tfFilename.getText().length() != 0;                  boolean b = tfName.getText().length() != 0;
244                    if(cbFilename.getSelectedItem() == null) b = false;
245                    Object o = cbIndex.getSelectedItem();
246                    if(o == null || o.toString().length() == 0) b = false;
247                  btnOk.setEnabled(b);                  btnOk.setEnabled(b);
248          }          }
249                    
250            private boolean init = true;
251            
252            private void
253            updateFileInstruments() {
254                    Object o = cbFilename.getSelectedItem();
255                    if(o == null) return;
256                    String s = o.toString();
257                    final Global.GetFileInstruments t = new Global.GetFileInstruments(s);
258                    
259                    t.addTaskListener(new TaskListener() {
260                            public void
261                            taskPerformed(TaskEvent e) {
262                                    Instrument[] instrs = t.getResult();
263                                    if(instrs == null) {
264                                            cbIndex.removeAllItems();
265                                            for(int i = 0; i < 101; i++) cbIndex.addItem(i);
266                                            return;
267                                    } else {
268                                    
269                                            cbIndex.removeAllItems();
270                                            for(int i = 0; i < instrs.length; i++) {
271                                                    cbIndex.addItem(i + " - " + instrs[i].getName());
272                                            }
273                                    }
274                                    
275                                    if(init) {
276                                            int i = getInstrument().getInstrumentIndex();
277                                            cbIndex.setSelectedIndex(i);
278                                            init = false;
279                                    }
280                            }
281                    });
282                    
283                    CC.getTaskQueue().add(t);
284            }
285            
286          private final Handler eventHandler = new Handler();          private final Handler eventHandler = new Handler();
287                    
288          private Handler          private Handler

Legend:
Removed from v.1539  
changed lines
  Added in v.1540

  ViewVC Help
Powered by ViewVC