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

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

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

revision 1539 by iliev, Thu Nov 15 03:27:18 2007 UTC revision 1540 by iliev, Mon Dec 3 23:22:02 2007 UTC
# Line 46  import javax.swing.JLabel; Line 46  import javax.swing.JLabel;
46  import javax.swing.JOptionPane;  import javax.swing.JOptionPane;
47  import javax.swing.JPanel;  import javax.swing.JPanel;
48  import javax.swing.JRadioButton;  import javax.swing.JRadioButton;
 import javax.swing.JSpinner;  
 import javax.swing.SpinnerNumberModel;  
49    
50  import javax.swing.event.ChangeEvent;  import javax.swing.event.ChangeEvent;
51  import javax.swing.event.ChangeListener;  import javax.swing.event.ChangeListener;
# Line 60  import net.sf.juife.event.TaskEvent; Line 58  import net.sf.juife.event.TaskEvent;
58  import net.sf.juife.event.TaskListener;  import net.sf.juife.event.TaskListener;
59    
60  import org.jsampler.CC;  import org.jsampler.CC;
61  import org.jsampler.Instrument;  import org.jsampler.OrchestraInstrument;
62  import org.jsampler.JSPrefs;  import org.jsampler.JSPrefs;
63  import org.jsampler.OrchestraModel;  import org.jsampler.OrchestraModel;
64    
65    import org.jsampler.task.Global;
66  import org.jsampler.task.InstrumentsDb;  import org.jsampler.task.InstrumentsDb;
67    
68    import org.linuxsampler.lscp.Instrument;
69    
70  import static org.jsampler.view.std.StdI18n.i18n;  import static org.jsampler.view.std.StdI18n.i18n;
71  import static org.linuxsampler.lscp.Parser.*;  import static org.linuxsampler.lscp.Parser.*;
72    
# Line 92  public class JSInstrumentChooser extends Line 93  public class JSInstrumentChooser extends
93          private final JComboBox cbInstruments = new JComboBox();          private final JComboBox cbInstruments = new JComboBox();
94                    
95                    
96          private final JComboBox cbDbInstrument = createComboBox();          private final JComboBox cbDbInstrument = StdUtils.createPathComboBox();
97          private final JButton btnBrowseDb;          private final JButton btnBrowseDb;
98                    
99          private final JLabel lFilename = new JLabel(i18n.getLabel("JSInstrumentChooser.lFilename"));          private final JLabel lFilename = new JLabel(i18n.getLabel("JSInstrumentChooser.lFilename"));
100          private final JLabel lIndex = new JLabel(i18n.getLabel("JSInstrumentChooser.lIndex"));          private final JLabel lIndex = new JLabel(i18n.getLabel("JSInstrumentChooser.lIndex"));
101                    
102          private final JComboBox cbFilename = createComboBox();          private final JComboBox cbFilename = StdUtils.createPathComboBox();
103          private final JSpinner spinnerIndex = new JSpinner(new SpinnerNumberModel(0, 0, 500, 1));          private final JComboBox cbIndex = new JComboBox();
104                    
105          private final JButton btnBrowse;          private final JButton btnBrowse;
106                    
# Line 139  public class JSInstrumentChooser extends Line 140  public class JSInstrumentChooser extends
140                                  if(!rbSelectFromDb.isSelected()) rbSelectFromDb.doClick(0);                                  if(!rbSelectFromDb.isSelected()) rbSelectFromDb.doClick(0);
141                          }                          }
142                  });                  });
                 cbDbInstrument.setEditable(true);  
