/[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 1285 by iliev, Fri Aug 10 19:55:03 2007 UTC revision 1818 by iliev, Wed Dec 24 17:29:47 2008 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-2008 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.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;
74    import org.jsampler.view.std.JSDetailedErrorDlg;
75    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 104  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 128  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 202  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            @Override
212          protected void          protected void
213          onWindowClose() {          onWindowClose() {
214                    boolean b = preferences().getBoolProperty(CONFIRM_APP_QUIT);
215                    if(b && CC.getSamplerModel().isModified()) {
216                            JSQuitDlg dlg = new JSQuitDlg(Res.iconQuestion32);
217                            dlg.setVisible(true);
218                            if(dlg.isCancelled()) return;
219                    }
220                    
221                  if(ClassicPrefs.getSaveWindowProperties()) {                  if(ClassicPrefs.getSaveWindowProperties()) {
222                          ClassicPrefs.setWindowMaximized (                          ClassicPrefs.setWindowMaximized (
223                                  "Mainframe", (getExtendedState() & MAXIMIZED_BOTH) == MAXIMIZED_BOTH                                  "Mainframe", (getExtendedState() & MAXIMIZED_BOTH) == MAXIMIZED_BOTH
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 243  MainFrame extends org.jsampler.view.JSMa Line 252  MainFrame extends org.jsampler.view.JSMa
252                                  ClassicPrefs.setCurrentOrchestraIndex(idx);                                  ClassicPrefs.setCurrentOrchestraIndex(idx);
253                  }                  }
254                                    
255                  StringBuffer sb = new StringBuffer();                  String[] list = recentScripts.toArray(new String[recentScripts.size()]);
256                  for(String s : recentScripts) sb.append(s).append("\n");                  preferences().setStringListProperty(RECENT_LSCP_SCRIPTS, list);
                 preferences().setStringProperty(RECENT_LSCP_SCRIPTS, sb.toString());  
257                                    
258                  if(preferences().getBoolProperty(SAVE_LS_CONSOLE_HISTORY)) {                  if(preferences().getBoolProperty(SAVE_LS_CONSOLE_HISTORY)) {
259                          lsConsolePane.saveConsoleHistory();                          lsConsolePane.saveConsoleHistory();
# Line 255  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 274  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 317  MainFrame extends org.jsampler.view.JSMa Line 317  MainFrame extends org.jsampler.view.JSMa
317                  m = new JMenu(i18n.getMenuLabel("actions"));                  m = new JMenu(i18n.getMenuLabel("actions"));
318                  menuBar.add(m);                  menuBar.add(m);
319                                    
                 mi = new JMenuItem(a4n.connect);  
                 mi.setIcon(null);  
                 //mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_MASK));  
                 m.add(mi);  
                   
320                  mi = new JMenuItem(a4n.refresh);                  mi = new JMenuItem(a4n.refresh);
321                  mi.setIcon(null);                  mi.setIcon(null);
322                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0));
323                  m.add(mi);                  m.add(mi);
324                                    
325                  mi = new JMenuItem(a4n.resetSampler);                  mi = new JMenuItem(A4n.samplerInfo);
326                  mi.setIcon(null);                  mi.setIcon(null);
327                  m.add(mi);                  m.add(mi);
328                                    
329                  mi = new JMenuItem(A4n.samplerInfo);                  mi = new JMenuItem(a4n.resetSampler);
330                  mi.setIcon(null);                  mi.setIcon(null);
331                  m.add(mi);                  m.add(mi);
332                                    
# Line 367  MainFrame extends org.jsampler.view.JSMa Line 362  MainFrame extends org.jsampler.view.JSMa
362                  m.addSeparator();                  m.addSeparator();
363                                    
364                  mi = new JMenuItem(A4n.loadScript);                  mi = new JMenuItem(A4n.loadScript);
365                    mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, KeyEvent.CTRL_MASK));
366                  mi.setIcon(null);                  mi.setIcon(null);
367                  m.add(mi);                  m.add(mi);
368                                    
369                  String s = preferences().getStringProperty(RECENT_LSCP_SCRIPTS);                  String[] list = preferences().getStringListProperty(RECENT_LSCP_SCRIPTS);
370                  BufferedReader br = new BufferedReader(new StringReader(s));                  for(String s : list) recentScripts.add(s);
                   
                 try {  
                         s = br.readLine();  
                         while(s != null) {  
                                 recentScripts.add(s);  
                                 s = br.readLine();  
                         }  
                 } catch(Exception x) {  
                         CC.getLogger().log(Level.INFO, HF.getErrorMessage(x), x);  
                 }  
371                                    
372                  updateRecentScriptsMenu();                  updateRecentScriptsMenu();
373                                    
# Line 389  MainFrame extends org.jsampler.view.JSMa Line 375  MainFrame extends org.jsampler.view.JSMa
375                                    
376                  m.addSeparator();                  m.addSeparator();
377                                    
378                    mi = new JMenuItem(a4n.changeBackend);
379                    mi.setIcon(null);
380                    mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B, KeyEvent.CTRL_MASK));
381                    m.add(mi);
382                    
383                    m.addSeparator();
384                    
385                  mi = new JMenuItem(i18n.getMenuLabel("actions.exit"));                  mi = new JMenuItem(i18n.getMenuLabel("actions.exit"));
386                  m.add(mi);                  m.add(mi);
387                  mi.addActionListener(new ActionListener() {                  mi.addActionListener(new ActionListener() {
# Line 527  MainFrame extends org.jsampler.view.JSMa Line 520  MainFrame extends org.jsampler.view.JSMa
520                  );                  );
521                  m.add(mi);                  m.add(mi);
522                                    
523                  mi = new JMenuItem(A4n.duplicateChannels);                  mi = new JMenuItem(a4n.duplicateChannels);
524                  mi.setIcon(null);                  mi.setIcon(null);
525                  m.add(mi);                  m.add(mi);
526                                    
527                  m.addSeparator();                  m.addSeparator();
528                                    
529                  mi = new JMenuItem(A4n.moveChannelsOnTop);                  mi = new JMenuItem(a4n.moveChannelsOnTop);
530                  mi.setIcon(null);                  mi.setIcon(null);
531                  mi.setAccelerator(KeyStroke.getKeyStroke (                  mi.setAccelerator(KeyStroke.getKeyStroke (
532                          KeyEvent.VK_UP, KeyEvent.ALT_MASK | KeyEvent.SHIFT_MASK                          KeyEvent.VK_UP, KeyEvent.ALT_MASK | KeyEvent.SHIFT_MASK
533                  ));                  ));
534                  m.add(mi);                  m.add(mi);
535                                    
536                  mi = new JMenuItem(A4n.moveChannelsUp);                  mi = new JMenuItem(a4n.moveChannelsUp);
537                  mi.setIcon(null);                  mi.setIcon(null);
538                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_UP, KeyEvent.ALT_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_UP, KeyEvent.ALT_MASK));
539                  m.add(mi);                  m.add(mi);
540                                    
541                  mi = new JMenuItem(A4n.moveChannelsDown);                  mi = new JMenuItem(a4n.moveChannelsDown);
542                  mi.setIcon(null);                  mi.setIcon(null);
543                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, KeyEvent.ALT_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, KeyEvent.ALT_MASK));
544                  m.add(mi);                  m.add(mi);
545                                    
546                  mi = new JMenuItem(A4n.moveChannelsAtBottom);                  mi = new JMenuItem(a4n.moveChannelsAtBottom);
547                  mi.setIcon(null);                  mi.setIcon(null);
548                  mi.setAccelerator(KeyStroke.getKeyStroke (                  mi.setAccelerator(KeyStroke.getKeyStroke (
549                          KeyEvent.VK_DOWN, KeyEvent.ALT_MASK | KeyEvent.SHIFT_MASK                          KeyEvent.VK_DOWN, KeyEvent.ALT_MASK | KeyEvent.SHIFT_MASK
# Line 562  MainFrame extends org.jsampler.view.JSMa Line 555  MainFrame extends org.jsampler.view.JSMa
555                                    
556                  m.addSeparator();                  m.addSeparator();
557                                    
558                  mi = new JMenuItem(A4n.selectAllChannels);                  mi = new JMenuItem(a4n.selectAllChannels);
559                  mi.setIcon(null);                  mi.setIcon(null);
560                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, KeyEvent.CTRL_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, KeyEvent.CTRL_MASK));
561                  m.add(mi);                  m.add(mi);
562                                    
563                  mi = new JMenuItem(A4n.deselectChannels);                  mi = new JMenuItem(a4n.deselectChannels);
564                  mi.setIcon(null);                  mi.setIcon(null);
565                  mi.setAccelerator(KeyStroke.getKeyStroke (                  mi.setAccelerator(KeyStroke.getKeyStroke (
566                          KeyEvent.VK_A, KeyEvent.CTRL_MASK | KeyEvent.SHIFT_MASK                          KeyEvent.VK_A, KeyEvent.CTRL_MASK | KeyEvent.SHIFT_MASK
# Line 576  MainFrame extends org.jsampler.view.JSMa Line 569  MainFrame extends org.jsampler.view.JSMa
569                                    
570                  m.addSeparator();                  m.addSeparator();
571                                    
572                  mi = new JMenuItem(A4n.removeChannels);                  mi = new JMenuItem(a4n.removeChannels);
573                  mi.setIcon(null);                  mi.setIcon(null);
574                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, KeyEvent.SHIFT_MASK));                  mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, KeyEvent.SHIFT_MASK));
575                  m.add(mi);                  m.add(mi);
# Line 638  MainFrame extends org.jsampler.view.JSMa Line 631  MainFrame extends org.jsampler.view.JSMa
631                  mi.setIcon(null);                  mi.setIcon(null);
632                  m.add(mi);                  m.add(mi);
633                                    
634                    final JMenuItem mi2 = new JMenuItem(i18n.getMenuLabel("window.backendLog"));
635                    m.add(mi2);
636                    mi2.addActionListener(new ActionListener() {
637                            public void
638                            actionPerformed(ActionEvent e) {
639                                    if(getBackendLogFrame().isVisible()) {
640                                            getBackendLogFrame().setVisible(false);
641                                    }
642                                    
643                                    getBackendLogFrame().setVisible(true);
644                            }
645                    });
646                    
647                    mi2.setEnabled(CC.getBackendProcess() != null);
648                    
649                    CC.addBackendProcessListener(new ActionListener() {
650                            public void
651                            actionPerformed(ActionEvent e) {
652                                    mi2.setEnabled(CC.getBackendProcess() != null);
653                            }
654                    });
655                    
656                                    
657                  // Help                  // Help
658                  m = new JMenu(i18n.getMenuLabel("help"));                  m = new JMenu(i18n.getMenuLabel("help"));
                 menuBar.add(m);  
659                                    
660                  mi = new JMenuItem(A4n.helpAbout);                  mi = new JMenuItem(A4n.helpAbout);
661                  mi.setIcon(null);                  mi.setIcon(null);
662                  m.add(mi);                  m.add(mi);
663                    
664                    m.addSeparator();
665                    
666                    mi = new JMenuItem(a4n.browseOnlineTutorial);
667                    mi.setIcon(null);
668                    m.add(mi);
669                    
670                    menuBar.add(m);
671          }          }
672                    
673          private class RecentScriptHandler implements ActionListener {          private class RecentScriptHandler implements ActionListener {
# Line 653  MainFrame extends org.jsampler.view.JSMa Line 675  MainFrame extends org.jsampler.view.JSMa
675                                    
676                  RecentScriptHandler(String script) { this.script = script; }                  RecentScriptHandler(String script) { this.script = script; }
677                                    
678                    @Override
679                  public void                  public void
680                  actionPerformed(ActionEvent e) {  runScript(script); }                  actionPerformed(ActionEvent e) {  runScript(script); }
681          }          }
# Line 783  MainFrame extends org.jsampler.view.JSMa Line 806  MainFrame extends org.jsampler.view.JSMa
806          protected LSConsoleModel          protected LSConsoleModel
807          getLSConsoleModel() { return lsConsolePane.getModel(); }          getLSConsoleModel() { return lsConsolePane.getModel(); }
808                    
809            protected JSBackendLogFrame
810            getBackendLogFrame() { return backendLogFrame; }
811            
812          /**          /**
813           * Sets the text color of the LS Console.           * Sets the text color of the LS Console.
814           * @param c The text color of the LS Console.           * @param c The text color of the LS Console.
# Line 834  MainFrame extends org.jsampler.view.JSMa Line 860  MainFrame extends org.jsampler.view.JSMa
860           * Adds the specified <code>JSChannelsPane</code> to the view.           * Adds the specified <code>JSChannelsPane</code> to the view.
861           * @param chnPane The <code>JSChannelsPane</code> to be added.           * @param chnPane The <code>JSChannelsPane</code> to be added.
862           */           */
863            @Override
864          public void          public void
865          addChannelsPane(JSChannelsPane chnPane) {          addChannelsPane(JSChannelsPane chnPane) {
866                  insertChannelsPane(chnPane, getChannelsPaneCount());                  insertChannelsPane(chnPane, getChannelsPaneCount());
867          }          }
868                    
869            @Override
870          public void          public void
871          insertChannelsPane(JSChannelsPane chnPane, int idx) {          insertChannelsPane(JSChannelsPane chnPane, int idx) {
872                  chnPane.addListSelectionListener(this);                  chnPane.addListSelectionListener(this);
# Line 863  MainFrame extends org.jsampler.view.JSMa Line 891  MainFrame extends org.jsampler.view.JSMa
891           * Gets the <code>JSChannelsPane</code> that is currently shown.           * Gets the <code>JSChannelsPane</code> that is currently shown.
892           * @return The currently shown <code>JSChannelsPane</code>.           * @return The currently shown <code>JSChannelsPane</code>.
893           */           */
894            @Override
895          public JSChannelsPane          public JSChannelsPane
896          getSelectedChannelsPane() {          getSelectedChannelsPane() {
897                  if(getChannelsPaneList().size() == 1) return getChannelsPane(0);                  if(getChannelsPaneList().size() == 1) return getChannelsPane(0);
# Line 873  MainFrame extends org.jsampler.view.JSMa Line 902  MainFrame extends org.jsampler.view.JSMa
902           * Sets the <code>JSChannelsPane</code> to be selected.           * Sets the <code>JSChannelsPane</code> to be selected.
903           * @param pane The <code>JSChannelsPane</code> to be shown.           * @param pane The <code>JSChannelsPane</code> to be shown.
904           */           */
905            @Override
906          public void          public void
907          setSelectedChannelsPane(JSChannelsPane pane) {          setSelectedChannelsPane(JSChannelsPane pane) {
908                  if(getChannelsPaneList().size() == 1) return;                  if(getChannelsPaneList().size() == 1) return;
909                  tabbedPane.setSelectedComponent(pane);                  tabbedPane.setSelectedComponent(pane);
910                    fireChannelsPaneSelectionChanged();
911          }          }
912                    
913          /**          /**
# Line 885  MainFrame extends org.jsampler.view.JSMa Line 916  MainFrame extends org.jsampler.view.JSMa
916           * @return <code>true</code> if the specified code>JSChannelsPane</code>           * @return <code>true</code> if the specified code>JSChannelsPane</code>
917           * is actually removed from the view, <code>false</code> otherwise.           * is actually removed from the view, <code>false</code> otherwise.
918           */           */
919            @Override
920          public boolean          public boolean
921          removeChannelsPane(JSChannelsPane chnPane) {          removeChannelsPane(JSChannelsPane chnPane) {
922                  chnPane.removeListSelectionListener(this);                  chnPane.removeListSelectionListener(this);
# Line 931  MainFrame extends org.jsampler.view.JSMa Line 963  MainFrame extends org.jsampler.view.JSMa
963          private void          private void
964          checkChannelSelection(JSChannelsPane pane) {          checkChannelSelection(JSChannelsPane pane) {
965                  if(!pane.hasSelectedChannel()) {                  if(!pane.hasSelectedChannel()) {
966                          A4n.duplicateChannels.putValue (                          a4n.duplicateChannels.putValue (
967                                  Action.NAME, i18n.getMenuLabel("channels.duplicate")                                  Action.NAME, i18n.getMenuLabel("channels.duplicate")
968                          );                          );
969                          A4n.duplicateChannels.setEnabled(false);                          a4n.duplicateChannels.setEnabled(false);
970                                                                    
971                          A4n.removeChannels.putValue (                          a4n.removeChannels.putValue (
972                                  Action.NAME, i18n.getMenuLabel("channels.RemoveChannel")                                  Action.NAME, i18n.getMenuLabel("channels.RemoveChannel")
973                          );                          );
974                          A4n.removeChannels.setEnabled(false);                          a4n.removeChannels.setEnabled(false);
975                                                    
976                          tabsMenu.setEnabled(false);                          tabsMenu.setEnabled(false);
977                                                    
978                          A4n.moveChannelsOnTop.setEnabled(false);                          a4n.moveChannelsOnTop.setEnabled(false);
979                          A4n.moveChannelsUp.setEnabled(false);                          a4n.moveChannelsUp.setEnabled(false);
980                          A4n.moveChannelsDown.setEnabled(false);                          a4n.moveChannelsDown.setEnabled(false);
981                          A4n.moveChannelsAtBottom.setEnabled(false);                          a4n.moveChannelsAtBottom.setEnabled(false);
982                                                    
983                          return;                          return;
984                  }                  }
985                                    
986                  A4n.duplicateChannels.setEnabled(true);                  a4n.duplicateChannels.setEnabled(true);
987                  A4n.removeChannels.setEnabled(true);                  a4n.removeChannels.setEnabled(true);
988                                    
989                  if(getChannelsPaneCount() > 1) tabsMenu.setEnabled(true);                  if(getChannelsPaneCount() > 1) tabsMenu.setEnabled(true);
990                                    
991                  if(pane.getSelectedChannelCount() > 1) {                  if(pane.getSelectedChannelCount() > 1) {
992                          A4n.duplicateChannels.putValue (                          a4n.duplicateChannels.putValue (
993                                  Action.NAME, i18n.getMenuLabel("channels.duplicateChannels")                                  Action.NAME, i18n.getMenuLabel("channels.duplicateChannels")
994                          );                          );
995                          A4n.removeChannels.putValue (                          a4n.removeChannels.putValue (
996                                  Action.NAME, i18n.getMenuLabel("channels.RemoveChannels")                                  Action.NAME, i18n.getMenuLabel("channels.RemoveChannels")
997                          );                          );
998                  } else {                  } else {
999                          A4n.duplicateChannels.putValue (                          a4n.duplicateChannels.putValue (
1000                                  Action.NAME, i18n.getMenuLabel("channels.duplicate")                                  Action.NAME, i18n.getMenuLabel("channels.duplicate")
1001                          );                          );
1002                          A4n.removeChannels.putValue (                          a4n.removeChannels.putValue (
1003                                  Action.NAME, i18n.getMenuLabel("channels.RemoveChannel")                                  Action.NAME, i18n.getMenuLabel("channels.RemoveChannel")
1004                          );                          );
1005                  }                  }
1006                                    
1007                  A4n.moveChannelsOnTop.setEnabled(false);                  a4n.moveChannelsOnTop.setEnabled(false);
1008                  A4n.moveChannelsUp.setEnabled(true);                  a4n.moveChannelsUp.setEnabled(true);
1009                  A4n.moveChannelsDown.setEnabled(true);                  a4n.moveChannelsDown.setEnabled(true);
1010                  A4n.moveChannelsAtBottom.setEnabled(false);                  a4n.moveChannelsAtBottom.setEnabled(false);
1011                                    
1012                  JSChannel[] chns = pane.getSelectedChannels();                  JSChannel[] chns = pane.getSelectedChannels();
1013                                    
1014                  for(int i = 0; i < chns.length; i++) {                  for(int i = 0; i < chns.length; i++) {
1015                          if(pane.getChannel(i) != chns[i]) {                          if(pane.getChannel(i) != chns[i]) {
1016                                  A4n.moveChannelsOnTop.setEnabled(true);                                  a4n.moveChannelsOnTop.setEnabled(true);
1017                                  break;                                  break;
1018                          }                          }
1019                  }                  }
1020                                    
1021                  if(chns[0] == pane.getFirstChannel()) A4n.moveChannelsUp.setEnabled(false);                  if(chns[0] == pane.getFirstChannel()) a4n.moveChannelsUp.setEnabled(false);
1022                                    
1023                  if(chns[chns.length - 1] == pane.getLastChannel())                  if(chns[chns.length - 1] == pane.getLastChannel())
1024                          A4n.moveChannelsDown.setEnabled(false);                          a4n.moveChannelsDown.setEnabled(false);
1025                                    
1026                  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--) {
1027                          if(pane.getChannel(j) != chns[i]) {                          if(pane.getChannel(j) != chns[i]) {
1028                                  A4n.moveChannelsAtBottom.setEnabled(true);                                  a4n.moveChannelsAtBottom.setEnabled(true);
1029                                  break;                                  break;
1030                          }                          }
1031                  }                  }
# Line 1026  MainFrame extends org.jsampler.view.JSMa Line 1058  MainFrame extends org.jsampler.view.JSMa
1058          public JMenu          public JMenu
1059          getTabsMenu() { return tabsMenu; }          getTabsMenu() { return tabsMenu; }
1060                    
1061            @Override
1062          public void          public void
1063          stateChanged(ChangeEvent e) {          stateChanged(ChangeEvent e) {
1064                  updateTabsMenu();                  updateTabsMenu();
# Line 1033  MainFrame extends org.jsampler.view.JSMa Line 1066  MainFrame extends org.jsampler.view.JSMa
1066                  checkTabSelection();                  checkTabSelection();
1067          }          }
1068                    
1069            @Override
1070          public void          public void
1071          valueChanged(ListSelectionEvent e) {          valueChanged(ListSelectionEvent e) {
1072                  if(e.getValueIsAdjusting()) return;                  if(e.getValueIsAdjusting()) return;
# Line 1120  MainFrame extends org.jsampler.view.JSMa Line 1154  MainFrame extends org.jsampler.view.JSMa
1154                  runScript(fc.getSelectedFile());                  runScript(fc.getSelectedFile());
1155          }          }
1156                    
1157          private void          @Override
1158            public void
1159          runScript(String script) { runScript(new File(script)); }          runScript(String script) { runScript(new File(script)); }
1160                    
1161          private void          private void
# Line 1181  MainFrame extends org.jsampler.view.JSMa Line 1216  MainFrame extends org.jsampler.view.JSMa
1216                  recentScriptsMenu.setEnabled(recentScripts.size() != 0);                  recentScriptsMenu.setEnabled(recentScripts.size() != 0);
1217          }          }
1218                    
1219            @Override
1220          public void          public void
1221          installJSamplerHome() {          installJSamplerHome() {
1222                  JSamplerHomeChooser chooser = new JSamplerHomeChooser(this);                  JSamplerHomeChooser chooser = new JSamplerHomeChooser(this);
# Line 1190  MainFrame extends org.jsampler.view.JSMa Line 1226  MainFrame extends org.jsampler.view.JSMa
1226                  CC.changeJSamplerHome(chooser.getJSamplerHome());                  CC.changeJSamplerHome(chooser.getJSamplerHome());
1227          }          }
1228                    
1229            @Override
1230          public void          public void
1231          showDetailedErrorMessage(Frame owner, String err, String details) {          showDetailedErrorMessage(Frame owner, String err, String details) {
1232                  new DetailedErrorDlg(owner, i18n.getError("error"), err, details).setVisible(true);                  JSDetailedErrorDlg dlg = new JSDetailedErrorDlg (
1233                            owner, Res.iconWarning32, i18n.getError("error"), err, details
1234                    );
1235                    dlg.setVisible(true);
1236          }          }
1237                    
1238            @Override
1239          public void          public void
1240          showDetailedErrorMessage(Dialog owner, String err, String details) {          showDetailedErrorMessage(Dialog owner, String err, String details) {
1241                  new DetailedErrorDlg(owner, i18n.getError("error"), err, details).setVisible(true);                  JSDetailedErrorDlg dlg = new JSDetailedErrorDlg (
1242                            owner, Res.iconWarning32, i18n.getError("error"), err, details
1243                    );
1244                    dlg.setVisible(true);
1245            }
1246            
1247            /**
1248             * Gets the server address to which to connect. If the server should be
1249             * manually selected, a dialog asking the user to choose a server is displayed.
1250             */
1251            @Override
1252            public Server
1253            getServer() {
1254                    boolean b = preferences().getBoolProperty(MANUAL_SERVER_SELECT_ON_STARTUP);
1255                    return getServer(b);
1256            }
1257            
1258            /**
1259             * Gets the server address to which to connect. If the server should be
1260             * manually selected, a dialog asking the user to choose a server is displayed.
1261             * @param manualSelect Determines whether the server should be manually selected.
1262             */
1263            @Override
1264            public Server
1265            getServer(boolean manualSelect) {
1266                    if(manualSelect) {
1267                            JSConnectDlg dlg = new JSConnectDlg();
1268                            dlg.setVisible(true);
1269                            return dlg.getSelectedServer();
1270                    }
1271                    
1272                    int i = preferences().getIntProperty(SERVER_INDEX);
1273                    int size = CC.getServerList().getServerCount();
1274                    if(size == 0) return null;
1275                    if(i >= size) return CC.getServerList().getServer(0);
1276                    
1277                    return CC.getServerList().getServer(i);
1278          }          }
1279  }  }

Legend:
Removed from v.1285  
changed lines
  Added in v.1818

  ViewVC Help
Powered by ViewVC