/[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 1688 by iliev, Thu Feb 14 16:52:36 2008 UTC revision 1864 by iliev, Sat Mar 14 20:44:58 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;
 import org.jsampler.Prefs;  
66  import org.jsampler.Server;  import org.jsampler.Server;
67    
68  import org.jsampler.view.JSChannel;  import org.jsampler.view.JSChannel;
69  import org.jsampler.view.JSChannelsPane;  import org.jsampler.view.JSChannelsPane;
70  import org.jsampler.view.LscpFileFilter;  import org.jsampler.view.LscpFileFilter;
71    
72    import org.jsampler.view.std.JSBackendLogFrame;
73  import org.jsampler.view.std.JSConnectDlg;  import org.jsampler.view.std.JSConnectDlg;
74  import org.jsampler.view.std.JSDetailedErrorDlg;  import org.jsampler.view.std.JSDetailedErrorDlg;
75  import org.jsampler.view.std.JSQuitDlg;  import org.jsampler.view.std.JSQuitDlg;
76  import org.jsampler.view.std.JSamplerHomeChooser;  import org.jsampler.view.std.JSamplerHomeChooser;
77    import org.jsampler.view.std.StdUtils;
78    
79  import static org.jsampler.view.classic.A4n.a4n;  import static org.jsampler.view.classic.A4n.a4n;
80  import static org.jsampler.view.classic.ClassicI18n.i18n;  import static org.jsampler.view.classic.ClassicI18n.i18n;
# Line 108  MainFrame extends org.jsampler.view.JSMa Line 107  MainFrame extends org.jsampler.view.JSMa
107          private final JPanel bottomPane = new JPanel();          private final JPanel bottomPane = new JPanel();
108          private final LSConsolePane lsConsolePane = new LSConsolePane(this);          private final LSConsolePane lsConsolePane = new LSConsolePane(this);
109          private LSConsoleDlg lsConsoleDlg = null;          private LSConsoleDlg lsConsoleDlg = null;
110            private final JSBackendLogFrame backendLogFrame = new JSBackendLogFrame();
111                    
112          private final JTabbedPane tabbedPane =          private final JTabbedPane tabbedPane =
113                  new JTabbedPane(JTabbedPane.BOTTOM, JTabbedPane.SCROLL_TAB_LAYOUT);                  new JTabbedPane(JTabbedPane.BOTTOM, JTabbedPane.SCROLL_TAB_LAYOUT);
# Line 132  MainFrame extends org.jsampler.view.JSMa Line 132  MainFrame extends org.jsampler.view.JSMa
132          MainFrame() {          MainFrame() {
133                  setTitle(i18n.getLabel("MainFrame.title"));                  setTitle(i18n.getLabel("MainFrame.title"));
134                                    
135                    CC.setMainFrame(this); // TODO:
136                    
137                  getContentPane().add(standardBar, BorderLayout.NORTH);                  getContentPane().add(standardBar, BorderLayout.NORTH);
138                  getContentPane().add(mainPane);                  getContentPane().add(mainPane);
139                                    
# Line 206  MainFrame extends org.jsampler.view.JSMa Line 208  MainFrame extends org.jsampler.view.JSMa
208          }          }
209                    
210          /** Invoked when this window is about to close. */          /** Invoked when this window is about to close. */
211          protected void          @Override
212            public void
213          onWindowClose() {          onWindowClose() {
214                  boolean b = preferences().getBoolProperty(CONFIRM_APP_QUIT);                  boolean b = preferences().getBoolProperty(CONFIRM_APP_QUIT);
215                  if(b && CC.getSamplerModel().isModified()) {                  if(b && CC.getSamplerModel().isModified()) {
# Line 221  MainFrame extends org.jsampler.view.JSMa Line 224  MainFrame extends org.jsampler.view.JSMa
224                          );                          );
225                                                    
226                          setVisible(false);                          setVisible(false);
227                          if(ClassicPrefs.getWindowMaximized("Mainframe")) {                          if(ClassicPrefs.getWindowMaximized("MainFrame")) {
228                                  //setExtendedState(getExtendedState() & ~MAXIMIZED_BOTH);                                  //setExtendedState(getExtendedState() & ~MAXIMIZED_BOTH);
229                                  CC.cleanExit();                                  CC.cleanExit();
230                                  return;                                  return;
231                          }                          }
232                                                    
233                          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());  
234                                                    
235                          ClassicPrefs.setHSplitDividerLocation(hSplitPane.getDividerLocation());                          ClassicPrefs.setHSplitDividerLocation(hSplitPane.getDividerLocation());
236                  }                  }
# Line 265  MainFrame extends org.jsampler.view.JSMa Line 263  MainFrame extends org.jsampler.view.JSMa
263                  ClassicPrefs.setLSConsolePopOut(isLSConsolePopOut());                  ClassicPrefs.setLSConsolePopOut(isLSConsolePopOut());
264                                    
265                  ClassicPrefs.setVSplitDividerLocation(vSplitPane.getDividerLocation());                  ClassicPrefs.setVSplitDividerLocation(vSplitPane.getDividerLocation());
266                    
267                    if(getBackendLogFrame() != null) getBackendLogFrame().stopTimer();
268                    if(lsConsolePane != null) lsConsolePane.disconnect();
269                  super.onWindowClose();                  super.onWindowClose();
270          }          }
271                    
272            @Override
273            public void
274            setVisible(boolean b) {
275                    if(b == isVisible()) return;
276                    
277                    super.setVisible(b);
278                    
279                    if(ClassicPrefs.getWindowMaximized("MainFrame")) {
280                            setExtendedState(getExtendedState() | MAXIMIZED_BOTH);
281                    }
282            }
283            
284          private void          private void
285          initMainFrame() {          initMainFrame() {
286                  addMenu();                  addMenu();
# Line 284  MainFrame extends org.jsampler.view.JSMa Line 297  MainFrame extends org.jsampler.view.JSMa
297                    
298          private void          private void
299          setSavedSize() {          setSavedSize() {
300                  String s = ClassicPrefs.getWindowSizeAndLocation("Mainframe");                  Rectangle r = StdUtils.getWindowBounds("MainFrame");
301                  if(s == null) {                  if(r == null) {
302                          setDefaultSize();                          setDefaultSize();
303                          return;                          return;
304                  }                  }
305                                    
306                  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);  
307          }          }
308                    
309          private void          private void
# Line 360  MainFrame extends org.jsampler.view.JSMa Line 350  MainFrame extends org.jsampler.view.JSMa
350                  JMenu exportMenu = new JMenu(i18n.getMenuLabel("actions.export"));                  JMenu exportMenu = new JMenu(i18n.getMenuLabel("actions.export"));
351                  m.add(exportMenu);                  m.add(exportMenu);
352                                    
353                    int modKey = CC.getViewConfig().getDefaultModKey();
354                  mi = new JMenuItem(a4n.exportSamplerConfig);                  mi = new JMenuItem(a4n.exportSamplerConfig);
355                  mi.setIcon(null);                  mi.setIcon(null);
356                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, KeyEvent.CTRL_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, modKey));
357                  exportMenu.add(mi);                  exportMenu.add(mi);
358                                    
359                  mi = new JMenuItem(a4n.exportMidiInstrumentMaps);                  mi = new JMenuItem(a4n.exportMidiInstrumentMaps);
# Line 372  MainFrame extends org.jsampler.view.JSMa Line 363  MainFrame extends org.jsampler.view.JSMa
363                  m.addSeparator();                  m.addSeparator();
364                                    
365                  mi = new JMenuItem(A4n.loadScript);                  mi = new JMenuItem(A4n.loadScript);
366                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, KeyEvent.CTRL_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, modKey));
367                  mi.setIcon(null);                  mi.setIcon(null);
368                  m.add(mi);                  m.add(mi);
369                                    
# Line 387  MainFrame extends org.jsampler.view.JSMa Line 378  MainFrame extends org.jsampler.view.JSMa
378                                    
379                  mi = new JMenuItem(a4n.changeBackend);                  mi = new JMenuItem(a4n.changeBackend);
380                  mi.setIcon(null);                  mi.setIcon(null);
381                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B, KeyEvent.CTRL_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B, modKey));
382                  m.add(mi);                  m.add(mi);
383                                    
384                  m.addSeparator();                  m.addSeparator();
# Line 438  MainFrame extends org.jsampler.view.JSMa Line 429  MainFrame extends org.jsampler.view.JSMa
429                  mi = new JMenuItem(A4n.preferences);                  mi = new JMenuItem(A4n.preferences);
430                  mi.setIcon(null);                  mi.setIcon(null);
431                  mi.setAccelerator(KeyStroke.getKeyStroke (                  mi.setAccelerator(KeyStroke.getKeyStroke (
432                          KeyEvent.VK_P, KeyEvent.CTRL_MASK | KeyEvent.SHIFT_MASK                          KeyEvent.VK_P, modKey | KeyEvent.SHIFT_MASK
433                  ));                  ));
434                  m.add(mi);                  m.add(mi);
435                                    
# Line 520  MainFrame extends org.jsampler.view.JSMa Line 511  MainFrame extends org.jsampler.view.JSMa
511                                    
512                  mi = new JMenuItem(A4n.newChannel);                  mi = new JMenuItem(A4n.newChannel);
513                  mi.setIcon(null);                  mi.setIcon(null);
514                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, modKey));
515                  m.add(mi);                  m.add(mi);
516                                    
517                  mi = new JMenuItem(A4n.newChannelWizard);                  mi = new JMenuItem(A4n.newChannelWizard);
518                  mi.setIcon(null);                  mi.setIcon(null);
519                  mi.setAccelerator(KeyStroke.getKeyStroke (                  mi.setAccelerator(KeyStroke.getKeyStroke (
520                          KeyEvent.VK_N, KeyEvent.CTRL_MASK | KeyEvent.SHIFT_MASK)                          KeyEvent.VK_N, modKey | KeyEvent.SHIFT_MASK)
521                  );                  );
522                  m.add(mi);                  m.add(mi);
523                                    
524                  mi = new JMenuItem(A4n.duplicateChannels);                  mi = new JMenuItem(a4n.duplicateChannels);
525                  mi.setIcon(null);                  mi.setIcon(null);
526                  m.add(mi);                  m.add(mi);
527                                    
528                  m.addSeparator();                  m.addSeparator();
529                                    
530                  mi = new JMenuItem(A4n.moveChannelsOnTop);                  mi = new JMenuItem(a4n.moveChannelsOnTop);
531                  mi.setIcon(null);                  mi.setIcon(null);
532                  mi.setAccelerator(KeyStroke.getKeyStroke (                  mi.setAccelerator(KeyStroke.getKeyStroke (
533                          KeyEvent.VK_UP, KeyEvent.ALT_MASK | KeyEvent.SHIFT_MASK                          KeyEvent.VK_UP, KeyEvent.ALT_MASK | KeyEvent.SHIFT_MASK
534                  ));                  ));
535                  m.add(mi);                  m.add(mi);
536                                    
537                  mi = new JMenuItem(A4n.moveChannelsUp);                  mi = new JMenuItem(a4n.moveChannelsUp);
538                  mi.setIcon(null);                  mi.setIcon(null);
539                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_UP, KeyEvent.ALT_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_UP, KeyEvent.ALT_MASK));
540                  m.add(mi);                  m.add(mi);
541                                    
542                  mi = new JMenuItem(A4n.moveChannelsDown);                  mi = new JMenuItem(a4n.moveChannelsDown);
543                  mi.setIcon(null);                  mi.setIcon(null);
544                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, KeyEvent.ALT_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, KeyEvent.ALT_MASK));
545                  m.add(mi);                  m.add(mi);
546                                    
547                  mi = new JMenuItem(A4n.moveChannelsAtBottom);                  mi = new JMenuItem(a4n.moveChannelsAtBottom);
548                  mi.setIcon(null);                  mi.setIcon(null);
549                  mi.setAccelerator(KeyStroke.getKeyStroke (                  mi.setAccelerator(KeyStroke.getKeyStroke (
550                          KeyEvent.VK_DOWN, KeyEvent.ALT_MASK | KeyEvent.SHIFT_MASK                          KeyEvent.VK_DOWN, KeyEvent.ALT_MASK | KeyEvent.SHIFT_MASK
# Line 565  MainFrame extends org.jsampler.view.JSMa Line 556  MainFrame extends org.jsampler.view.JSMa
556                                    
557                  m.addSeparator();                  m.addSeparator();
558                                    
559                  mi = new JMenuItem(A4n.selectAllChannels);                  mi = new JMenuItem(a4n.selectAllChannels);
560                  mi.setIcon(null);                  mi.setIcon(null);
561                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, KeyEvent.CTRL_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, modKey));
562                  m.add(mi);                  m.add(mi);
563                                    
564                  mi = new JMenuItem(A4n.deselectChannels);                  mi = new JMenuItem(a4n.deselectChannels);
565                  mi.setIcon(null);                  mi.setIcon(null);
566                  mi.setAccelerator(KeyStroke.getKeyStroke (                  mi.setAccelerator(KeyStroke.getKeyStroke (
567                          KeyEvent.VK_A, KeyEvent.CTRL_MASK | KeyEvent.SHIFT_MASK                          KeyEvent.VK_A, KeyEvent.SHIFT_MASK | modKey
568                  ));                  ));
569                  m.add(mi);                  m.add(mi);
570                                    
571                  m.addSeparator();                  m.addSeparator();
572                                    
573                  mi = new JMenuItem(A4n.removeChannels);                  mi = new JMenuItem(a4n.removeChannels);
574                  mi.setIcon(null);                  mi.setIcon(null);
575                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, KeyEvent.SHIFT_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, KeyEvent.SHIFT_MASK));
576                  m.add(mi);                  m.add(mi);
# Line 591  MainFrame extends org.jsampler.view.JSMa Line 582  MainFrame extends org.jsampler.view.JSMa
582                                    
583                  mi = new JMenuItem(A4n.newChannelsTab);                  mi = new JMenuItem(A4n.newChannelsTab);
584                  mi.setIcon(null);                  mi.setIcon(null);
585                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, KeyEvent.CTRL_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, modKey));
586                  m.add(mi);                  m.add(mi);
587                                    
588                  mi = new JMenuItem(A4n.editTabTitle);                  mi = new JMenuItem(A4n.editTabTitle);
# Line 629  MainFrame extends org.jsampler.view.JSMa Line 620  MainFrame extends org.jsampler.view.JSMa
620                                    
621                  mi = new JMenuItem(A4n.closeChannelsTab);                  mi = new JMenuItem(A4n.closeChannelsTab);
622                  mi.setIcon(null);                  mi.setIcon(null);
623                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W, KeyEvent.CTRL_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W, modKey));
624                  m.add(mi);                  m.add(mi);
625                                    
626                                    
# Line 641  MainFrame extends org.jsampler.view.JSMa Line 632  MainFrame extends org.jsampler.view.JSMa
632                  mi.setIcon(null);                  mi.setIcon(null);
633                  m.add(mi);                  m.add(mi);
634                                    
635                    final JMenuItem mi2 = new JMenuItem(i18n.getMenuLabel("window.backendLog"));
636                    m.add(mi2);
637                    mi2.addActionListener(new ActionListener() {
638                            public void
639                            actionPerformed(ActionEvent e) {
640                                    if(getBackendLogFrame().isVisible()) {
641                                            getBackendLogFrame().setVisible(false);
642                                    }
643                                    
644                                    getBackendLogFrame().setVisible(true);
645                            }
646                    });
647                    
648                    mi2.setEnabled(CC.getBackendProcess() != null);
649                    
650                    CC.addBackendProcessListener(new ActionListener() {
651                            public void
652                            actionPerformed(ActionEvent e) {
653                                    mi2.setEnabled(CC.getBackendProcess() != null);
654                            }
655                    });
656                    
657                                    
658                  // Help                  // Help
659                  m = new JMenu(i18n.getMenuLabel("help"));                  m = new JMenu(i18n.getMenuLabel("help"));
# Line 663  MainFrame extends org.jsampler.view.JSMa Line 676  MainFrame extends org.jsampler.view.JSMa
676                                    
677                  RecentScriptHandler(String script) { this.script = script; }                  RecentScriptHandler(String script) { this.script = script; }
678                                    
679                    @Override
680                  public void                  public void
681                  actionPerformed(ActionEvent e) {  runScript(script); }                  actionPerformed(ActionEvent e) {  runScript(script); }
682          }          }
# Line 793  MainFrame extends org.jsampler.view.JSMa Line 807  MainFrame extends org.jsampler.view.JSMa
807          protected LSConsoleModel          protected LSConsoleModel
808          getLSConsoleModel() { return lsConsolePane.getModel(); }          getLSConsoleModel() { return lsConsolePane.getModel(); }
809                    
810            protected JSBackendLogFrame
811            getBackendLogFrame() { return backendLogFrame; }
812            
813          /**          /**
814           * Sets the text color of the LS Console.           * Sets the text color of the LS Console.
815           * @param c The text color of the LS Console.           * @param c The text color of the LS Console.
# Line 844  MainFrame extends org.jsampler.view.JSMa Line 861  MainFrame extends org.jsampler.view.JSMa
861           * Adds the specified <code>JSChannelsPane</code> to the view.           * Adds the specified <code>JSChannelsPane</code> to the view.
862           * @param chnPane The <code>JSChannelsPane</code> to be added.           * @param chnPane The <code>JSChannelsPane</code> to be added.
863           */           */
864            @Override
865          public void          public void
866          addChannelsPane(JSChannelsPane chnPane) {          addChannelsPane(JSChannelsPane chnPane) {
867                  insertChannelsPane(chnPane, getChannelsPaneCount());                  insertChannelsPane(chnPane, getChannelsPaneCount());
868          }          }
869                    
870            @Override
871          public void          public void
872          insertChannelsPane(JSChannelsPane chnPane, int idx) {          insertChannelsPane(JSChannelsPane chnPane, int idx) {
873                  chnPane.addListSelectionListener(this);                  chnPane.addListSelectionListener(this);
# Line 873  MainFrame extends org.jsampler.view.JSMa Line 892  MainFrame extends org.jsampler.view.JSMa
892           * Gets the <code>JSChannelsPane</code> that is currently shown.           * Gets the <code>JSChannelsPane</code> that is currently shown.
893           * @return The currently shown <code>JSChannelsPane</code>.           * @return The currently shown <code>JSChannelsPane</code>.
894           */           */
895            @Override
896          public JSChannelsPane          public JSChannelsPane
897          getSelectedChannelsPane() {          getSelectedChannelsPane() {
898                  if(getChannelsPaneList().size() == 1) return getChannelsPane(0);                  if(getChannelsPaneList().size() == 1) return getChannelsPane(0);
# Line 883  MainFrame extends org.jsampler.view.JSMa Line 903  MainFrame extends org.jsampler.view.JSMa
903           * Sets the <code>JSChannelsPane</code> to be selected.           * Sets the <code>JSChannelsPane</code> to be selected.
904           * @param pane The <code>JSChannelsPane</code> to be shown.           * @param pane The <code>JSChannelsPane</code> to be shown.
905           */           */
906            @Override
907          public void          public void
908          setSelectedChannelsPane(JSChannelsPane pane) {          setSelectedChannelsPane(JSChannelsPane pane) {
909                  if(getChannelsPaneList().size() == 1) return;                  if(getChannelsPaneList().size() == 1) return;
910                  tabbedPane.setSelectedComponent(pane);                  tabbedPane.setSelectedComponent(pane);
911                    fireChannelsPaneSelectionChanged();
912          }          }
913                    
914          /**          /**
# Line 895  MainFrame extends org.jsampler.view.JSMa Line 917  MainFrame extends org.jsampler.view.JSMa
917           * @return <code>true</code> if the specified code>JSChannelsPane</code>           * @return <code>true</code> if the specified code>JSChannelsPane</code>
918           * is actually removed from the view, <code>false</code> otherwise.           * is actually removed from the view, <code>false</code> otherwise.
919           */           */
920            @Override
921          public boolean          public boolean
922          removeChannelsPane(JSChannelsPane chnPane) {          removeChannelsPane(JSChannelsPane chnPane) {
923                  chnPane.removeListSelectionListener(this);                  chnPane.removeListSelectionListener(this);
# Line 941  MainFrame extends org.jsampler.view.JSMa Line 964  MainFrame extends org.jsampler.view.JSMa
964          private void          private void
965          checkChannelSelection(JSChannelsPane pane) {          checkChannelSelection(JSChannelsPane pane) {
966                  if(!pane.hasSelectedChannel()) {                  if(!pane.hasSelectedChannel()) {
967                          A4n.duplicateChannels.putValue (                          a4n.duplicateChannels.putValue (
968                                  Action.NAME, i18n.getMenuLabel("channels.duplicate")                                  Action.NAME, i18n.getMenuLabel("channels.duplicate")
969                          );                          );
970                          A4n.duplicateChannels.setEnabled(false);                          a4n.duplicateChannels.setEnabled(false);
971                                                                    
972                          A4n.removeChannels.putValue (                          a4n.removeChannels.putValue (
973                                  Action.NAME, i18n.getMenuLabel("channels.RemoveChannel")                                  Action.NAME, i18n.getMenuLabel("channels.RemoveChannel")
974                          );                          );
975                          A4n.removeChannels.setEnabled(false);                          a4n.removeChannels.setEnabled(false);
976                                                    
977                          tabsMenu.setEnabled(false);                          tabsMenu.setEnabled(false);
978                                                    
979                          A4n.moveChannelsOnTop.setEnabled(false);                          a4n.moveChannelsOnTop.setEnabled(false);
980                          A4n.moveChannelsUp.setEnabled(false);                          a4n.moveChannelsUp.setEnabled(false);
981                          A4n.moveChannelsDown.setEnabled(false);                          a4n.moveChannelsDown.setEnabled(false);
982                          A4n.moveChannelsAtBottom.setEnabled(false);                          a4n.moveChannelsAtBottom.setEnabled(false);
983                                                    
984                          return;                          return;
985                  }                  }
986                                    
987                  A4n.duplicateChannels.setEnabled(true);                  a4n.duplicateChannels.setEnabled(true);
988                  A4n.removeChannels.setEnabled(true);                  a4n.removeChannels.setEnabled(true);
989                                    
990                  if(getChannelsPaneCount() > 1) tabsMenu.setEnabled(true);                  if(getChannelsPaneCount() > 1) tabsMenu.setEnabled(true);
991                                    
992                  if(pane.getSelectedChannelCount() > 1) {                  if(pane.getSelectedChannelCount() > 1) {
993                          A4n.duplicateChannels.putValue (                          a4n.duplicateChannels.putValue (
994                                  Action.NAME, i18n.getMenuLabel("channels.duplicateChannels")                                  Action.NAME, i18n.getMenuLabel("channels.duplicateChannels")
995                          );                          );
996                          A4n.removeChannels.putValue (                          a4n.removeChannels.putValue (
997                                  Action.NAME, i18n.getMenuLabel("channels.RemoveChannels")                                  Action.NAME, i18n.getMenuLabel("channels.RemoveChannels")
998                          );                          );
999                  } else {                  } else {
1000                          A4n.duplicateChannels.putValue (                          a4n.duplicateChannels.putValue (
1001                                  Action.NAME, i18n.getMenuLabel("channels.duplicate")                                  Action.NAME, i18n.getMenuLabel("channels.duplicate")
1002                          );                          );
1003                          A4n.removeChannels.putValue (                          a4n.removeChannels.putValue (
1004                                  Action.NAME, i18n.getMenuLabel("channels.RemoveChannel")                                  Action.NAME, i18n.getMenuLabel("channels.RemoveChannel")
1005                          );                          );
1006                  }                  }
1007                                    
1008                  A4n.moveChannelsOnTop.setEnabled(false);                  a4n.moveChannelsOnTop.setEnabled(false);
1009                  A4n.moveChannelsUp.setEnabled(true);                  a4n.moveChannelsUp.setEnabled(true);
1010                  A4n.moveChannelsDown.setEnabled(true);                  a4n.moveChannelsDown.setEnabled(true);
1011                  A4n.moveChannelsAtBottom.setEnabled(false);                  a4n.moveChannelsAtBottom.setEnabled(false);
1012                                    
1013                  JSChannel[] chns = pane.getSelectedChannels();                  JSChannel[] chns = pane.getSelectedChannels();
1014                                    
1015                  for(int i = 0; i < chns.length; i++) {                  for(int i = 0; i < chns.length; i++) {
1016                          if(pane.getChannel(i) != chns[i]) {                          if(pane.getChannel(i) != chns[i]) {
1017                                  A4n.moveChannelsOnTop.setEnabled(true);                                  a4n.moveChannelsOnTop.setEnabled(true);
1018                                  break;                                  break;
1019                          }                          }
1020                  }                  }
1021                                    
1022                  if(chns[0] == pane.getFirstChannel()) A4n.moveChannelsUp.setEnabled(false);                  if(chns[0] == pane.getFirstChannel()) a4n.moveChannelsUp.setEnabled(false);
1023                                    
1024                  if(chns[chns.length - 1] == pane.getLastChannel())                  if(chns[chns.length - 1] == pane.getLastChannel())
1025                          A4n.moveChannelsDown.setEnabled(false);                          a4n.moveChannelsDown.setEnabled(false);
1026                                    
1027                  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--) {
1028                          if(pane.getChannel(j) != chns[i]) {                          if(pane.getChannel(j) != chns[i]) {
1029                                  A4n.moveChannelsAtBottom.setEnabled(true);                                  a4n.moveChannelsAtBottom.setEnabled(true);
1030                                  break;                                  break;
1031                          }                          }
1032                  }                  }
# Line 1036  MainFrame extends org.jsampler.view.JSMa Line 1059  MainFrame extends org.jsampler.view.JSMa
1059          public JMenu          public JMenu
1060          getTabsMenu() { return tabsMenu; }          getTabsMenu() { return tabsMenu; }
1061                    
1062            @Override
1063          public void          public void
1064          stateChanged(ChangeEvent e) {          stateChanged(ChangeEvent e) {
1065                  updateTabsMenu();                  updateTabsMenu();
# Line 1043  MainFrame extends org.jsampler.view.JSMa Line 1067  MainFrame extends org.jsampler.view.JSMa
1067                  checkTabSelection();                  checkTabSelection();
1068          }          }
1069                    
1070            @Override
1071          public void          public void
1072          valueChanged(ListSelectionEvent e) {          valueChanged(ListSelectionEvent e) {
1073                  if(e.getValueIsAdjusting()) return;                  if(e.getValueIsAdjusting()) return;
# Line 1130  MainFrame extends org.jsampler.view.JSMa Line 1155  MainFrame extends org.jsampler.view.JSMa
1155                  runScript(fc.getSelectedFile());                  runScript(fc.getSelectedFile());
1156          }          }
1157                    
1158          private void          @Override
1159            public void
1160          runScript(String script) { runScript(new File(script)); }          runScript(String script) { runScript(new File(script)); }
1161                    
1162          private void          private void
# Line 1191  MainFrame extends org.jsampler.view.JSMa Line 1217  MainFrame extends org.jsampler.view.JSMa
1217                  recentScriptsMenu.setEnabled(recentScripts.size() != 0);                  recentScriptsMenu.setEnabled(recentScripts.size() != 0);
1218          }          }
1219                    
1220            @Override
1221          public void          public void
1222          installJSamplerHome() {          installJSamplerHome() {
1223                  JSamplerHomeChooser chooser = new JSamplerHomeChooser(this);                  JSamplerHomeChooser chooser = new JSamplerHomeChooser(this);
# Line 1200  MainFrame extends org.jsampler.view.JSMa Line 1227  MainFrame extends org.jsampler.view.JSMa
1227                  CC.changeJSamplerHome(chooser.getJSamplerHome());                  CC.changeJSamplerHome(chooser.getJSamplerHome());
1228          }          }
1229                    
1230            @Override
1231          public void          public void
1232          showDetailedErrorMessage(Frame owner, String err, String details) {          showDetailedErrorMessage(Frame owner, String err, String details) {
1233                  JSDetailedErrorDlg dlg = new JSDetailedErrorDlg (                  JSDetailedErrorDlg dlg = new JSDetailedErrorDlg (
# Line 1208  MainFrame extends org.jsampler.view.JSMa Line 1236  MainFrame extends org.jsampler.view.JSMa
1236                  dlg.setVisible(true);                  dlg.setVisible(true);
1237          }          }
1238                    
1239            @Override
1240          public void          public void
1241          showDetailedErrorMessage(Dialog owner, String err, String details) {          showDetailedErrorMessage(Dialog owner, String err, String details) {
1242                  JSDetailedErrorDlg dlg = new JSDetailedErrorDlg (                  JSDetailedErrorDlg dlg = new JSDetailedErrorDlg (
# Line 1220  MainFrame extends org.jsampler.view.JSMa Line 1249  MainFrame extends org.jsampler.view.JSMa
1249           * Gets the server address to which to connect. If the server should be           * Gets the server address to which to connect. If the server should be
1250           * manually selected, a dialog asking the user to choose a server is displayed.           * manually selected, a dialog asking the user to choose a server is displayed.
1251           */           */
1252            @Override
1253          public Server          public Server
1254          getServer() {          getServer() {
1255                  boolean b = preferences().getBoolProperty(MANUAL_SERVER_SELECT_ON_STARTUP);                  boolean b = preferences().getBoolProperty(MANUAL_SERVER_SELECT_ON_STARTUP);
# Line 1231  MainFrame extends org.jsampler.view.JSMa Line 1261  MainFrame extends org.jsampler.view.JSMa
1261           * manually selected, a dialog asking the user to choose a server is displayed.           * manually selected, a dialog asking the user to choose a server is displayed.
1262           * @param manualSelect Determines whether the server should be manually selected.           * @param manualSelect Determines whether the server should be manually selected.
1263           */           */
1264            @Override
1265          public Server          public Server
1266          getServer(boolean manualSelect) {          getServer(boolean manualSelect) {
1267                  if(manualSelect) {                  if(manualSelect) {

Legend:
Removed from v.1688  
changed lines
  Added in v.1864

  ViewVC Help
Powered by ViewVC