143                                    
144                  String[] instrs = preferences().getStringListProperty("recentDbInstruments");                  String[] instrs = preferences().getStringListProperty("recentDbInstruments");
145                  for(String s : instrs) cbDbInstrument.addItem(s);                  for(String s : instrs) cbDbInstrument.addItem(s);
# Line 147  public class JSInstrumentChooser extends Line 147  public class JSInstrumentChooser extends
147                                    
148                  cbFilename.addFocusListener(getHandler());                  cbFilename.addFocusListener(getHandler());
149                  cbFilename.addActionListener(getHandler());                  cbFilename.addActionListener(getHandler());
150                    String[] files = preferences().getStringListProperty("recentInstrumentFiles");
151                    for(String s : files) cbFilename.addItem(s);
152                    cbFilename.setSelectedItem(null);
153                    
154                  cbFilename.addActionListener(new ActionListener() {                  cbFilename.addActionListener(new ActionListener() {
155                          public void                          public void
156                          actionPerformed(ActionEvent e) {                          actionPerformed(ActionEvent e) {
157                                  if(!rbSelectFromFile.isSelected()) rbSelectFromFile.doClick(0);                                  if(!rbSelectFromFile.isSelected()) rbSelectFromFile.doClick(0);
158                                    updateFileInstruments();
159                          }                          }
160                  });                  });
                 cbFilename.setEditable(true);  
                   
                 String[] files = preferences().getStringListProperty("recentInstrumentFiles");  
                 for(String s : files) cbFilename.addItem(s);  
                 cbFilename.setSelectedItem(null);  
161                                    
162                  spinnerIndex.addChangeListener(new ChangeListener() {                  cbIndex.addFocusListener(getHandler());
163                    cbIndex.addActionListener(getHandler());
164                    cbFilename.addActionListener(new ActionListener() {
165                          public void                          public void
166                          stateChanged(ChangeEvent e) {                          actionPerformed(ActionEvent e) {
167                                  if(!rbSelectFromFile.isSelected()) rbSelectFromFile.doClick(0);                                  if(!rbSelectFromFile.isSelected()) rbSelectFromFile.doClick(0);
168                          }                          }
169                  });                  });
170                                    
171                    for(int i = 0; i < 101; i++) cbIndex.addItem(i);
172                    
173                  JPanel mainPane = new JPanel();                  JPanel mainPane = new JPanel();
174                  mainPane.setLayout(new BoxLayout(mainPane, BoxLayout.Y_AXIS));                  mainPane.setLayout(new BoxLayout(mainPane, BoxLayout.Y_AXIS));
175                                    
# Line 280  public class JSInstrumentChooser extends Line 284  public class JSInstrumentChooser extends
284                  return p;                  return p;
285          }          }
286                    
         protected JComboBox  
         createComboBox() { return new JComboBox(); }  
           
