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

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

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

revision 1286 by iliev, Fri Aug 10 20:24:23 2007 UTC revision 1357 by iliev, Sat Sep 22 17:27:06 2007 UTC
# Line 38  import javax.swing.BoxLayout; Line 38  import javax.swing.BoxLayout;
38  import javax.swing.Icon;  import javax.swing.Icon;
39  import javax.swing.JButton;  import javax.swing.JButton;
40  import javax.swing.JCheckBox;  import javax.swing.JCheckBox;
41    import javax.swing.JComboBox;
42  import javax.swing.JFileChooser;  import javax.swing.JFileChooser;
43  import javax.swing.JPanel;  import javax.swing.JPanel;
 import javax.swing.JTextField;  
44  import javax.swing.SpinnerNumberModel;  import javax.swing.SpinnerNumberModel;
45  import javax.swing.SwingUtilities;  import javax.swing.SwingUtilities;
46    
# Line 54  import net.sf.juife.event.TaskEvent; Line 54  import net.sf.juife.event.TaskEvent;
54  import net.sf.juife.event.TaskListener;  import net.sf.juife.event.TaskListener;
55    
56  import org.jsampler.CC;  import org.jsampler.CC;
57    import org.jsampler.JSPrefs;
58  import org.jsampler.task.InstrumentsDb;  import org.jsampler.task.InstrumentsDb;
59    
60  import static org.jsampler.view.std.StdI18n.i18n;  import static org.jsampler.view.std.StdI18n.i18n;
61    import static org.linuxsampler.lscp.Parser.*;
62    
63  /**  /**
64   *   *
65   * @author Grigor Iliev   * @author Grigor Iliev
66   */   */
67  public class JSAddDbInstrumentsFromDirDlg extends OkCancelDialog {  public class JSAddDbInstrumentsFromDirDlg extends OkCancelDialog {
68          private final JTextField tfSource = new JTextField();          private final JComboBox cbSource = new JComboBox();
69          private JButton btnBrowse;          private JButton btnBrowse;
70          private final JCheckBox checkScanSubdirs =          private final JCheckBox checkScanSubdirs =
71                  new JCheckBox(i18n.getLabel("JSAddDbInstrumentsFromDirDlg.checkScanSubdirs"));                  new JCheckBox(i18n.getLabel("JSAddDbInstrumentsFromDirDlg.checkScanSubdirs"));
72          private final JCheckBox checkFlat =          private final JCheckBox checkFlat =
73                  new JCheckBox(i18n.getLabel("JSAddDbInstrumentsFromDirDlg.checkFlat"));                  new JCheckBox(i18n.getLabel("JSAddDbInstrumentsFromDirDlg.checkFlat"));
74                    
75          private final JTextField tfDest = new JTextField();          private final JComboBox cbDest = new JComboBox();
76          private JButton btnBrowseDb;          private JButton btnBrowseDb;
77                    
78          /**          /**
# Line 104  public class JSAddDbInstrumentsFromDirDl Line 105  public class JSAddDbInstrumentsFromDirDl
105                                    
106                  JPanel p2 = new JPanel();                  JPanel p2 = new JPanel();
107                  p2.setLayout(new BoxLayout(p2, BoxLayout.X_AXIS));                  p2.setLayout(new BoxLayout(p2, BoxLayout.X_AXIS));
108                  p2.add(tfSource);                  p2.add(cbSource);
109                  p2.add(Box.createRigidArea(new Dimension(6, 0)));                  p2.add(Box.createRigidArea(new Dimension(6, 0)));
110                  btnBrowse.setToolTipText(i18n.getButtonLabel("browse"));                  btnBrowse.setToolTipText(i18n.getButtonLabel("browse"));
111                  btnBrowse.setMargin(new Insets(0, 0, 0, 0));                  btnBrowse.setMargin(new Insets(0, 0, 0, 0));
# Line 144  public class JSAddDbInstrumentsFromDirDl Line 145  public class JSAddDbInstrumentsFromDirDl
145                                    
146                  p2 = new JPanel();                  p2 = new JPanel();
147                  p2.setLayout(new BoxLayout(p2, BoxLayout.X_AXIS));                  p2.setLayout(new BoxLayout(p2, BoxLayout.X_AXIS));
148                  p2.add(tfDest);                  p2.add(cbDest);
149                  p2.add(Box.createRigidArea(new Dimension(6, 0)));                  p2.add(Box.createRigidArea(new Dimension(6, 0)));
150                  btnBrowseDb.setToolTipText(i18n.getButtonLabel("browse"));                  btnBrowseDb.setToolTipText(i18n.getButtonLabel("browse"));
151                  btnBrowseDb.setMargin(new Insets(0, 0, 0, 0));                  btnBrowseDb.setMargin(new Insets(0, 0, 0, 0));
# Line 167  public class JSAddDbInstrumentsFromDirDl Line 168  public class JSAddDbInstrumentsFromDirDl
168                  setMinimumSize(this.getPreferredSize());                  setMinimumSize(this.getPreferredSize());
169                  setResizable(true);                  setResizable(true);
170                                    
                 if(dbDir != null) tfDest.setText(dbDir);  
                   
171                  btnOk.setEnabled(false);                  btnOk.setEnabled(false);
172                  checkScanSubdirs.doClick(0);                  checkScanSubdirs.doClick(0);
173                  checkFlat.doClick(0);                  checkFlat.doClick(0);
174                                    
175                  tfSource.getDocument().addDocumentListener(getHandler());                  cbSource.setEditable(true);
176                  tfDest.getDocument().addDocumentListener(getHandler());                  String[] dirs = preferences().getStringListProperty("recentDirectories");
177                    for(String dir : dirs) cbSource.addItem(dir);
178                    cbSource.setSelectedItem(null);
179                    
180                    cbSource.setPreferredSize (
181                            new Dimension(200, cbSource.getPreferredSize().height)
182                    );
183                    
184                    cbSource.addActionListener(getHandler());
185                    
186                    cbDest.setEditable(true);
187                    dirs = preferences().getStringListProperty("recentDbDirectories");
188                    for(String dir : dirs) cbDest.addItem(dir);
189                    cbDest.setSelectedItem(dbDir);
190                    
191                    
192                    cbDest.setPreferredSize (
193                            new Dimension(200, cbDest.getPreferredSize().height)
194                    );
195                    
196                    cbDest.addActionListener(getHandler());
197                                    
198                  btnBrowse.addActionListener(new ActionListener() {                  btnBrowse.addActionListener(new ActionListener() {
199                          public void                          public void
# Line 185  public class JSAddDbInstrumentsFromDirDl Line 204  public class JSAddDbInstrumentsFromDirDl
204                                    
205                  btnBrowseDb.addActionListener(new ActionListener() {                  btnBrowseDb.addActionListener(new ActionListener() {
206                          public void                          public void
207                          actionPerformed(ActionEvent e) {                          actionPerformed(ActionEvent e) { onBrowseDb(); }
                                 JSDbDirectoryChooser dlg;  
                                 dlg = new JSDbDirectoryChooser(JSAddDbInstrumentsFromDirDlg.this);  
                                 String s = tfDest.getText();  
                                 if(s.length() > 0) dlg.setSelectedDirectory(s);  
                                 dlg.setVisible(true);  
                                 if(dlg.isCancelled()) return;  
                                 tfDest.setText(dlg.getSelectedDirectory());  
                         }  
208                  });                  });
209          }          }
210                    
211            protected JComboBox
212            createComboBox() { return new JComboBox(); }
213            
214            protected JSPrefs
215            preferences() { return CC.getViewConfig().preferences(); }
216            
217          private void          private void
218          onBrowse() {          onBrowse() {
219                  JFileChooser fc = new JFileChooser();                  String path = preferences().getStringProperty("lastInstrumentLocation");
220                    JFileChooser fc = new JFileChooser(path);
221                  fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);                  fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
222                  int result = fc.showOpenDialog(this);                  int result = fc.showOpenDialog(this);
223                  if(result != JFileChooser.APPROVE_OPTION) return;                  if(result != JFileChooser.APPROVE_OPTION) return;
224                                    
225                  tfSource.setText(fc.getSelectedFile().getPath());                  String s = toEscapedString(fc.getSelectedFile().getPath());
226                    cbSource.setSelectedItem(s);
227                    path = fc.getCurrentDirectory().getAbsolutePath();
228                    preferences().setStringProperty("lastInstrumentLocation", path);
229            }
230            
231            private void
232            onBrowseDb() {
233                    JSDbDirectoryChooser dlg;
234                    dlg = new JSDbDirectoryChooser(JSAddDbInstrumentsFromDirDlg.this);
235                    Object o = cbDest.getSelectedItem();
236                    if(o != null && o.toString().length() > 0) dlg.setSelectedDirectory(o.toString());
237                    dlg.setVisible(true);
238                    if(dlg.isCancelled()) return;
239                    cbDest.setSelectedItem(dlg.getSelectedDirectory());
240          }          }
241                    
242          private void          private void
243          updateState() {          updateState() {
244                  boolean b = tfSource.getText().length() != 0 && tfDest.getText().length() != 0;                  Object o = cbSource.getSelectedItem();
245                    Object o2 = cbDest.getSelectedItem();
246                    boolean b = o != null && o.toString().length() > 0;
247                    b = b && o2 != null && o2.toString().length() > 0;
248                  btnOk.setEnabled(b);                  btnOk.setEnabled(b);
249          }          }
250                    
# Line 218  public class JSAddDbInstrumentsFromDirDl Line 253  public class JSAddDbInstrumentsFromDirDl
253                  if(!btnOk.isEnabled()) return;                  if(!btnOk.isEnabled()) return;
254                                    
255                  btnOk.setEnabled(false);                  btnOk.setEnabled(false);
256                  String dbDir = tfDest.getText();                  String dbDir = cbDest.getSelectedItem().toString();
257                  String fsDir = tfSource.getText();                  String fsDir = cbSource.getSelectedItem().toString();
258                  boolean recursive = checkScanSubdirs.isSelected();                  boolean recursive = checkScanSubdirs.isSelected();
259                  boolean flat = !checkFlat.isSelected();                  boolean flat = !checkFlat.isSelected();
260                  if(recursive) runTask(new InstrumentsDb.AddInstruments(dbDir, fsDir, flat));                  if(recursive) runTask(new InstrumentsDb.AddInstruments(dbDir, fsDir, flat));
261                  else runTask(new InstrumentsDb.AddInstrumentsNonrecursive(dbDir, fsDir));                  else runTask(new InstrumentsDb.AddInstrumentsNonrecursive(dbDir, fsDir));
262                                    
263                  //new JSAddDbInstrumentsProgressDlg(null).setVisible(true);                  StdUtils.updateRecentElements("recentDirectories", fsDir);
264                    StdUtils.updateRecentElements("recentDbDirectories", dbDir);
265          }          }
266                    
267          protected void          protected void
# Line 263  public class JSAddDbInstrumentsFromDirDl Line 299  public class JSAddDbInstrumentsFromDirDl
299          private Handler          private Handler
300          getHandler() { return eventHandler; }          getHandler() { return eventHandler; }
301                    
302          private class Handler implements DocumentListener, ItemListener {          private class Handler implements DocumentListener, ActionListener, ItemListener {
303                  // DocumentListener                  // DocumentListener
304                  public void                  public void
305                  insertUpdate(DocumentEvent e) { updateState(); }                  insertUpdate(DocumentEvent e) { updateState(); }
# Line 273  public class JSAddDbInstrumentsFromDirDl Line 309  public class JSAddDbInstrumentsFromDirDl
309                                    
310                  public void                  public void
311                  changedUpdate(DocumentEvent e) { updateState(); }                  changedUpdate(DocumentEvent e) { updateState(); }
312                    ///////
313                    
314                    public void
315                    actionPerformed(ActionEvent e) { updateState(); }
316                                    
317                  public void                  public void
318                  itemStateChanged(ItemEvent e) {                  itemStateChanged(ItemEvent e) {

Legend:
Removed from v.1286  
changed lines
  Added in v.1357

  ViewVC Help
Powered by ViewVC