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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 842 - (hide annotations) (download)
Thu Mar 16 18:08:34 2006 UTC (18 years, 1 month ago) by iliev
File size: 18026 byte(s)
Updating to version 0.2a

1 iliev 787 /*
2     * JSampler - a java front-end for LinuxSampler
3     *
4     * Copyright (C) 2005 Grigor Kirilov Iliev
5     *
6     * This file is part of JSampler.
7     *
8     * JSampler is free software; you can redistribute it and/or modify
9     * it under the terms of the GNU General Public License version 2
10     * as published by the Free Software Foundation.
11     *
12     * JSampler is distributed in the hope that it will be useful,
13     * but WITHOUT ANY WARRANTY; without even the implied warranty of
14     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15     * GNU General Public License for more details.
16     *
17     * You should have received a copy of the GNU General Public License
18     * along with JSampler; if not, write to the Free Software
19     * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20     * MA 02111-1307 USA
21     */
22    
23     package org.jsampler.view.classic;
24    
25     import java.awt.BorderLayout;
26     import java.awt.Dimension;
27    
28     import java.awt.event.ActionEvent;
29     import java.awt.event.ActionListener;
30     import java.awt.event.KeyEvent;
31    
32 iliev 842 import java.util.logging.Level;
33 iliev 787 import java.util.Vector;
34    
35     import javax.swing.Action;
36     import javax.swing.ImageIcon;
37     import javax.swing.JCheckBoxMenuItem;
38     import javax.swing.JMenu;
39     import javax.swing.JMenuBar;
40     import javax.swing.JMenuItem;
41     import javax.swing.JPanel;
42     import javax.swing.JSplitPane;
43     import javax.swing.JTabbedPane;
44     import javax.swing.KeyStroke;
45    
46     import javax.swing.event.ChangeEvent;
47     import javax.swing.event.ChangeListener;
48     import javax.swing.event.ListSelectionEvent;
49     import javax.swing.event.ListSelectionListener;
50    
51     import net.sf.juife.NavigationPage;
52     import net.sf.juife.NavigationPane;
53    
54     import org.jsampler.CC;
55 iliev 842 import org.jsampler.Prefs;
56 iliev 787
57     import org.jsampler.view.JSChannel;
58     import org.jsampler.view.JSChannelsPane;
59    
60     import static org.jsampler.view.classic.ClassicI18n.i18n;
61     import static org.jsampler.view.classic.LeftPane.getLeftPane;
62    
63    
64     /**
65     *
66     * @author Grigor Iliev
67     */
68     public class
69     MainFrame extends org.jsampler.view.JSMainFrame implements ChangeListener, ListSelectionListener {
70     public static ImageIcon applicationIcon = null;
71    
72     static {
73     String s = "org/jsampler/view/classic/res/icons/app-icon.png";
74     java.net.URL url = ClassLoader.getSystemClassLoader().getResource(s);
75     if(url != null) applicationIcon = new ImageIcon(url);
76     }
77    
78     private final Toolbar toolbar = new Toolbar();
79     private final Statusbar statusbar = new Statusbar();
80     private final JMenuBar menuBar = new JMenuBar();
81    
82     private final JSplitPane splitPane;
83    
84     private final JPanel mainPane = new JPanel();
85     private final JPanel channelsPane = new JPanel(new BorderLayout());
86    
87     private final JTabbedPane tabbedPane =
88     new JTabbedPane(JTabbedPane.BOTTOM, JTabbedPane.SCROLL_TAB_LAYOUT);
89     private final JMenu tabsMenu = new JMenu(i18n.getMenuLabel("channels.MoveToTab"));
90     private final Vector<JMenuItem> miList = new Vector<JMenuItem>();
91    
92     /** Creates a new instance of JSMainFrame */
93     public
94     MainFrame() {
95     setTitle(i18n.getLabel("MainFrame.title"));
96    
97     getContentPane().add(toolbar, BorderLayout.NORTH);
98     getContentPane().add(mainPane);
99    
100     mainPane.setLayout(new BorderLayout());
101     mainPane.add(statusbar, BorderLayout.SOUTH);
102    
103     ChannelsPane p = new ChannelsPane("Untitled");
104     p.addListSelectionListener(this);
105     getChannelsPaneList().add(p);
106     miList.add(new JMenuItem(new A4n.MoveChannelsTo(p)));
107    
108     channelsPane.add(getChannelsPane(0));
109    
110     splitPane = new JSplitPane (
111     JSplitPane.HORIZONTAL_SPLIT,
112     true, // continuousLayout
113     getLeftPane(),
114     channelsPane
115     );
116    
117     splitPane.setOneTouchExpandable(true);
118    
119     mainPane.add(splitPane);
120    
121     if(applicationIcon != null) setIconImage(applicationIcon.getImage());
122    
123 iliev 842 initMainFrame();
124 iliev 787 pack();
125    
126 iliev 842 if(Prefs.getSaveWindowProperties()) setSavedSize();
127     else setDefaultSize();
128     }
129    
130     private void
131     initMainFrame() {
132     addMenu();
133     handleEvents();
134     }
135    
136     private void
137     setDefaultSize() {
138 iliev 787 Dimension dimension = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
139     double width = dimension.getWidth();
140     double height = dimension.getHeight();
141     setBounds(50, 100, (int) width - 100, (int) height - 200);
142     }
143    
144     private void
145 iliev 842 setSavedSize() {
146     String s = Prefs.getWindowSizeAndLocation();
147     if(s == null) {
148     setDefaultSize();
149     return;
150     }
151    
152     try {
153     int i = s.indexOf(',');
154     int x = Integer.parseInt(s.substring(0, i));
155    
156     s = s.substring(i + 1);
157     i = s.indexOf(',');
158     int y = Integer.parseInt(s.substring(0, i));
159    
160     s = s.substring(i + 1);
161     i = s.indexOf(',');
162     int width = Integer.parseInt(s.substring(0, i));
163    
164     s = s.substring(i + 1);
165     int height = Integer.parseInt(s);
166    
167     setBounds(x, y, width, height);
168     } catch(Exception x) {
169     String msg = "Parsing of window size and location string failed";
170     CC.getLogger().log(Level.INFO, msg, x);
171     setDefaultSize();
172     }
173    
174     if(Prefs.getWindowMaximized())
175     setExtendedState(getExtendedState() | MAXIMIZED_BOTH);
176 iliev 787 }
177    
178     private void
179     addMenu() {
180     JMenu m;
181     JMenu submenu;
182     JMenuItem mi;
183    
184     setJMenuBar(menuBar);
185    
186     // Actions
187     m = new JMenu(i18n.getMenuLabel("actions"));
188     menuBar.add(m);
189    
190     mi = new JMenuItem(A4n.connect);
191     mi.setIcon(null);
192     //mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_MASK));
193     m.add(mi);
194    
195     mi = new JMenuItem(A4n.refresh);
196     mi.setIcon(null);
197     mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0));
198     m.add(mi);
199    
200     mi = new JMenuItem(A4n.resetSampler);
201     mi.setIcon(null);
202     m.add(mi);
203    
204     mi = new JMenuItem(A4n.samplerInfo);
205     mi.setIcon(null);
206     m.add(mi);
207    
208     m.addSeparator();
209    
210     mi = new JMenuItem(i18n.getMenuLabel("actions.exit"));
211     m.add(mi);
212     mi.addActionListener(new ActionListener() {
213     public void
214     actionPerformed(ActionEvent e) { CC.cleanExit(); }
215     });
216    
217     // Edit
218     m = new JMenu(i18n.getMenuLabel("edit"));
219     menuBar.add(m);
220    
221     m.addSeparator();
222    
223     mi = new JMenuItem(A4n.preferences);
224     mi.setIcon(null);
225     mi.setAccelerator(KeyStroke.getKeyStroke (
226     KeyEvent.VK_P, KeyEvent.CTRL_MASK | KeyEvent.SHIFT_MASK
227     ));
228     m.add(mi);
229    
230     // View
231     m = new JMenu(i18n.getMenuLabel("view"));
232     menuBar.add(m);
233    
234     final JCheckBoxMenuItem cbmi =
235     new JCheckBoxMenuItem(i18n.getMenuLabel("view.toolbar"));
236    
237     m.add(cbmi);
238     cbmi.addActionListener(new ActionListener() {
239     public void
240 iliev 842 actionPerformed(ActionEvent e) { showToolbar(cbmi.getState()); }
241 iliev 787 });
242    
243 iliev 842 boolean b = ClassicPrefs.shouldShowToolbar();
244     cbmi.setSelected(b);
245     showToolbar(b);
246    
247 iliev 787 final JCheckBoxMenuItem cbmi1 =
248     new JCheckBoxMenuItem(i18n.getMenuLabel("view.leftPane"));
249    
250     m.add(cbmi1);
251     cbmi1.addActionListener(new ActionListener() {
252     public void
253     actionPerformed(ActionEvent e) { showLeftPane(cbmi1.getState()); }
254     });
255    
256 iliev 842 b = ClassicPrefs.shouldShowLeftPane();
257     cbmi1.setSelected(b);
258     showLeftPane(b);
259    
260 iliev 787 final JCheckBoxMenuItem cbmi2 =
261     new JCheckBoxMenuItem(i18n.getMenuLabel("view.statusbar"));
262    
263     m.add(cbmi2);
264     cbmi2.addActionListener(new ActionListener() {
265     public void
266 iliev 842 actionPerformed(ActionEvent e) { showStatusbar(cbmi2.getState()); }
267 iliev 787 });
268 iliev 842 b = ClassicPrefs.shouldShowStatusbar();
269     cbmi2.setSelected(b);
270     showStatusbar(b);
271 iliev 787
272     // Channels
273     m = new JMenu(i18n.getMenuLabel("channels"));
274     menuBar.add(m);
275    
276     mi = new JMenuItem(A4n.newChannel);
277     mi.setIcon(null);
278     mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_MASK));
279     m.add(mi);
280    
281     mi = new JMenuItem(A4n.newChannelWizard);
282     mi.setIcon(null);
283     mi.setAccelerator(KeyStroke.getKeyStroke (
284     KeyEvent.VK_N, KeyEvent.CTRL_MASK | KeyEvent.SHIFT_MASK)
285     );
286     m.add(mi);
287    
288     mi = new JMenuItem(A4n.duplicateChannels);
289     mi.setIcon(null);
290     m.add(mi);
291    
292     m.addSeparator();
293    
294     mi = new JMenuItem(A4n.moveChannelsOnTop);
295     mi.setIcon(null);
296     mi.setAccelerator(KeyStroke.getKeyStroke (
297     KeyEvent.VK_UP, KeyEvent.ALT_MASK | KeyEvent.SHIFT_MASK
298     ));
299     m.add(mi);
300    
301     mi = new JMenuItem(A4n.moveChannelsUp);
302     mi.setIcon(null);
303     mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_UP, KeyEvent.ALT_MASK));
304     m.add(mi);
305    
306     mi = new JMenuItem(A4n.moveChannelsDown);
307     mi.setIcon(null);
308     mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, KeyEvent.ALT_MASK));
309     m.add(mi);
310    
311     mi = new JMenuItem(A4n.moveChannelsAtBottom);
312     mi.setIcon(null);
313     mi.setAccelerator(KeyStroke.getKeyStroke (
314     KeyEvent.VK_DOWN, KeyEvent.ALT_MASK | KeyEvent.SHIFT_MASK
315     ));
316     m.add(mi);
317    
318     tabsMenu.setEnabled(false);
319     m.add(tabsMenu);
320    
321     m.addSeparator();
322    
323     mi = new JMenuItem(A4n.selectAllChannels);
324     mi.setIcon(null);
325     mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, KeyEvent.CTRL_MASK));
326     m.add(mi);
327    
328     mi = new JMenuItem(A4n.deselectChannels);
329     mi.setIcon(null);
330     mi.setAccelerator(KeyStroke.getKeyStroke (
331     KeyEvent.VK_A, KeyEvent.CTRL_MASK | KeyEvent.SHIFT_MASK
332     ));
333     m.add(mi);
334    
335     m.addSeparator();
336    
337     mi = new JMenuItem(A4n.removeChannels);
338     mi.setIcon(null);
339     mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, KeyEvent.SHIFT_MASK));
340     m.add(mi);
341    
342    
343     // Tabs
344     m = new JMenu(i18n.getMenuLabel("tabs"));
345     menuBar.add(m);
346    
347     mi = new JMenuItem(A4n.newChannelsTab);
348     mi.setIcon(null);
349     mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, KeyEvent.CTRL_MASK));
350     m.add(mi);
351    
352     mi = new JMenuItem(A4n.editTabTitle);
353     mi.setIcon(null);
354     mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0));
355     m.add(mi);
356    
357     m.addSeparator();
358    
359     mi = new JMenuItem(A4n.moveTab2Beginning);
360     mi.setIcon(null);
361     mi.setAccelerator(KeyStroke.getKeyStroke (
362     KeyEvent.VK_LEFT, KeyEvent.ALT_MASK | KeyEvent.SHIFT_MASK
363     ));
364     m.add(mi);
365    
366     mi = new JMenuItem(A4n.moveTab2Left);
367     mi.setIcon(null);
368     mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, KeyEvent.ALT_MASK));
369     m.add(mi);
370    
371     mi = new JMenuItem(A4n.moveTab2Right);
372     mi.setIcon(null);
373     mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, KeyEvent.ALT_MASK));
374     m.add(mi);
375    
376     mi = new JMenuItem(A4n.moveTab2End);
377     mi.setIcon(null);
378     mi.setAccelerator(KeyStroke.getKeyStroke (
379     KeyEvent.VK_RIGHT, KeyEvent.ALT_MASK | KeyEvent.SHIFT_MASK
380     ));
381     m.add(mi);
382    
383     m.addSeparator();
384    
385     mi = new JMenuItem(A4n.closeChannelsTab);
386     mi.setIcon(null);
387     mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W, KeyEvent.CTRL_MASK));
388     m.add(mi);
389    
390    
391     // Help
392     m = new JMenu(i18n.getMenuLabel("help"));
393     menuBar.add(m);
394    
395     mi = new JMenuItem(A4n.helpAbout);
396     mi.setIcon(null);
397     m.add(mi);
398     }
399    
400     private void
401 iliev 842 handleEvents() {
402     tabbedPane.addChangeListener(this);
403     }
404    
405     private void
406     showToolbar(boolean b) {
407     if(b) getContentPane().add(toolbar, BorderLayout.NORTH);
408     else getContentPane().remove(toolbar);
409    
410     ClassicPrefs.setShowToolbar(b);
411    
412     validate();
413     repaint();
414     }
415    
416     private void
417     showStatusbar(boolean b) {
418     ClassicPrefs.setShowStatusbar(b);
419     statusbar.setVisible(b);
420     }
421    
422     private void
423 iliev 787 showLeftPane(boolean b) {
424 iliev 842 ClassicPrefs.setShowLeftPane(b);
425    
426 iliev 787 mainPane.remove(splitPane);
427     mainPane.remove(channelsPane);
428    
429     if(b) {
430     splitPane.setRightComponent(channelsPane);
431     mainPane.add(splitPane);
432     } else {
433     mainPane.add(channelsPane);
434     }
435    
436     validate();
437     repaint();
438     }
439    
440     public void
441     addChannelsPane(JSChannelsPane chnPane) {
442     insertChannelsPane(chnPane, getChannelsPaneCount());
443     }
444    
445     public void
446     insertChannelsPane(JSChannelsPane chnPane, int idx) {
447     chnPane.addListSelectionListener(this);
448    
449     if(getChannelsPaneCount() == 1) {
450     channelsPane.remove(getChannelsPane(0));
451     channelsPane.add(tabbedPane);
452     tabbedPane.addTab(getChannelsPane(0).getTitle(), getChannelsPane(0));
453     A4n.closeChannelsTab.setEnabled(true);
454     A4n.editTabTitle.setEnabled(true);
455     }
456    
457     getChannelsPaneList().insertElementAt(chnPane, idx);
458     tabbedPane.insertTab(chnPane.getTitle(), null, chnPane, null, idx);
459     tabbedPane.setSelectedComponent(chnPane);
460     miList.insertElementAt(new JMenuItem(new A4n.MoveChannelsTo(chnPane)), idx);
461    
462     updateTabsMenu();
463     }
464    
465     public JSChannelsPane
466     getSelectedChannelsPane() {
467     if(getChannelsPaneList().size() == 1) return getChannelsPane(0);
468     return (JSChannelsPane)tabbedPane.getSelectedComponent();
469     }
470    
471     public void
472     setSelectedChannelsPane(JSChannelsPane pane) {
473     if(getChannelsPaneList().size() == 1) return;
474     tabbedPane.setSelectedComponent(pane);
475     }
476    
477     public boolean
478     removeChannelsPane(JSChannelsPane chnPane) {
479     chnPane.removeListSelectionListener(this);
480    
481     tabbedPane.remove(chnPane);
482     boolean b = super.removeChannelsPane(chnPane);
483     for(int i = 0; i < miList.size(); i++) {
484     A4n.MoveChannelsTo a = (A4n.MoveChannelsTo)miList.get(i).getAction();
485     if(a.getChannelsPane().equals(chnPane)) {
486     miList.remove(i);
487     break;
488     }
489     }
490    
491     updateTabsMenu();
492    
493     if(getChannelsPaneCount() == 1) {
494     A4n.closeChannelsTab.setEnabled(false);
495     A4n.editTabTitle.setEnabled(false);
496     tabbedPane.remove(getChannelsPane(0));
497     channelsPane.remove(tabbedPane);
498     channelsPane.add(getChannelsPane(0));
499     }
500    
501     return b;
502     }
503    
504     private void
505     updateTabsMenu() {
506     tabsMenu.removeAll();
507    
508     for(JMenuItem mi : miList) {
509     A4n.MoveChannelsTo a = (A4n.MoveChannelsTo)mi.getAction();
510     if(!a.getChannelsPane().equals(getSelectedChannelsPane())) tabsMenu.add(mi);
511     }
512    
513     }
514    
515     public void
516     updateTabTitle(JSChannelsPane chnPane) {
517     tabbedPane.setTitleAt(tabbedPane.getSelectedIndex(), chnPane.getTitle());
518     }
519    
520     private void
521     checkChannelSelection(JSChannelsPane pane) {
522     if(!pane.hasSelectedChannel()) {
523     A4n.duplicateChannels.putValue (
524     Action.NAME, i18n.getMenuLabel("channels.duplicate")
525     );
526     A4n.duplicateChannels.setEnabled(false);
527    
528     A4n.removeChannels.putValue (
529     Action.NAME, i18n.getMenuLabel("channels.RemoveChannel")
530     );
531     A4n.removeChannels.setEnabled(false);
532    
533     tabsMenu.setEnabled(false);
534    
535     A4n.moveChannelsOnTop.setEnabled(false);
536     A4n.moveChannelsUp.setEnabled(false);
537     A4n.moveChannelsDown.setEnabled(false);
538     A4n.moveChannelsAtBottom.setEnabled(false);
539    
540     return;
541     }
542    
543     A4n.duplicateChannels.setEnabled(true);
544     A4n.removeChannels.setEnabled(true);
545    
546     if(getChannelsPaneCount() > 1) tabsMenu.setEnabled(true);
547    
548     if(pane.getSelectedChannelCount() > 1) {
549     A4n.duplicateChannels.putValue (
550     Action.NAME, i18n.getMenuLabel("channels.duplicateChannels")
551     );
552     A4n.removeChannels.putValue (
553     Action.NAME, i18n.getMenuLabel("channels.RemoveChannels")
554     );
555     } else {
556     A4n.duplicateChannels.putValue (
557     Action.NAME, i18n.getMenuLabel("channels.duplicate")
558     );
559     A4n.removeChannels.putValue (
560     Action.NAME, i18n.getMenuLabel("channels.RemoveChannel")
561     );
562     }
563    
564     A4n.moveChannelsOnTop.setEnabled(false);
565     A4n.moveChannelsUp.setEnabled(true);
566     A4n.moveChannelsDown.setEnabled(true);
567     A4n.moveChannelsAtBottom.setEnabled(false);
568    
569     JSChannel[] chns = pane.getSelectedChannels();
570    
571     for(int i = 0; i < chns.length; i++) {
572     if(pane.getChannel(i) != chns[i]) {
573     A4n.moveChannelsOnTop.setEnabled(true);
574     break;
575     }
576     }
577    
578     if(chns[0] == pane.getFirstChannel()) A4n.moveChannelsUp.setEnabled(false);
579    
580     if(chns[chns.length - 1] == pane.getLastChannel())
581     A4n.moveChannelsDown.setEnabled(false);
582    
583     for(int i = chns.length - 1, j = pane.getChannelCount() - 1; i >= 0; i--, j--) {
584     if(pane.getChannel(j) != chns[i]) {
585     A4n.moveChannelsAtBottom.setEnabled(true);
586     break;
587     }
588     }
589     }
590    
591     private void
592     checkTabSelection() {
593     int si = tabbedPane.getSelectedIndex();
594    
595     if(si > 0) {
596     A4n.moveTab2Beginning.setEnabled(true);
597     A4n.moveTab2Left.setEnabled(true);
598     } else {
599     A4n.moveTab2Beginning.setEnabled(false);
600     A4n.moveTab2Left.setEnabled(false);
601     }
602    
603     if(si != -1 && si < tabbedPane.getTabCount() - 1) {
604     A4n.moveTab2Right.setEnabled(true);
605     A4n.moveTab2End.setEnabled(true);
606     } else {
607     A4n.moveTab2Right.setEnabled(false);
608     A4n.moveTab2End.setEnabled(false);
609     }
610     }
611    
612     /*public JTabbedPane
613     getTabbedPane() { return tabbedPane; }*/
614    
615     public JMenu
616     getTabsMenu() { return tabsMenu; }
617    
618     public void
619     stateChanged(ChangeEvent e) {
620     updateTabsMenu();
621     checkChannelSelection(getSelectedChannelsPane());
622     checkTabSelection();
623     }
624    
625     public void
626     valueChanged(ListSelectionEvent e) {
627     if(e.getValueIsAdjusting()) return;
628     if(e.getSource() != getSelectedChannelsPane()) return;
629    
630     checkChannelSelection(getSelectedChannelsPane());
631     }
632    
633     public void
634     moveTab2Beginning() {
635     int idx = tabbedPane.getSelectedIndex();
636     if(idx < 1) {
637     CC.getLogger().info("Can't move tab to beginning");
638     return;
639     }
640    
641     JSChannelsPane c = (JSChannelsPane)tabbedPane.getSelectedComponent();
642     if(getChannelsPane(idx) != c)
643     CC.getLogger().warning("Channels pane indices don't match");
644     removeChannelsPane(c);
645     insertChannelsPane(c, 0);
646     tabbedPane.setSelectedComponent(c);
647     }
648    
649     public void
650     moveTab2Left() {
651     int idx = tabbedPane.getSelectedIndex();
652     if(idx < 1) {
653     CC.getLogger().info("Can't move tab to left");
654     return;
655     }
656    
657    
658     JSChannelsPane c = (JSChannelsPane)tabbedPane.getSelectedComponent();
659     if(getChannelsPane(idx) != c)
660     CC.getLogger().warning("Channels pane indices don't match");
661     removeChannelsPane(c);
662     insertChannelsPane(c, idx - 1);
663     tabbedPane.setSelectedComponent(c);
664     }
665    
666     public void
667     moveTab2Right() {
668     int idx = tabbedPane.getSelectedIndex();
669     if(idx == -1 && idx >= tabbedPane.getTabCount()) {
670     CC.getLogger().info("Can't move tab to right");
671     return;
672     }
673    
674     JSChannelsPane c = (JSChannelsPane)tabbedPane.getSelectedComponent();
675     if(getChannelsPane(idx) != c)
676     CC.getLogger().warning("Channels pane indices don't match");
677     removeChannelsPane(c);
678     insertChannelsPane(c, idx + 1);
679     tabbedPane.setSelectedComponent(c);
680     }
681    
682     public void
683     moveTab2End() {
684     int idx = tabbedPane.getSelectedIndex();
685     if(idx == -1 && idx >= tabbedPane.getTabCount()) {
686     CC.getLogger().info("Can't move tab to right");
687     return;
688     }
689    
690     JSChannelsPane c = (JSChannelsPane)tabbedPane.getSelectedComponent();
691     if(getChannelsPane(idx) != c)
692     CC.getLogger().warning("Channels pane indices don't match");
693     removeChannelsPane(c);
694     addChannelsPane(c);
695     tabbedPane.setSelectedComponent(c);
696     }
697     }

  ViewVC Help
Powered by ViewVC