/[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 1307 by iliev, Sat Aug 25 15:32:54 2007 UTC revision 1308 by iliev, Tue Aug 28 17:00:19 2007 UTC
# Line 47  import javax.swing.JOptionPane; Line 47  import javax.swing.JOptionPane;
47  import javax.swing.JPanel;  import javax.swing.JPanel;
48  import javax.swing.JRadioButton;  import javax.swing.JRadioButton;
49  import javax.swing.JSpinner;  import javax.swing.JSpinner;
 import javax.swing.JTextField;  
50  import javax.swing.SpinnerNumberModel;  import javax.swing.SpinnerNumberModel;
51    
52  import javax.swing.event.ChangeEvent;  import javax.swing.event.ChangeEvent;
# Line 92  public class JSInstrumentChooser extends Line 91  public class JSInstrumentChooser extends
91          private final JComboBox cbInstruments = new JComboBox();          private final JComboBox cbInstruments = new JComboBox();
92                    
93                    
94          private final JTextField tfDbInstrument = new JTextField();          private final JComboBox cbDbInstrument = new JComboBox();
95          private final JButton btnBrowseDb;          private final JButton btnBrowseDb;
96                    
97          private final JLabel lFilename = new JLabel(i18n.getLabel("JSInstrumentChooser.lFilename"));          private final JLabel lFilename = new JLabel(i18n.getLabel("JSInstrumentChooser.lFilename"));
98          private final JLabel lIndex = new JLabel(i18n.getLabel("JSInstrumentChooser.lIndex"));          private final JLabel lIndex = new JLabel(i18n.getLabel("JSInstrumentChooser.lIndex"));
99                    
100          private final JTextField tfFilename = new JTextField();          private final JComboBox cbFilename = new JComboBox();
101          private final JSpinner spinnerIndex = new JSpinner(new SpinnerNumberModel(0, 0, 500, 1));          private final JSpinner spinnerIndex = new JSpinner(new SpinnerNumberModel(0, 0, 500, 1));
102                    
103          private final JButton btnBrowse;          private final JButton btnBrowse;
# Line 131  public class JSInstrumentChooser extends Line 130  public class JSInstrumentChooser extends
130                  cbOrchestras.addFocusListener(getHandler());                  cbOrchestras.addFocusListener(getHandler());
131                  cbInstruments.addFocusListener(getHandler());                  cbInstruments.addFocusListener(getHandler());
132                                    
133                  tfDbInstrument.addFocusListener(getHandler());                  cbDbInstrument.addFocusListener(getHandler());
134                  tfDbInstrument.getDocument().addDocumentListener(getHandler());                  cbDbInstrument.addActionListener(getHandler());
135                    cbDbInstrument.addActionListener(new ActionListener() {
136                            public void
137                            actionPerformed(ActionEvent e) {
138                                    if(!rbSelectFromDb.isSelected()) rbSelectFromDb.doClick(0);
139                            }
140                    });
141                    cbDbInstrument.setEditable(true);
142                    
143                    String[] instrs = preferences().getStringListProperty("recentDbInstruments");
144                    for(String s : instrs) cbDbInstrument.addItem(s);
145                    cbDbInstrument.setSelectedItem(null);
146                    
147                    cbFilename.addFocusListener(getHandler());
148                    cbFilename.addActionListener(getHandler());
149                    cbFilename.addActionListener(new ActionListener() {
150                            public void
151                            actionPerformed(ActionEvent e) {
152                                    if(!rbSelectFromFile.isSelected()) rbSelectFromFile.doClick(0);
153                            }
154                    });
155                    cbFilename.setEditable(true);
156                                    
157                  tfFilename.addFocusListener(getHandler());                  String[] files = preferences().getStringListProperty("recentInstrumentFiles");
158                  tfFilename.getDocument().addDocumentListener(getHandler());                  for(String s : files) cbFilename.addItem(s);
159                    cbFilename.setSelectedItem(null);
160                                    
161                  spinnerIndex.addChangeListener(new ChangeListener() {                  spinnerIndex.addChangeListener(new ChangeListener() {
162                          public void                          public void
# Line 172  public class JSInstrumentChooser extends Line 193  public class JSInstrumentChooser extends
193                                    
194                  if(!CC.getSamplerModel().getServerInfo().hasInstrumentsDbSupport()) {                  if(!CC.getSamplerModel().getServerInfo().hasInstrumentsDbSupport()) {
195                          rbSelectFromDb.setEnabled(false);                          rbSelectFromDb.setEnabled(false);
196                          tfDbInstrument.setEnabled(false);                          cbDbInstrument.setEnabled(false);
197                          btnBrowseDb.setEnabled(false);                          btnBrowseDb.setEnabled(false);
198                  } else {                  } else {
199                          btnBrowseDb.requestFocusInWindow();                          btnBrowseDb.requestFocusInWindow();
# Line 282  public class JSInstrumentChooser extends Line 303  public class JSInstrumentChooser extends
303          createDbPane() {          createDbPane() {
304                  JPanel p = new JPanel();                  JPanel p = new JPanel();
305                  p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));                  p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
306                  p.add(tfDbInstrument);                  p.add(cbDbInstrument);
307                  p.add(Box.createRigidArea(new Dimension(6, 0)));                  p.add(Box.createRigidArea(new Dimension(6, 0)));
308                  btnBrowseDb.setMargin(new Insets(0, 0, 0, 0));                  btnBrowseDb.setMargin(new Insets(0, 0, 0, 0));
309                  p.add(btnBrowseDb);                  p.add(btnBrowseDb);
310                  //p.setMaximumSize(new Dimension(Short.MAX_VALUE, p.getPreferredSize().height));                  
311                    
312                    
313                    cbDbInstrument.setPreferredSize (
314                            new Dimension(200, cbDbInstrument.getPreferredSize().height)
315                    );
316                                    
317                  btnBrowseDb.addActionListener(new ActionListener() {                  btnBrowseDb.addActionListener(new ActionListener() {
318                          public void                          public void
# Line 333  public class JSInstrumentChooser extends Line 359  public class JSInstrumentChooser extends
359                  c.gridy = 0;                  c.gridy = 0;
360                  c.weightx = 1.0;                  c.weightx = 1.0;
361                  c.anchor = GridBagConstraints.WEST;                  c.anchor = GridBagConstraints.WEST;
362                  gridbag.setConstraints(tfFilename, c);                  gridbag.setConstraints(cbFilename, c);
363                  filePane.add(tfFilename);                  filePane.add(cbFilename);
364                                                    
365                  c.gridx = 1;                  c.gridx = 1;
366                  c.gridy = 1;                  c.gridy = 1;
367                  gridbag.setConstraints(spinnerIndex, c);                  gridbag.setConstraints(spinnerIndex, c);
368                  filePane.add(spinnerIndex);                  filePane.add(spinnerIndex);
369                                    
370                  tfFilename.setPreferredSize (                  cbFilename.setPreferredSize (
371                          new Dimension(200, tfFilename.getPreferredSize().height)                          new Dimension(200, cbFilename.getPreferredSize().height)
372                  );                  );
373                                    
374                  btnBrowse.addActionListener(new ActionListener() {                  btnBrowse.addActionListener(new ActionListener() {
# Line 377  public class JSInstrumentChooser extends Line 403  public class JSInstrumentChooser extends
403                  }                  }
404                                    
405                  if(rbSelectFromFile.isSelected()) {                  if(rbSelectFromFile.isSelected()) {
406                          instrumentFile = tfFilename.getText();                          instrumentFile = cbFilename.getSelectedItem().toString();
407                          instrumentIndex = Integer.parseInt(spinnerIndex.getValue().toString());                          instrumentIndex = Integer.parseInt(spinnerIndex.getValue().toString());
408                            
409                            StdUtils.updateRecentElements("recentInstrumentFiles", instrumentFile);
410                            
411                          setVisible(false);                          setVisible(false);
412                          return;                          return;
413                  }                  }
414                                    
415                  if(!rbSelectFromDb.isSelected()) return;                  if(!rbSelectFromDb.isSelected()) return;
416                                    
417                  String instr = tfDbInstrument.getText();                  String instr = cbDbInstrument.getSelectedItem().toString();
418                  preferences().setStringProperty("lastUsedDbInstrument", instr);                  preferences().setStringProperty("lastUsedDbInstrument", instr);
419                  final InstrumentsDb.GetInstrument t = new InstrumentsDb.GetInstrument(instr);                  final InstrumentsDb.GetInstrument t = new InstrumentsDb.GetInstrument(instr);
420                                    
421                    StdUtils.updateRecentElements("recentDbInstruments", instr);
422                    
423                  t.addTaskListener(new TaskListener() {                  t.addTaskListener(new TaskListener() {
424                          public void                          public void
425                          taskPerformed(TaskEvent e) {                          taskPerformed(TaskEvent e) {
# Line 416  public class JSInstrumentChooser extends Line 447  public class JSInstrumentChooser extends
447                  JFileChooser fc = new JFileChooser(s);                  JFileChooser fc = new JFileChooser(s);
448                  int result = fc.showOpenDialog(this);                  int result = fc.showOpenDialog(this);
449                  if(result == JFileChooser.APPROVE_OPTION) {                  if(result == JFileChooser.APPROVE_OPTION) {
450                          tfFilename.setText(fc.getSelectedFile().getPath());                          cbFilename.setSelectedItem(fc.getSelectedFile().getPath());
451                          btnOk.requestFocusInWindow();                          btnOk.requestFocusInWindow();
452                                                    
453                          String path = fc.getCurrentDirectory().getAbsolutePath();                          String path = fc.getCurrentDirectory().getAbsolutePath();
# Line 429  public class JSInstrumentChooser extends Line 460  public class JSInstrumentChooser extends
460                  if(!rbSelectFromDb.isSelected()) rbSelectFromDb.doClick(0);                  if(!rbSelectFromDb.isSelected()) rbSelectFromDb.doClick(0);
461                  JSDbInstrumentChooser dlg;                  JSDbInstrumentChooser dlg;
462                  dlg = new JSDbInstrumentChooser(JSInstrumentChooser.this);                  dlg = new JSDbInstrumentChooser(JSInstrumentChooser.this);
463                  String s = tfDbInstrument.getText();                  Object o = cbDbInstrument.getSelectedItem();
464                  if(s.length() > 0) dlg.setSelectedInstrument(s);                  if(o != null && o.toString().length() > 0) dlg.setSelectedInstrument(o.toString());
465                  else {                  else {
466                          s = preferences().getStringProperty("lastUsedDbInstrument", "");                          String s = preferences().getStringProperty("lastUsedDbInstrument", "");
467                          if(s.length() > 0) dlg.setSelectedInstrument(s);                          if(s.length() > 0) dlg.setSelectedInstrument(s);
468                          else dlg.setSelectedDirectory("/");                          else dlg.setSelectedDirectory("/");
469                  }                  }
470                  dlg.setVisible(true);                  dlg.setVisible(true);
471                  if(dlg.isCancelled()) return;                  if(dlg.isCancelled()) return;
472                  tfDbInstrument.setText(dlg.getSelectedInstrument());                  cbDbInstrument.setSelectedItem(dlg.getSelectedInstrument());
473                  tfDbInstrument.requestFocus();                  cbDbInstrument.requestFocus();
474          }          }
475                    
476          /**          /**
# Line 465  public class JSInstrumentChooser extends Line 496  public class JSInstrumentChooser extends
496                  if(rbSelectFromOrchestra.isSelected()) {                  if(rbSelectFromOrchestra.isSelected()) {
497                          b = cbInstruments.getSelectedItem() != null;                          b = cbInstruments.getSelectedItem() != null;
498                  } else if(rbSelectFromDb.isSelected()) {                  } else if(rbSelectFromDb.isSelected()) {
499                          b = tfDbInstrument.getText().length() > 0;                          Object o = cbDbInstrument.getSelectedItem();
500                            b = o != null && o.toString().length() > 0;
501                  } else if(rbSelectFromFile.isSelected()) {                  } else if(rbSelectFromFile.isSelected()) {
502                          b = tfFilename.getText().length() > 0;                          Object o = cbFilename.getSelectedItem();
503                            if(o == null) b = false;
504                            else b = o.toString().length() > 0;
505                  }                  }
506                                    
507                  btnOk.setEnabled(b);                  btnOk.setEnabled(b);
# Line 504  public class JSInstrumentChooser extends Line 538  public class JSInstrumentChooser extends
538                                  if(!rbSelectFromOrchestra.isSelected()) {                                  if(!rbSelectFromOrchestra.isSelected()) {
539                                          rbSelectFromOrchestra.doClick(0);                                          rbSelectFromOrchestra.doClick(0);
540                                  }                                  }
541                          } else if(src == tfDbInstrument) {                          } else if(src == cbDbInstrument) {
542                                  if(!rbSelectFromDb.isSelected()) rbSelectFromDb.doClick(0);                                  if(!rbSelectFromDb.isSelected()) rbSelectFromDb.doClick(0);
543                          } else if(src == tfFilename) {                          } else if(src == cbFilename) {
544                                  if(!rbSelectFromFile.isSelected()) rbSelectFromFile.doClick(0);                                  if(!rbSelectFromFile.isSelected()) rbSelectFromFile.doClick(0);
545                          }                          }
546                  }                  }

Legend:
Removed from v.1307  
changed lines
  Added in v.1308

  ViewVC Help
Powered by ViewVC