287          protected JSPrefs          protected JSPrefs
288          preferences() { return CC.getViewConfig().preferences(); }          preferences() { return CC.getViewConfig().preferences(); }
289                    
# Line 308  public class JSInstrumentChooser extends Line 309  public class JSInstrumentChooser extends
309                    
310          private void          private void
311          instrumentChanged() {          instrumentChanged() {
312                  Instrument instr = (Instrument)cbInstruments.getSelectedItem();                  OrchestraInstrument instr = (OrchestraInstrument)cbInstruments.getSelectedItem();
313                  String s = instr == null ? null : instr.getDescription();                  String s = instr == null ? null : instr.getDescription();
314                  if(s != null && s.length() == 0) s = null;                  if(s != null && s.length() == 0) s = null;
315                  cbInstruments.setToolTipText(s);                  cbInstruments.setToolTipText(s);
# Line 383  public class JSInstrumentChooser extends Line 384  public class JSInstrumentChooser extends
384                                                    
385                  c.gridx = 1;                  c.gridx = 1;
386                  c.gridy = 1;                  c.gridy = 1;
387                  gridbag.setConstraints(spinnerIndex, c);                  gridbag.setConstraints(cbIndex, c);
388                  filePane.add(spinnerIndex);                  filePane.add(cbIndex);
389                                    
390                  cbFilename.setPreferredSize (                  cbFilename.setPreferredSize (
391                          new Dimension(200, cbFilename.getPreferredSize().height)                          new Dimension(200, cbFilename.getPreferredSize().height)
# Line 406  public class JSInstrumentChooser extends Line 407  public class JSInstrumentChooser extends
407                  String s = "lastUsedInstrumentSelectionMethod";                  String s = "lastUsedInstrumentSelectionMethod";
408                                    
409                  if(rbSelectFromOrchestra.isSelected()) {                  if(rbSelectFromOrchestra.isSelected()) {
410                          Instrument instr = (Instrument)cbInstruments.getSelectedItem();                          OrchestraInstrument instr = (OrchestraInstrument)cbInstruments.getSelectedItem();
411                          instrumentFile = instr.getPath();                          instrumentFile = instr.getFilePath();
412                          instrumentIndex = instr.getInstrumentIndex();                          instrumentIndex = instr.getInstrumentIndex();
413                          engine = instr.getEngine();                          engine = instr.getEngine();
414                          setVisible(false);                          setVisible(false);
# Line 427  public class JSInstrumentChooser extends Line 428  public class JSInstrumentChooser extends
428                                    
429                  if(rbSelectFromFile.isSelected()) {                  if(rbSelectFromFile.isSelected()) {
430                          instrumentFile = cbFilename.getSelectedItem().toString();                          instrumentFile = cbFilename.getSelectedItem().toString();
431                          instrumentIndex = Integer.parseInt(spinnerIndex.getValue().toString());                          instrumentIndex = cbIndex.getSelectedIndex();
432                                                    
433                          StdUtils.updateRecentElements("recentInstrumentFiles", instrumentFile);                          StdUtils.updateRecentElements("recentInstrumentFiles", instrumentFile);
434                          preferences().setStringProperty(s, "fromFile");                          preferences().setStringProperty(s, "fromFile");
# Line 531  public class JSInstrumentChooser extends Line 532  public class JSInstrumentChooser extends
532                          Object o = cbFilename.getSelectedItem();                          Object o = cbFilename.getSelectedItem();
533                          if(o == null) b = false;                          if(o == null) b = false;
534                          else b = o.toString().length() > 0;                          else b = o.toString().length() > 0;
535                            o = cbIndex.getSelectedItem();
536                            if(o == null || o.toString().length() == 0) b = false;
537                  }                  }
538                                    
539                  btnOk.setEnabled(b);                  btnOk.setEnabled(b);
540          }          }
541                    
542            private void
543            updateFileInstruments() {
544                    Object o = cbFilename.getSelectedItem();
545                    if(o == null) return;
546                    String s = o.toString();
547                    final Global.GetFileInstruments t = new Global.GetFileInstruments(s);
548                    
549                    t.addTaskListener(new TaskListener() {
550                            public void
551                            taskPerformed(TaskEvent e) {
552                                    Instrument[] instrs = t.getResult();
553                                    if(instrs == null) {
554                                            cbIndex.removeAllItems();
555                                            for(int i = 0; i < 101; i++) cbIndex.addItem(i);
556                                            return;
557                                    }
558                                    
559                                    cbIndex.removeAllItems();
560                                    for(int i = 0; i < instrs.length; i++) {
561                                            cbIndex.addItem(i + " - " + instrs[i].getName());
562                                    }
563                            }
564                    });
565                    
566                    CC.getTaskQueue().add(t);
567            }
568            
569          private final EventHandler eventHandler = new EventHandler();          private final EventHandler eventHandler = new EventHandler();
570                    
571          private EventHandler          private EventHandler
# Line 569  public class JSInstrumentChooser extends Line 599  public class JSInstrumentChooser extends
599                                  }                                  }
600                          } else if(src == cbDbInstrument) {                          } else if(src == cbDbInstrument) {
601                                  if(!rbSelectFromDb.isSelected()) rbSelectFromDb.doClick(0);                                  if(!rbSelectFromDb.isSelected()) rbSelectFromDb.doClick(0);
602                          } else if(src == cbFilename) {                          } else if(src == cbFilename || src == cbIndex) {
603                                  if(!rbSelectFromFile.isSelected()) rbSelectFromFile.doClick(0);                                  if(!rbSelectFromFile.isSelected()) rbSelectFromFile.doClick(0);
604                          }                          }
605                  }                  }

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

  ViewVC Help
Powered by ViewVC