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; |
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; |
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 |
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(); |
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 |
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() { |
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) { |
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(); |
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 |
/** |
/** |
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); |
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 |
} |
} |