/[svn]/jsampler/trunk/src/org/jsampler/view/classic/MainFrame.java
ViewVC logotype

Diff of /jsampler/trunk/src/org/jsampler/view/classic/MainFrame.java

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

revision 1567 by iliev, Thu Dec 6 19:37:41 2007 UTC revision 1883 by iliev, Sun Apr 5 09:15:35 2009 UTC
# Line 1  Line 1 
1  /*  /*
2   *   JSampler - a java front-end for LinuxSampler   *   JSampler - a java front-end for LinuxSampler
3   *   *
4   *   Copyright (C) 2005-2007 Grigor Iliev <grigor@grigoriliev.com>   *   Copyright (C) 2005-2009 Grigor Iliev <grigor@grigoriliev.com>
5   *   *
6   *   This file is part of JSampler.   *   This file is part of JSampler.
7   *   *
# Line 27  import java.awt.Color; Line 27  import java.awt.Color;
27  import java.awt.Dialog;  import java.awt.Dialog;
28  import java.awt.Dimension;  import java.awt.Dimension;
29  import java.awt.Frame;  import java.awt.Frame;
30    import java.awt.Rectangle;
31    
32  import java.awt.event.ActionEvent;  import java.awt.event.ActionEvent;
33  import java.awt.event.ActionListener;  import java.awt.event.ActionListener;
# Line 36  import java.io.BufferedReader; Line 37  import java.io.BufferedReader;
37  import java.io.File;  import java.io.File;
38  import java.io.FileNotFoundException;  import java.io.FileNotFoundException;
39  import java.io.FileReader;  import java.io.FileReader;
 import java.io.StringReader;  
40    
 import java.util.logging.Level;  
41  import java.util.Vector;  import java.util.Vector;
42    
43  import javax.swing.Action;  import javax.swing.Action;
# Line 59  import javax.swing.event.ListSelectionEv Line 58  import javax.swing.event.ListSelectionEv
58  import javax.swing.event.ListSelectionListener;  import javax.swing.event.ListSelectionListener;
59    
60  import net.sf.juife.NavigationPage;  import net.sf.juife.NavigationPage;
 import net.sf.juife.NavigationPane;  
61    
62  import org.jsampler.CC;  import org.jsampler.CC;
63  import org.jsampler.HF;  import org.jsampler.HF;
64  import org.jsampler.LSConsoleModel;  import org.jsampler.LSConsoleModel;
65  import org.jsampler.OrchestraModel;  import org.jsampler.OrchestraModel;
66  import org.jsampler.Prefs;  import org.jsampler.Server;
67    
68    import org.jsampler.task.Global;
69    
70  import org.jsampler.view.JSChannel;  import org.jsampler.view.JSChannel;
71  import org.jsampler.view.JSChannelsPane;  import org.jsampler.view.JSChannelsPane;
72  import org.jsampler.view.LscpFileFilter;  import org.jsampler.view.LscpFileFilter;
73    
74    import org.jsampler.view.std.JSBackendLogFrame;
75    import org.jsampler.view.std.JSConnectDlg;
76    import org.jsampler.view.std.JSConnectionFailurePane;
77  import org.jsampler.view.std.JSDetailedErrorDlg;  import org.jsampler.view.std.JSDetailedErrorDlg;
78  import org.jsampler.view.std.JSQuitDlg;  import org.jsampler.view.std.JSQuitDlg;
79  import org.jsampler.view.std.JSamplerHomeChooser;  import org.jsampler.view.std.JSamplerHomeChooser;
80    import org.jsampler.view.std.StdUtils;
81    
82  import static org.jsampler.view.classic.A4n.a4n;  import static org.jsampler.view.classic.A4n.a4n;
83  import static org.jsampler.view.classic.ClassicI18n.i18n;  import static org.jsampler.view.classic.ClassicI18n.i18n;
# Line 106  MainFrame extends org.jsampler.view.JSMa Line 110  MainFrame extends org.jsampler.view.JSMa
110          private final JPanel bottomPane = new JPanel();          private final JPanel bottomPane = new JPanel();
111          private final LSConsolePane lsConsolePane = new LSConsolePane(this);          private final LSConsolePane lsConsolePane = new LSConsolePane(this);
112          private LSConsoleDlg lsConsoleDlg = null;          private LSConsoleDlg lsConsoleDlg = null;
113            private final JSBackendLogFrame backendLogFrame = new JSBackendLogFrame();
114                    
115          private final JTabbedPane tabbedPane =          private final JTabbedPane tabbedPane =
116                  new JTabbedPane(JTabbedPane.BOTTOM, JTabbedPane.SCROLL_TAB_LAYOUT);                  new JTabbedPane(JTabbedPane.BOTTOM, JTabbedPane.SCROLL_TAB_LAYOUT);
# Line 130  MainFrame extends org.jsampler.view.JSMa Line 135  MainFrame extends org.jsampler.view.JSMa
135          MainFrame() {          MainFrame() {
136                  setTitle(i18n.getLabel("MainFrame.title"));                  setTitle(i18n.getLabel("MainFrame.title"));
137                                    
138                    CC.setMainFrame(this); // TODO:
139                    
140                  getContentPane().add(standardBar, BorderLayout.NORTH);                  getContentPane().add(standardBar, BorderLayout.NORTH);
141                  getContentPane().add(mainPane);                  getContentPane().add(mainPane);
142                                    
# Line 204  MainFrame extends org.jsampler.view.JSMa Line 211  MainFrame extends org.jsampler.view.JSMa
211          }          }
212                    
213          /** Invoked when this window is about to close. */          /** Invoked when this window is about to close. */
214          protected void          @Override
215            public void
216          onWindowClose() {          onWindowClose() {
217                  if(CC.getSamplerModel().isModified()) {                  boolean b = preferences().getBoolProperty(CONFIRM_APP_QUIT);
218                    if(b && CC.getSamplerModel().isModified()) {
219                          JSQuitDlg dlg = new JSQuitDlg(Res.iconQuestion32);                          JSQuitDlg dlg = new JSQuitDlg(Res.iconQuestion32);
220                          dlg.setVisible(true);                          dlg.setVisible(true);
221                          if(dlg.isCancelled()) return;                          if(dlg.isCancelled()) return;
# Line 218  MainFrame extends org.jsampler.view.JSMa Line 227  MainFrame extends org.jsampler.view.JSMa
227                          );                          );
228                                                    
229                          setVisible(false);                          setVisible(false);
230                          if(ClassicPrefs.getWindowMaximized("Mainframe")) {                          if(ClassicPrefs.getWindowMaximized("MainFrame")) {
231                                  //setExtendedState(getExtendedState() & ~MAXIMIZED_BOTH);                                  //setExtendedState(getExtendedState() & ~MAXIMIZED_BOTH);
232                                  CC.cleanExit();                                  CC.cleanExit();
233                                  return;                                  return;
234                          }                          }
235                                                    
236                          java.awt.Point p = getLocation();                          StdUtils.saveWindowBounds("MainFrame", getBounds());
                         Dimension d = getSize();  
                         StringBuffer sb = new StringBuffer();  
                         sb.append(p.x).append(',').append(p.y).append(',');  
                         sb.append(d.width).append(',').append(d.height);  
                         ClassicPrefs.setWindowSizeAndLocation("Mainframe", sb.toString());  
237                                                    
238                          ClassicPrefs.setHSplitDividerLocation(hSplitPane.getDividerLocation());                          ClassicPrefs.setHSplitDividerLocation(hSplitPane.getDividerLocation());
239                  }                  }
# Line 262  MainFrame extends org.jsampler.view.JSMa Line 266  MainFrame extends org.jsampler.view.JSMa
266                  ClassicPrefs.setLSConsolePopOut(isLSConsolePopOut());                  ClassicPrefs.setLSConsolePopOut(isLSConsolePopOut());
267                                    
268                  ClassicPrefs.setVSplitDividerLocation(vSplitPane.getDividerLocation());                  ClassicPrefs.setVSplitDividerLocation(vSplitPane.getDividerLocation());
269                    
270                    if(getBackendLogFrame() != null) getBackendLogFrame().stopTimer();
271                    if(lsConsolePane != null) lsConsolePane.disconnect();
272                  super.onWindowClose();                  super.onWindowClose();
273          }          }
274                    
275            @Override
276            public void
277            setVisible(boolean b) {
278                    if(b == isVisible()) return;
279                    
280                    super.setVisible(b);
281                    
282                    if(ClassicPrefs.getWindowMaximized("MainFrame")) {
283                            setExtendedState(getExtendedState() | MAXIMIZED_BOTH);
284                    }
285            }
286            
287          private void          private void
288          initMainFrame() {          initMainFrame() {
289                  addMenu();                  addMenu();
# Line 281  MainFrame extends org.jsampler.view.JSMa Line 300  MainFrame extends org.jsampler.view.JSMa
300                    
301          private void          private void
302          setSavedSize() {          setSavedSize() {
303                  String s = ClassicPrefs.getWindowSizeAndLocation("Mainframe");                  Rectangle r = StdUtils.getWindowBounds("MainFrame");
304                  if(s == null) {                  if(r == null) {
305                          setDefaultSize();                          setDefaultSize();
306                          return;                          return;
307                  }                  }
308                                    
309                  try {                  setBounds(r);
                         int i = s.indexOf(',');  
                         int x = Integer.parseInt(s.substring(0, i));  
                           
                         s = s.substring(i + 1);  
                         i = s.indexOf(',');  
                         int y = Integer.parseInt(s.substring(0, i));  
                           
                         s = s.substring(i + 1);  
                         i = s.indexOf(',');  
                         int width = Integer.parseInt(s.substring(0, i));  
                           
                         s = s.substring(i + 1);  
                         int height = Integer.parseInt(s);  
                           
                         setBounds(x, y, width, height);  
                 } catch(Exception x) {  
                         String msg = "Parsing of window size and location string failed";  
                         CC.getLogger().log(Level.INFO, msg, x);  
                         setDefaultSize();  
                 }  
                   
                 if(ClassicPrefs.getWindowMaximized("Mainframe"))  
                         setExtendedState(getExtendedState() | MAXIMIZED_BOTH);  
310          }          }
311                    
312          private void          private void
# Line 324  MainFrame extends org.jsampler.view.JSMa Line 320  MainFrame extends org.jsampler.view.JSMa
320                  m = new JMenu(i18n.getMenuLabel("actions"));                  m = new JMenu(i18n.getMenuLabel("actions"));
321                  menuBar.add(m);                  menuBar.add(m);
322                                    
                 mi = new JMenuItem(a4n.connect);  
                 mi.setIcon(null);  
                 //mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_MASK));  
                 m.add(mi);  
                   
323                  mi = new JMenuItem(a4n.refresh);                  mi = new JMenuItem(a4n.refresh);
324                  mi.setIcon(null);                  mi.setIcon(null);
325                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0));
326                  m.add(mi);                  m.add(mi);
327                                    
328                  mi = new JMenuItem(a4n.resetSampler);                  mi = new JMenuItem(A4n.samplerInfo);
329                  mi.setIcon(null);                  mi.setIcon(null);
330                  m.add(mi);                  m.add(mi);
331                                    
332                  mi = new JMenuItem(A4n.samplerInfo);                  mi = new JMenuItem(a4n.resetSampler);
333                  mi.setIcon(null);                  mi.setIcon(null);
334                  m.add(mi);                  m.add(mi);
335                                    
# Line 362  MainFrame extends org.jsampler.view.JSMa Line 353  MainFrame extends org.jsampler.view.JSMa
353                  JMenu exportMenu = new JMenu(i18n.getMenuLabel("actions.export"));                  JMenu exportMenu = new JMenu(i18n.getMenuLabel("actions.export"));
354                  m.add(exportMenu);                  m.add(exportMenu);
355                                    
356                    int modKey = CC.getViewConfig().getDefaultModKey();
357                  mi = new JMenuItem(a4n.exportSamplerConfig);                  mi = new JMenuItem(a4n.exportSamplerConfig);
358                  mi.setIcon(null);                  mi.setIcon(null);
359                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, KeyEvent.CTRL_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, modKey));
360                  exportMenu.add(mi);                  exportMenu.add(mi);
361                                    
362                  mi = new JMenuItem(a4n.exportMidiInstrumentMaps);                  mi = new JMenuItem(a4n.exportMidiInstrumentMaps);
# Line 374  MainFrame extends org.jsampler.view.JSMa Line 366  MainFrame extends org.jsampler.view.JSMa
366                  m.addSeparator();                  m.addSeparator();
367                                    
368                  mi = new JMenuItem(A4n.loadScript);                  mi = new JMenuItem(A4n.loadScript);
369                    mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, modKey));
370                  mi.setIcon(null);                  mi.setIcon(null);
371                  m.add(mi);                  m.add(mi);
372                                    
# Line 386  MainFrame extends org.jsampler.view.JSMa Line 379  MainFrame extends org.jsampler.view.JSMa
379                                    
380                  m.addSeparator();                  m.addSeparator();
381                                    
382                    mi = new JMenuItem(a4n.changeBackend);
383                    mi.setIcon(null);
384                    mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B, modKey));
385                    m.add(mi);
386                    
387                    m.addSeparator();
388                    
389                  mi = new JMenuItem(i18n.getMenuLabel("actions.exit"));                  mi = new JMenuItem(i18n.getMenuLabel("actions.exit"));
390                  m.add(mi);                  m.add(mi);
391                  mi.addActionListener(new ActionListener() {                  mi.addActionListener(new ActionListener() {
# Line 432  MainFrame extends org.jsampler.view.JSMa Line 432  MainFrame extends org.jsampler.view.JSMa
432                  mi = new JMenuItem(A4n.preferences);                  mi = new JMenuItem(A4n.preferences);
433                  mi.setIcon(null);                  mi.setIcon(null);
434                  mi.setAccelerator(KeyStroke.getKeyStroke (                  mi.setAccelerator(KeyStroke.getKeyStroke (
435                          KeyEvent.VK_P, KeyEvent.CTRL_MASK | KeyEvent.SHIFT_MASK                          KeyEvent.VK_P, modKey | KeyEvent.SHIFT_MASK
436                  ));                  ));
437                  m.add(mi);                  m.add(mi);
438                                    
# Line 514  MainFrame extends org.jsampler.view.JSMa Line 514  MainFrame extends org.jsampler.view.JSMa
514                                    
515                  mi = new JMenuItem(A4n.newChannel);                  mi = new JMenuItem(A4n.newChannel);
516                  mi.setIcon(null);                  mi.setIcon(null);
517                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, modKey));
518                  m.add(mi);                  m.add(mi);
519                                    
520                  mi = new JMenuItem(A4n.newChannelWizard);                  mi = new JMenuItem(A4n.newChannelWizard);
521                  mi.setIcon(null);                  mi.setIcon(null);
522                  mi.setAccelerator(KeyStroke.getKeyStroke (                  mi.setAccelerator(KeyStroke.getKeyStroke (
523                          KeyEvent.VK_N, KeyEvent.CTRL_MASK | KeyEvent.SHIFT_MASK)                          KeyEvent.VK_N, modKey | KeyEvent.SHIFT_MASK)
524                  );                  );
525                  m.add(mi);                  m.add(mi);
526                                    
527                  mi = new JMenuItem(A4n.duplicateChannels);                  mi = new JMenuItem(a4n.duplicateChannels);
528                  mi.setIcon(null);                  mi.setIcon(null);
529                  m.add(mi);                  m.add(mi);
530                                    
531                  m.addSeparator();                  m.addSeparator();
532                                    
533                  mi = new JMenuItem(A4n.moveChannelsOnTop);                  mi = new JMenuItem(a4n.moveChannelsOnTop);
534                  mi.setIcon(null);                  mi.setIcon(null);
535                  mi.setAccelerator(KeyStroke.getKeyStroke (                  mi.setAccelerator(KeyStroke.getKeyStroke (
536                          KeyEvent.VK_UP, KeyEvent.ALT_MASK | KeyEvent.SHIFT_MASK                          KeyEvent.VK_UP, KeyEvent.ALT_MASK | KeyEvent.SHIFT_MASK
537                  ));                  ));
538                  m.add(mi);                  m.add(mi);
539                                    
540                  mi = new JMenuItem(A4n.moveChannelsUp);                  mi = new JMenuItem(a4n.moveChannelsUp);
541                  mi.setIcon(null);                  mi.setIcon(null);
542                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_UP, KeyEvent.ALT_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_UP, KeyEvent.ALT_MASK));
543                  m.add(mi);                  m.add(mi);
544                                    
545                  mi = new JMenuItem(A4n.moveChannelsDown);                  mi = new JMenuItem(a4n.moveChannelsDown);
546                  mi.setIcon(null);                  mi.setIcon(null);
547                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, KeyEvent.ALT_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, KeyEvent.ALT_MASK));
548                  m.add(mi);                  m.add(mi);
549                                    
550                  mi = new JMenuItem(A4n.moveChannelsAtBottom);                  mi = new JMenuItem(a4n.moveChannelsAtBottom);
551                  mi.setIcon(null);                  mi.setIcon(null);
552                  mi.setAccelerator(KeyStroke.getKeyStroke (                  mi.setAccelerator(KeyStroke.getKeyStroke (
553                          KeyEvent.VK_DOWN, KeyEvent.ALT_MASK | KeyEvent.SHIFT_MASK                          KeyEvent.VK_DOWN, KeyEvent.ALT_MASK | KeyEvent.SHIFT_MASK
# Line 559  MainFrame extends org.jsampler.view.JSMa Line 559  MainFrame extends org.jsampler.view.JSMa
559                                    
560                  m.addSeparator();                  m.addSeparator();
561                                    
562                  mi = new JMenuItem(A4n.selectAllChannels);                  mi = new JMenuItem(a4n.selectAllChannels);
563                  mi.setIcon(null);                  mi.setIcon(null);
564                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, KeyEvent.CTRL_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, modKey));
565                  m.add(mi);                  m.add(mi);
566                                    
567                  mi = new JMenuItem(A4n.deselectChannels);                  mi = new JMenuItem(a4n.deselectChannels);
568                  mi.setIcon(null);                  mi.setIcon(null);
569                  mi.setAccelerator(KeyStroke.getKeyStroke (                  mi.setAccelerator(KeyStroke.getKeyStroke (
570                          KeyEvent.VK_A, KeyEvent.CTRL_MASK | KeyEvent.SHIFT_MASK                          KeyEvent.VK_A, KeyEvent.SHIFT_MASK | modKey
571                  ));                  ));
572                  m.add(mi);                  m.add(mi);
573                                    
574                  m.addSeparator();                  m.addSeparator();
575                                    
576                  mi = new JMenuItem(A4n.removeChannels);                  mi = new JMenuItem(a4n.removeChannels);
577                  mi.setIcon(null);                  mi.setIcon(null);
578                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, KeyEvent.SHIFT_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, KeyEvent.SHIFT_MASK));
579                  m.add(mi);                  m.add(mi);
# Line 585  MainFrame extends org.jsampler.view.JSMa Line 585  MainFrame extends org.jsampler.view.JSMa
585                                    
586                  mi = new JMenuItem(A4n.newChannelsTab);                  mi = new JMenuItem(A4n.newChannelsTab);
587                  mi.setIcon(null);                  mi.setIcon(null);
588                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, KeyEvent.CTRL_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, modKey));
589                  m.add(mi);                  m.add(mi);
590                                    
591                  mi = new JMenuItem(A4n.editTabTitle);                  mi = new JMenuItem(A4n.editTabTitle);
# Line 623  MainFrame extends org.jsampler.view.JSMa Line 623  MainFrame extends org.jsampler.view.JSMa
623                                    
624                  mi = new JMenuItem(A4n.closeChannelsTab);                  mi = new JMenuItem(A4n.closeChannelsTab);
625                  mi.setIcon(null);                  mi.setIcon(null);
626                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W, KeyEvent.CTRL_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W, modKey));
627                  m.add(mi);                  m.add(mi);
628                                    
629                                    
# Line 635  MainFrame extends org.jsampler.view.JSMa Line 635  MainFrame extends org.jsampler.view.JSMa
635                  mi.setIcon(null);                  mi.setIcon(null);
636                  m.add(mi);                  m.add(mi);
637                                    
638                    final JMenuItem mi2 = new JMenuItem(i18n.getMenuLabel("window.backendLog"));
639                    m.add(mi2);
640                    mi2.addActionListener(new ActionListener() {
641                            public void
642                            actionPerformed(ActionEvent e) {
643                                    if(getBackendLogFrame().isVisible()) {
644                                            getBackendLogFrame().setVisible(false);
645                                    }
646                                    
647                                    getBackendLogFrame().setVisible(true);
648                            }
649                    });
650                    
651                    mi2.setEnabled(CC.getBackendProcess() != null);
652                    
653                    CC.addBackendProcessListener(new ActionListener() {
654                            public void
655                            actionPerformed(ActionEvent e) {
656                                    mi2.setEnabled(CC.getBackendProcess() != null);
657                            }
658                    });
659                    
660                                    
661                  // Help                  // Help
662                  m = new JMenu(i18n.getMenuLabel("help"));                  m = new JMenu(i18n.getMenuLabel("help"));
# Line 657  MainFrame extends org.jsampler.view.JSMa Line 679  MainFrame extends org.jsampler.view.JSMa
679                                    
680                  RecentScriptHandler(String script) { this.script = script; }                  RecentScriptHandler(String script) { this.script = script; }
681                                    
682                    @Override
683                  public void                  public void
684                  actionPerformed(ActionEvent e) {  runScript(script); }                  actionPerformed(ActionEvent e) {  runScript(script); }
685          }          }
# Line 784  MainFrame extends org.jsampler.view.JSMa Line 807  MainFrame extends org.jsampler.view.JSMa
807          protected void          protected void
808          setLSConsoleShown(boolean b) { cbmiLSConsoleShown.setSelected(b); }          setLSConsoleShown(boolean b) { cbmiLSConsoleShown.setSelected(b); }
809                    
810          protected LSConsoleModel          @Override
811            public LSConsoleModel
812          getLSConsoleModel() { return lsConsolePane.getModel(); }          getLSConsoleModel() { return lsConsolePane.getModel(); }
813                    
814            protected JSBackendLogFrame
815            getBackendLogFrame() { return backendLogFrame; }
816            
817          /**          /**
818           * Sets the text color of the LS Console.           * Sets the text color of the LS Console.
819           * @param c The text color of the LS Console.           * @param c The text color of the LS Console.
# Line 838  MainFrame extends org.jsampler.view.JSMa Line 865  MainFrame extends org.jsampler.view.JSMa
865           * Adds the specified <code>JSChannelsPane</code> to the view.           * Adds the specified <code>JSChannelsPane</code> to the view.
866           * @param chnPane The <code>JSChannelsPane</code> to be added.           * @param chnPane The <code>JSChannelsPane</code> to be added.
867           */           */
868            @Override
869          public void          public void
870          addChannelsPane(JSChannelsPane chnPane) {          addChannelsPane(JSChannelsPane chnPane) {
871                  insertChannelsPane(chnPane, getChannelsPaneCount());                  insertChannelsPane(chnPane, getChannelsPaneCount());
872          }          }
873                    
874            @Override
875          public void          public void
876          insertChannelsPane(JSChannelsPane chnPane, int idx) {          insertChannelsPane(JSChannelsPane chnPane, int idx) {
877                  chnPane.addListSelectionListener(this);                  chnPane.addListSelectionListener(this);
# Line 867  MainFrame extends org.jsampler.view.JSMa Line 896  MainFrame extends org.jsampler.view.JSMa
896           * Gets the <code>JSChannelsPane</code> that is currently shown.           * Gets the <code>JSChannelsPane</code> that is currently shown.
897           * @return The currently shown <code>JSChannelsPane</code>.           * @return The currently shown <code>JSChannelsPane</code>.
898           */           */
899            @Override
900          public JSChannelsPane          public JSChannelsPane
901          getSelectedChannelsPane() {          getSelectedChannelsPane() {
902                  if(getChannelsPaneList().size() == 1) return getChannelsPane(0);                  if(getChannelsPaneList().size() == 1) return getChannelsPane(0);
# Line 877  MainFrame extends org.jsampler.view.JSMa Line 907  MainFrame extends org.jsampler.view.JSMa
907           * Sets the <code>JSChannelsPane</code> to be selected.           * Sets the <code>JSChannelsPane</code> to be selected.
908           * @param pane The <code>JSChannelsPane</code> to be shown.           * @param pane The <code>JSChannelsPane</code> to be shown.
909           */           */
910            @Override
911          public void          public void
912          setSelectedChannelsPane(JSChannelsPane pane) {          setSelectedChannelsPane(JSChannelsPane pane) {
913                  if(getChannelsPaneList().size() == 1) return;                  if(getChannelsPaneList().size() == 1) return;
914                  tabbedPane.setSelectedComponent(pane);                  tabbedPane.setSelectedComponent(pane);
915                    fireChannelsPaneSelectionChanged();
916          }          }
917                    
918          /**          /**
# Line 889  MainFrame extends org.jsampler.view.JSMa Line 921  MainFrame extends org.jsampler.view.JSMa
921           * @return <code>true</code> if the specified code>JSChannelsPane</code>           * @return <code>true</code> if the specified code>JSChannelsPane</code>
922           * is actually removed from the view, <code>false</code> otherwise.           * is actually removed from the view, <code>false</code> otherwise.
923           */           */
924            @Override
925          public boolean          public boolean
926          removeChannelsPane(JSChannelsPane chnPane) {          removeChannelsPane(JSChannelsPane chnPane) {
927                  chnPane.removeListSelectionListener(this);                  chnPane.removeListSelectionListener(this);
# Line 935  MainFrame extends org.jsampler.view.JSMa Line 968  MainFrame extends org.jsampler.view.JSMa
968          private void          private void
969          checkChannelSelection(JSChannelsPane pane) {          checkChannelSelection(JSChannelsPane pane) {
970                  if(!pane.hasSelectedChannel()) {                  if(!pane.hasSelectedChannel()) {
971                          A4n.duplicateChannels.putValue (                          a4n.duplicateChannels.putValue (
972                                  Action.NAME, i18n.getMenuLabel("channels.duplicate")                                  Action.NAME, i18n.getMenuLabel("channels.duplicate")
973                          );                          );
974                          A4n.duplicateChannels.setEnabled(false);                          a4n.duplicateChannels.setEnabled(false);
975                                                                    
976                          A4n.removeChannels.putValue (                          a4n.removeChannels.putValue (
977                                  Action.NAME, i18n.getMenuLabel("channels.RemoveChannel")                                  Action.NAME, i18n.getMenuLabel("channels.RemoveChannel")
978                          );                          );
979                          A4n.removeChannels.setEnabled(false);                          a4n.removeChannels.setEnabled(false);
980                                                    
981                          tabsMenu.setEnabled(false);                          tabsMenu.setEnabled(false);
982                                                    
983                          A4n.moveChannelsOnTop.setEnabled(false);                          a4n.moveChannelsOnTop.setEnabled(false);
984                          A4n.moveChannelsUp.setEnabled(false);                          a4n.moveChannelsUp.setEnabled(false);
985                          A4n.moveChannelsDown.setEnabled(false);                          a4n.moveChannelsDown.setEnabled(false);
986                          A4n.moveChannelsAtBottom.setEnabled(false);                          a4n.moveChannelsAtBottom.setEnabled(false);
987                                                    
988                          return;                          return;
989                  }                  }
990                                    
991                  A4n.duplicateChannels.setEnabled(true);                  a4n.duplicateChannels.setEnabled(true);
992                  A4n.removeChannels.setEnabled(true);                  a4n.removeChannels.setEnabled(true);
993                                    
994                  if(getChannelsPaneCount() > 1) tabsMenu.setEnabled(true);                  if(getChannelsPaneCount() > 1) tabsMenu.setEnabled(true);
995                                    
996                  if(pane.getSelectedChannelCount() > 1) {                  if(pane.getSelectedChannelCount() > 1) {
997                          A4n.duplicateChannels.putValue (                          a4n.duplicateChannels.putValue (
998                                  Action.NAME, i18n.getMenuLabel("channels.duplicateChannels")                                  Action.NAME, i18n.getMenuLabel("channels.duplicateChannels")
999                          );                          );
1000                          A4n.removeChannels.putValue (                          a4n.removeChannels.putValue (
1001                                  Action.NAME, i18n.getMenuLabel("channels.RemoveChannels")                                  Action.NAME, i18n.getMenuLabel("channels.RemoveChannels")
1002                          );                          );
1003                  } else {                  } else {
1004                          A4n.duplicateChannels.putValue (                          a4n.duplicateChannels.putValue (
1005                                  Action.NAME, i18n.getMenuLabel("channels.duplicate")                                  Action.NAME, i18n.getMenuLabel("channels.duplicate")
1006                          );                          );
1007                          A4n.removeChannels.putValue (                          a4n.removeChannels.putValue (
1008                                  Action.NAME, i18n.getMenuLabel("channels.RemoveChannel")                                  Action.NAME, i18n.getMenuLabel("channels.RemoveChannel")
1009                          );                          );
1010                  }                  }
1011                                    
1012                  A4n.moveChannelsOnTop.setEnabled(false);                  a4n.moveChannelsOnTop.setEnabled(false);
1013                  A4n.moveChannelsUp.setEnabled(true);                  a4n.moveChannelsUp.setEnabled(true);
1014                  A4n.moveChannelsDown.setEnabled(true);                  a4n.moveChannelsDown.setEnabled(true);
1015                  A4n.moveChannelsAtBottom.setEnabled(false);                  a4n.moveChannelsAtBottom.setEnabled(false);
1016                                    
1017                  JSChannel[] chns = pane.getSelectedChannels();                  JSChannel[] chns = pane.getSelectedChannels();
1018                                    
1019                  for(int i = 0; i < chns.length; i++) {                  for(int i = 0; i < chns.length; i++) {
1020                          if(pane.getChannel(i) != chns[i]) {                          if(pane.getChannel(i) != chns[i]) {
1021                                  A4n.moveChannelsOnTop.setEnabled(true);                                  a4n.moveChannelsOnTop.setEnabled(true);
1022                                  break;                                  break;
1023                          }                          }
1024                  }                  }
1025                                    
1026                  if(chns[0] == pane.getFirstChannel()) A4n.moveChannelsUp.setEnabled(false);                  if(chns[0] == pane.getFirstChannel()) a4n.moveChannelsUp.setEnabled(false);
1027                                    
1028                  if(chns[chns.length - 1] == pane.getLastChannel())                  if(chns[chns.length - 1] == pane.getLastChannel())
1029                          A4n.moveChannelsDown.setEnabled(false);                          a4n.moveChannelsDown.setEnabled(false);
1030                                    
1031                  for(int i = chns.length - 1, j = pane.getChannelCount() - 1; i >= 0; i--, j--) {                  for(int i = chns.length - 1, j = pane.getChannelCount() - 1; i >= 0; i--, j--) {
1032                          if(pane.getChannel(j) != chns[i]) {                          if(pane.getChannel(j) != chns[i]) {
1033                                  A4n.moveChannelsAtBottom.setEnabled(true);                                  a4n.moveChannelsAtBottom.setEnabled(true);
1034                                  break;                                  break;
1035                          }                          }
1036                  }                  }
# Line 1030  MainFrame extends org.jsampler.view.JSMa Line 1063  MainFrame extends org.jsampler.view.JSMa
1063          public JMenu          public JMenu
1064          getTabsMenu() { return tabsMenu; }          getTabsMenu() { return tabsMenu; }
1065                    
1066            @Override
1067          public void          public void
1068          stateChanged(ChangeEvent e) {          stateChanged(ChangeEvent e) {
1069                  updateTabsMenu();                  updateTabsMenu();
# Line 1037  MainFrame extends org.jsampler.view.JSMa Line 1071  MainFrame extends org.jsampler.view.JSMa
1071                  checkTabSelection();                  checkTabSelection();
1072          }          }
1073                    
1074            @Override
1075          public void          public void
1076          valueChanged(ListSelectionEvent e) {          valueChanged(ListSelectionEvent e) {
1077                  if(e.getValueIsAdjusting()) return;                  if(e.getValueIsAdjusting()) return;
# Line 1124  MainFrame extends org.jsampler.view.JSMa Line 1159  MainFrame extends org.jsampler.view.JSMa
1159                  runScript(fc.getSelectedFile());                  runScript(fc.getSelectedFile());
1160          }          }
1161                    
1162          private void          @Override
1163            public void
1164          runScript(String script) { runScript(new File(script)); }          runScript(String script) { runScript(new File(script)); }
1165                    
1166          private void          private void
# Line 1185  MainFrame extends org.jsampler.view.JSMa Line 1221  MainFrame extends org.jsampler.view.JSMa
1221                  recentScriptsMenu.setEnabled(recentScripts.size() != 0);                  recentScriptsMenu.setEnabled(recentScripts.size() != 0);
1222          }          }
1223                    
1224            @Override
1225          public void          public void
1226          installJSamplerHome() {          installJSamplerHome() {
1227                  JSamplerHomeChooser chooser = new JSamplerHomeChooser(this);                  JSamplerHomeChooser chooser = new JSamplerHomeChooser(this);
# Line 1194  MainFrame extends org.jsampler.view.JSMa Line 1231  MainFrame extends org.jsampler.view.JSMa
1231                  CC.changeJSamplerHome(chooser.getJSamplerHome());                  CC.changeJSamplerHome(chooser.getJSamplerHome());
1232          }          }
1233                    
1234            @Override
1235          public void          public void
1236          showDetailedErrorMessage(Frame owner, String err, String details) {          showDetailedErrorMessage(Frame owner, String err, String details) {
1237                  JSDetailedErrorDlg dlg = new JSDetailedErrorDlg (                  JSDetailedErrorDlg dlg = new JSDetailedErrorDlg (
# Line 1202  MainFrame extends org.jsampler.view.JSMa Line 1240  MainFrame extends org.jsampler.view.JSMa
1240                  dlg.setVisible(true);                  dlg.setVisible(true);
1241          }          }
1242                    
1243            @Override
1244          public void          public void
1245          showDetailedErrorMessage(Dialog owner, String err, String details) {          showDetailedErrorMessage(Dialog owner, String err, String details) {
1246                  JSDetailedErrorDlg dlg = new JSDetailedErrorDlg (                  JSDetailedErrorDlg dlg = new JSDetailedErrorDlg (
# Line 1209  MainFrame extends org.jsampler.view.JSMa Line 1248  MainFrame extends org.jsampler.view.JSMa
1248                  );                  );
1249                  dlg.setVisible(true);                  dlg.setVisible(true);
1250          }          }
1251            
1252            /**
1253             * Gets the server address to which to connect. If the server should be
1254             * manually selected, a dialog asking the user to choose a server is displayed.
1255             */
1256            @Override
1257            public Server
1258            getServer() {
1259                    boolean b = preferences().getBoolProperty(MANUAL_SERVER_SELECT_ON_STARTUP);
1260                    return getServer(b);
1261            }
1262            
1263            /**
1264             * Gets the server address to which to connect. If the server should be
1265             * manually selected, a dialog asking the user to choose a server is displayed.
1266             * @param manualSelect Determines whether the server should be manually selected.
1267             */
1268            @Override
1269            public Server
1270            getServer(boolean manualSelect) {
1271                    if(manualSelect) {
1272                            JSConnectDlg dlg = new JSConnectDlg();
1273                            dlg.setVisible(true);
1274                            return dlg.getSelectedServer();
1275                    }
1276                    
1277                    int i = preferences().getIntProperty(SERVER_INDEX);
1278                    int size = CC.getServerList().getServerCount();
1279                    if(size == 0) return null;
1280                    if(i >= size) return CC.getServerList().getServer(0);
1281                    
1282                    return CC.getServerList().getServer(i);
1283            }
1284    
1285            private boolean processConnectionFailure = false;
1286    
1287            @Override
1288            public void
1289            handleConnectionFailure() {
1290                    if(processConnectionFailure) return;
1291                    processConnectionFailure = true;
1292                    CC.getTaskQueue().add(new Global.Disconnect());
1293                    JSConnectionFailurePane p = new JSConnectionFailurePane();
1294                    p.showDialog();
1295                    processConnectionFailure = false;
1296            }
1297  }  }

Legend:
Removed from v.1567  
changed lines
  Added in v.1883

  ViewVC Help
Powered by ViewVC