Subversion Repositories svn.mios

Rev

Rev 873 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 873 Rev 874
Line 100... Line 100...
100
import org.midibox.utils.gui.ImageLoader;
100
import org.midibox.utils.gui.ImageLoader;
101
import org.midibox.utils.gui.SimpleFileChooserFilter;
101
import org.midibox.utils.gui.SimpleFileChooserFilter;
102
import org.midibox.utils.gui.SplitButton;
102
import org.midibox.utils.gui.SplitButton;
103
103
104
public class MIOSStudioGUI extends JPanel implements ActionListener,
104
public class MIOSStudioGUI extends JPanel implements ActionListener,
105
        MouseListener, PropertyChangeListener, MenuListener, Observer {
105
        MouseListener, PropertyChangeListener, Observer {
106
106
107
    protected MIOSStudio miosStudio;
107
    protected MIOSStudio miosStudio;
108
108
109
    private JDesktopPane desktop;
109
    private JDesktopPane desktop;
110
110
Line 165... Line 165...
165
    protected JPopupMenu toolBarMenu;
165
    protected JPopupMenu toolBarMenu;
166
166
167
    private ExternalButtonProperties externalButtonProperties;
167
    private ExternalButtonProperties externalButtonProperties;
168
168
169
    private Vector externalCommands = new Vector();
169
    private Vector externalCommands = new Vector();
170
-
 
171
    protected JMenu fileMenu;
-
 
172
-
 
173
    protected JMenu midiMenu;
-
 
174
-
 
175
    protected JMenu miosMenu;
-
 
176
-
 
177
    protected JMenu optionsMenu;
-
 
178
-
 
179
    protected WindowMenu windowMenu;
-
 
180
-
 
181
    protected JMenu helpMenu;
-
 
182
-
 
183
    private JMenuItem midiThruMenuItem;
-
 
184
-
 
185
    private JCheckBoxMenuItem showInternalMenuItem;
-
 
186
-
 
187
    private JMenu lookAndFeelMenu;
-
 
188
170
189
    private String lookAndFeel;
171
    private String lookAndFeel;
190
-
 
191
    private JCheckBoxMenuItem MDIMenuItem;
-
 
192
172
193
    private boolean MDI;
173
    private boolean MDI;
194
174
195
    private boolean MDIflag;
175
    private boolean MDIflag;
196
176
197
    private JLabel commentLabel;
177
    private JLabel commentLabel;
198
-
 
199
    private JMenu MRUMenu;
-
 
200
178
201
    private JPopupMenu MRUPopupMenu;
179
    private JPopupMenu MRUPopupMenu;
202
180
203
    private SplitButton openMRUButton;
181
    private SplitButton openMRUButton;
204
182
Line 494... Line 472...
494
        midiDeviceRoutingGUI.addMidiDeviceIcon(miosStudio.getMIOSTerminal(),
472
        midiDeviceRoutingGUI.addMidiDeviceIcon(miosStudio.getMIOSTerminal(),
495
                icon);
473
                icon);
496
    }
474
    }
497
475
498
    public JMenuBar createMenuBar() {
476
    public JMenuBar createMenuBar() {
499
        JMenuBar menuBar = new JMenuBar();
-
 
500
477
501
        createFileMenu();
-
 
502
        createMIDIMenu();
-
 
503
        createMIOSMenu();
-
 
504
        createOptionsMenu();
478
        JMenuBar menuBar = new JMenuBar();
505
        createWindowMenu();
-
 
506
        createHelpMenu();
-
 
507
479
508
        menuBar.add(fileMenu);
480
        menuBar.add(createFileMenu());
509
        menuBar.add(midiMenu);
481
        menuBar.add(createMIDIMenu());
510
        menuBar.add(miosMenu);
482
        menuBar.add(createMIOSMenu());
511
        menuBar.add(optionsMenu);
483
        menuBar.add(createOptionsMenu());
512
        menuBar.add(windowMenu);
484
        menuBar.add(createWindowMenu());
513
        menuBar.add(helpMenu);
485
        menuBar.add(createHelpMenu());
514
486
515
        return menuBar;
487
        return menuBar;
516
    }
488
    }
517
489
518
    protected void createFileMenu() {
490
    protected JMenu createFileMenu() {
519
491
520
        fileMenu = new JMenu("File");
492
        JMenu fileMenu = new JMenu("File");
521
493
522
        JMenuItem menuItem = new JMenuItem("Open Workspace");
494
        JMenuItem menuItem = new JMenuItem("Open Workspace");
523
        menuItem.setActionCommand("open_workspace");
495
        menuItem.setActionCommand("open_workspace");
524
        menuItem.addActionListener(this);
496
        menuItem.addActionListener(this);
525
        fileMenu.add(menuItem);
497
        fileMenu.add(menuItem);
526
498
527
        MRUMenu = new JMenu("Open Recent Workspace");
499
        final JMenu MRUMenu = new JMenu("Open Recent Workspace");
-
 
500
528
        MRUMenu.addMenuListener(this);
501
        MRUMenu.addMenuListener(new MenuListener() {
-
 
502
-
 
503
            public void menuCanceled(MenuEvent e) {
-
 
504
            }
-
 
505
-
 
506
            public void menuDeselected(MenuEvent e) {
-
 
507
-
 
508
            }
-
 
509
-
 
510
            public void menuSelected(MenuEvent e) {
-
 
511
-
 
512
                buildMRUMenu(MRUMenu);
-
 
513
            }
-
 
514
-
 
515
        });
-
 
516
529
        fileMenu.add(MRUMenu);
517
        fileMenu.add(MRUMenu);
530
518
531
        menuItem = new JMenuItem("Save Workspace");
519
        menuItem = new JMenuItem("Save Workspace");
532
        menuItem.setActionCommand("save_workspace");
520
        menuItem.setActionCommand("save_workspace");
533
        menuItem.addActionListener(this);
521
        menuItem.addActionListener(this);
534
        fileMenu.add(menuItem);
522
        fileMenu.add(menuItem);
-
 
523
-
 
524
        return fileMenu;
535
    }
525
    }
536
526
537
    protected void createMIDIMenu() {
527
    protected JMenu createMIDIMenu() {
-
 
528
538
        midiMenu = new JMenu("MIDI");
529
        JMenu midiMenu = new JMenu("MIDI");
539
530
540
        JMenuItem menuItem = new JMenuItem("MIDI Devices");
531
        JMenuItem menuItem = new JMenuItem("MIDI Devices");
541
        menuItem.setActionCommand("midi_devices");
532
        menuItem.setActionCommand("midi_devices");
542
        menuItem.addActionListener(this);
533
        menuItem.addActionListener(this);
543
        midiMenu.add(menuItem);
534
        midiMenu.add(menuItem);
Line 564... Line 555...
564
555
565
        menuItem = new JMenuItem("Sysex Send/Recieve");
556
        menuItem = new JMenuItem("Sysex Send/Recieve");
566
        menuItem.setActionCommand("sysex");
557
        menuItem.setActionCommand("sysex");
567
        menuItem.addActionListener(this);
558
        menuItem.addActionListener(this);
568
        midiMenu.add(menuItem);
559
        midiMenu.add(menuItem);
-
 
560
-
 
561
        return midiMenu;
569
    }
562
    }
570
563
571
    protected void createMIOSMenu() {
564
    protected JMenu createMIOSMenu() {
572
565
573
        miosMenu = new JMenu("MIOS");
566
        JMenu miosMenu = new JMenu("MIOS");
574
567
575
        JMenuItem menuItem = new JMenuItem("MIOS Hex File Upload");
568
        JMenuItem menuItem = new JMenuItem("MIOS Hex File Upload");
576
        menuItem.setActionCommand("open_hex_file");
569
        menuItem.setActionCommand("open_hex_file");
577
        menuItem.addActionListener(this);
570
        menuItem.addActionListener(this);
578
        miosMenu.add(menuItem);
571
        miosMenu.add(menuItem);
Line 589... Line 582...
589
582
590
        menuItem = new JMenuItem("MIOS Terminal");
583
        menuItem = new JMenuItem("MIOS Terminal");
591
        menuItem.setActionCommand("mios_terminal");
584
        menuItem.setActionCommand("mios_terminal");
592
        menuItem.addActionListener(this);
585
        menuItem.addActionListener(this);
593
        miosMenu.add(menuItem);
586
        miosMenu.add(menuItem);
-
 
587
-
 
588
        return miosMenu;
594
    }
589
    }
595
590
596
    protected void createOptionsMenu() {
591
    protected JMenu createOptionsMenu() {
597
592
598
        optionsMenu = new JMenu("Options");
593
        JMenu optionsMenu = new JMenu("Options");
599
594
600
        JMenuItem menuItem = new JMenuItem("MIDI Device Routing");
595
        JMenuItem menuItem = new JMenuItem("MIDI Device Routing");
601
        menuItem.setActionCommand("midi_routing");
596
        menuItem.setActionCommand("midi_routing");
602
        menuItem.addActionListener(this);
597
        menuItem.addActionListener(this);
603
        optionsMenu.add(menuItem);
598
        optionsMenu.add(menuItem);
604
599
605
        showInternalMenuItem = new JCheckBoxMenuItem("Show Internal Routing",
600
        final JCheckBoxMenuItem showInternalMenuItem = new JCheckBoxMenuItem(
606
                miosStudio.isRouteIndividualDevices());
601
                "Show Internal Routing", miosStudio.isRouteIndividualDevices());
607
        showInternalMenuItem.setActionCommand("route_internal");
602
        showInternalMenuItem.setActionCommand("route_internal");
608
        showInternalMenuItem.addActionListener(this);
603
        showInternalMenuItem.addActionListener(this);
609
        optionsMenu.add(showInternalMenuItem);
604
        optionsMenu.add(showInternalMenuItem);
610
605
611
        menuItem = new JMenuItem("Restore Default Internal Routing");
606
        menuItem = new JMenuItem("Restore Default Internal Routing");
Line 614... Line 609...
614
        optionsMenu.add(menuItem);
609
        optionsMenu.add(menuItem);
615
610
616
        optionsMenu.addSeparator();
611
        optionsMenu.addSeparator();
617
        JMenu thruMenu = new JMenu("MIDI Thru");
612
        JMenu thruMenu = new JMenu("MIDI Thru");
618
613
619
        midiThruMenuItem = new JCheckBoxMenuItem("Send MIDI Thru via Out Port",
614
        final JMenuItem midiThruMenuItem = new JCheckBoxMenuItem(
620
                miosStudio.isMidiThruOutPort());
615
                "Send MIDI Thru via Out Port", miosStudio.isMidiThruOutPort());
621
        midiThruMenuItem.setActionCommand("midi_thru");
616
        midiThruMenuItem.setActionCommand("midi_thru");
622
        midiThruMenuItem.addActionListener(this);
617
        midiThruMenuItem.addActionListener(this);
623
        thruMenu.add(midiThruMenuItem);
618
        thruMenu.add(midiThruMenuItem);
624
619
625
        menuItem = new JMenuItem("MIDI Thru Filter");
620
        menuItem = new JMenuItem("MIDI Thru Filter");
Line 633... Line 628...
633
         * menuItem.addActionListener(this); thruMenu.add(menuItem);
628
         * menuItem.addActionListener(this); thruMenu.add(menuItem);
634
         */
629
         */
635
630
636
        optionsMenu.add(thruMenu);
631
        optionsMenu.add(thruMenu);
637
        optionsMenu.addSeparator();
632
        optionsMenu.addSeparator();
-
 
633
638
        lookAndFeelMenu = new JMenu("Look & Feel");
634
        final JMenu lookAndFeelMenu = new JMenu("Look & Feel");
-
 
635
639
        lookAndFeelMenu.addMenuListener(this);
636
        lookAndFeelMenu.addMenuListener(new MenuListener() {
-
 
637
-
 
638
            public void menuCanceled(MenuEvent e) {
-
 
639
            }
-
 
640
-
 
641
            public void menuDeselected(MenuEvent e) {
-
 
642
-
 
643
                lookAndFeelMenu.removeAll();
-
 
644
            }
-
 
645
-
 
646
            public void menuSelected(MenuEvent e) {
-
 
647
-
 
648
                buildLookAndFeel(lookAndFeelMenu);
-
 
649
            }
-
 
650
-
 
651
        });
-
 
652
640
        optionsMenu.add(lookAndFeelMenu);
653
        optionsMenu.add(lookAndFeelMenu);
641
654
642
        MDIMenuItem = new JCheckBoxMenuItem("MDI", MDIflag);
655
        final JMenuItem MDIMenuItem = new JCheckBoxMenuItem("MDI", MDIflag);
643
        MDIMenuItem.addActionListener(this);
656
        MDIMenuItem.addActionListener(this);
644
        MDIMenuItem.setActionCommand("MDI");
657
        MDIMenuItem.setActionCommand("MDI");
645
        optionsMenu.add(MDIMenuItem);
658
        optionsMenu.add(MDIMenuItem);
-
 
659
-
 
660
        optionsMenu.addMenuListener(new MenuListener() {
-
 
661
-
 
662
            public void menuCanceled(MenuEvent e) {
-
 
663
646
    }
664
            }
647
665
648
    protected void createWindowMenu() {
666
            public void menuDeselected(MenuEvent e) {
649
667
-
 
668
            }
-
 
669
-
 
670
            public void menuSelected(MenuEvent e) {
-
 
671
-
 
672
                showInternalMenuItem.setSelected(miosStudio
-
 
673
                        .isRouteIndividualDevices());
-
 
674
-
 
675
                midiThruMenuItem.setSelected(miosStudio.isMidiThruOutPort());
-
 
676
-
 
677
                MDIMenuItem.setSelected(isMDIflag());
-
 
678
            }
-
 
679
        });
-
 
680
-
 
681
        return optionsMenu;
-
 
682
    }
-
 
683
-
 
684
    protected JMenu createWindowMenu() {
-
 
685
650
        windowMenu = new WindowMenu(this);
686
        JMenu windowMenu = new WindowMenu(this);
651
        windowMenu.setMnemonic(KeyEvent.VK_W);
687
        windowMenu.setMnemonic(KeyEvent.VK_W);
-
 
688
-
 
689
        return windowMenu;
652
    }
690
    }
653
691
654
    protected void createHelpMenu() {
692
    protected JMenu createHelpMenu() {
655
693
656
        helpMenu = new JMenu("Help");
694
        JMenu helpMenu = new JMenu("Help");
657
        helpMenu.setMnemonic(KeyEvent.VK_H);
695
        helpMenu.setMnemonic(KeyEvent.VK_H);
658
696
659
        JMenuItem menuItem = new JMenuItem("MIOS Studio Help");
697
        JMenuItem menuItem = new JMenuItem("MIOS Studio Help");
660
        menuItem.setMnemonic(KeyEvent.VK_I);
698
        menuItem.setMnemonic(KeyEvent.VK_I);
661
699
Line 667... Line 705...
667
        menuItem.setMnemonic(KeyEvent.VK_F);
705
        menuItem.setMnemonic(KeyEvent.VK_F);
668
706
669
        menuItem.setActionCommand("mios_fun");
707
        menuItem.setActionCommand("mios_fun");
670
        menuItem.addActionListener(this);
708
        menuItem.addActionListener(this);
671
        helpMenu.add(menuItem);
709
        helpMenu.add(menuItem);
-
 
710
-
 
711
        return helpMenu;
672
    }
712
    }
673
713
674
    public void addExternalCommandButton(String commandName, String command) {
714
    public void addExternalCommandButton(String commandName, String command) {
675
        ExternalCommandButton button = new ExternalCommandButton();
715
        ExternalCommandButton button = new ExternalCommandButton();
676
        button.setCommandName(commandName);
716
        button.setCommandName(commandName);
Line 1047... Line 1087...
1047
                }
1087
                }
1048
            } catch (java.beans.PropertyVetoException e) {
1088
            } catch (java.beans.PropertyVetoException e) {
1049
                System.out.println(e.toString());
1089
                System.out.println(e.toString());
1050
            }
1090
            }
1051
        } else {
1091
        } else {
-
 
1092
1052
            JFrame frame = (JFrame) container;
1093
            JFrame frame = (JFrame) container;
1053
1094
1054
            if (!frame.isVisible()) {
1095
            if (!frame.isVisible()) {
1055
                frame.setVisible(true);
1096
                frame.setVisible(true);
1056
                frame.toFront();
1097
                frame.toFront();
Line 1151... Line 1192...
1151
1192
1152
            menu.add(menuItem, 0);
1193
            menu.add(menuItem, 0);
1153
        }
1194
        }
1154
    }
1195
    }
1155
1196
1156
    private void buildLookAndFeel() {
1197
    private void buildLookAndFeel(JMenu lookAndFeelMenu) {
1157
1198
1158
        JCheckBoxMenuItem item;
1199
        JCheckBoxMenuItem item;
1159
1200
1160
        for (int i = 0; i < UIManager.getInstalledLookAndFeels().length; i++) {
1201
        for (int i = 0; i < UIManager.getInstalledLookAndFeels().length; i++) {
1161
            final int l = i;
1202
            final int l = i;
1162
            item = new JCheckBoxMenuItem(
1203
            item = new JCheckBoxMenuItem(
1163
                    UIManager.getInstalledLookAndFeels()[i].getName());
1204
                    UIManager.getInstalledLookAndFeels()[i].getName());
-
 
1205
1164
            lookAndFeelMenu.add(item);
1206
            lookAndFeelMenu.add(item);
-
 
1207
1165
            if (UIManager.getInstalledLookAndFeels()[i].getClassName().equals(
1208
            if (UIManager.getInstalledLookAndFeels()[i].getClassName().equals(
1166
                    lookAndFeel)) {
1209
                    lookAndFeel)) {
1167
                item.setSelected(true);
1210
                item.setSelected(true);
1168
            }
1211
            }
1169
            item.addActionListener(new ActionListener() {
1212
            item.addActionListener(new ActionListener() {
Line 1177... Line 1220...
1177
                        System.out.println(e.toString());
1220
                        System.out.println(e.toString());
1178
                    }
1221
                    }
1179
                }
1222
                }
1180
            });
1223
            });
1181
        }
1224
        }
1182
    }
-
 
1183
-
 
1184
    public JMenu getFileMenu() {
-
 
1185
        return fileMenu;
-
 
1186
    }
1225
    }
1187
1226
1188
    public MIOSStudio getMiosStudio() {
1227
    public MIOSStudio getMiosStudio() {
1189
        return miosStudio;
1228
        return miosStudio;
1190
    }
1229
    }
Line 1424... Line 1463...
1424
1463
1425
    }
1464
    }
1426
1465
1427
    public void propertyChange(PropertyChangeEvent pce) {
1466
    public void propertyChange(PropertyChangeEvent pce) {
1428
        showFrame(helpWindow);
1467
        showFrame(helpWindow);
1429
    }
-
 
1430
-
 
1431
    public void menuCanceled(MenuEvent e) {
-
 
1432
    }
-
 
1433
-
 
1434
    public void menuDeselected(MenuEvent e) {
-
 
1435
        Object source = e.getSource();
-
 
1436
-
 
1437
        if (source == windowMenu) {
-
 
1438
            windowMenu.removeAll();
-
 
1439
        } else if (source == lookAndFeelMenu) {
-
 
1440
            lookAndFeelMenu.removeAll();
-
 
1441
        }
-
 
1442
    }
-
 
1443
-
 
1444
    public void menuSelected(MenuEvent e) {
-
 
1445
        Object source = e.getSource();
-
 
1446
-
 
1447
        if (source == windowMenu) {
-
 
1448
            windowMenu.buildChildMenus();
-
 
1449
        } else if (source == lookAndFeelMenu) {
-
 
1450
            buildLookAndFeel();
-
 
1451
        } else if (source == MRUMenu) {
-
 
1452
            buildMRUMenu(MRUMenu);
-
 
1453
        }
-
 
1454
    }
1468
    }
1455
1469
1456
    public void update(Observable observable, Object object) {
1470
    public void update(Observable observable, Object object) {
1457
1471
1458
        if (object == MIOSStudio.ROUTE_INDIVIDUAL_DEVICES) {
-
 
1459
-
 
1460
            showInternalMenuItem.setSelected(miosStudio
-
 
1461
                    .isRouteIndividualDevices());
-
 
1462
-
 
1463
        } else if (object == MIOSStudio.MIDI_THRU_OUT_PORT) {
-
 
1464
-
 
1465
            midiThruMenuItem.setSelected(miosStudio.isMidiThruOutPort());
-
 
1466
-
 
1467
        } else if (observable == miosStudio.getSysexSendReceiveManager()) {
1472
        if (observable == miosStudio.getSysexSendReceiveManager()) {
1468
1473
1469
            Dimension size = sysexSendReceiveDeviceManagerWindow.getSize();
1474
            Dimension size = sysexSendReceiveDeviceManagerWindow.getSize();
1470
1475
1471
            Dimension preferred = sysexSendReceiveDeviceManagerWindow
1476
            Dimension preferred = sysexSendReceiveDeviceManagerWindow
1472
                    .getPreferredSize();
1477
                    .getPreferredSize();
Line 1526... Line 1531...
1526
1531
1527
        } else if (ae.getActionCommand().equals("mios_terminal")) {
1532
        } else if (ae.getActionCommand().equals("mios_terminal")) {
1528
            showFrame(miosTerminalWindow);
1533
            showFrame(miosTerminalWindow);
1529
1534
1530
        } else if (ae.getActionCommand().equals("route_internal")) {
1535
        } else if (ae.getActionCommand().equals("route_internal")) {
-
 
1536
-
 
1537
            JCheckBoxMenuItem menuItem = (JCheckBoxMenuItem) ae.getSource();
-
 
1538
-
 
1539
            miosStudio.setRouteIndividualDevices(menuItem.isSelected());
-
 
1540
1531
            showFrame(midiDeviceRoutingWindow);
1541
            showFrame(midiDeviceRoutingWindow);
1532
            miosStudio.setRouteIndividualDevices(showInternalMenuItem
-
 
1533
                    .isSelected());
-
 
1534
1542
1535
        } else if (ae.getActionCommand().equals("restore_default")) {
1543
        } else if (ae.getActionCommand().equals("restore_default")) {
1536
            miosStudio.connectDevices();
1544
            miosStudio.connectDevices();
1537
1545
1538
        } else if (ae.getActionCommand().equals("midi_thru_filter")) {
1546
        } else if (ae.getActionCommand().equals("midi_thru_filter")) {
1539
            showMidiThruFilter();
1547
            showMidiThruFilter();
1540
1548
1541
        } else if (ae.getActionCommand().equals("midi_thru")) {
1549
        } else if (ae.getActionCommand().equals("midi_thru")) {
-
 
1550
-
 
1551
            JCheckBoxMenuItem menuItem = (JCheckBoxMenuItem) ae.getSource();
-
 
1552
1542
            miosStudio.setMidiThruOutPort(midiThruMenuItem.isSelected());
1553
            miosStudio.setMidiThruOutPort(menuItem.isSelected());
1543
1554
1544
        } else if (ae.getActionCommand().equals("help_window")) {
1555
        } else if (ae.getActionCommand().equals("help_window")) {
1545
            showFrame(helpWindow);
1556
            showFrame(helpWindow);
1546
1557
1547
        } else if (ae.getActionCommand().equals("help_index")) {
1558
        } else if (ae.getActionCommand().equals("help_index")) {
Line 1562... Line 1573...
1562
        } else if (ae.getActionCommand().equals("save_workspace")) {
1573
        } else if (ae.getActionCommand().equals("save_workspace")) {
1563
            saveWorkspace();
1574
            saveWorkspace();
1564
1575
1565
        } else if (ae.getActionCommand().equals("MDI")) {
1576
        } else if (ae.getActionCommand().equals("MDI")) {
1566
1577
-
 
1578
            JCheckBoxMenuItem menuItem = (JCheckBoxMenuItem) ae.getSource();
-
 
1579
1567
            setMDIflag(MDIMenuItem.isSelected());
1580
            setMDIflag(menuItem.isSelected());
1568
        }
1581
        }
1569
    }
1582
    }
1570
1583
1571
    private Container createFrame(String name, boolean resizeable,
1584
    private Container createFrame(String name, boolean resizeable,
1572
            boolean maximizeable, ImageIcon icon, JComponent contentPane) {
1585
            boolean maximizeable, ImageIcon icon, JComponent contentPane) {
Line 1766... Line 1779...
1766
        private JDesktopPane desktop;
1779
        private JDesktopPane desktop;
1767
1780
1768
        private JMenuItem cascadeMenuItem;
1781
        private JMenuItem cascadeMenuItem;
1769
1782
1770
        public WindowMenu(MIOSStudioGUI miosStudio) {
1783
        public WindowMenu(MIOSStudioGUI miosStudio) {
-
 
1784
1771
            this.miosStudio = miosStudio;
1785
            this.miosStudio = miosStudio;
1772
            this.desktop = miosStudio.desktop;
1786
            this.desktop = miosStudio.desktop;
1773
            setText("Window");
1787
            setText("Window");
-
 
1788
1774
            addMenuListener(MIOSStudioGUI.this);
1789
            addMenuListener(new MenuListener() {
-
 
1790
-
 
1791
                public void menuCanceled(MenuEvent e) {
1775
        }
1792
                }
1776
1793
-
 
1794
                public void menuDeselected(MenuEvent e) {
-
 
1795
-
 
1796
                    removeAll();
-
 
1797
-
 
1798
                }
-
 
1799
-
 
1800
                public void menuSelected(MenuEvent e) {
-
 
1801
-
 
1802
                    buildChildMenus();
-
 
1803
                }
-
 
1804
-
 
1805
            });
-
 
1806
        }
-
 
1807
1777
        private JInternalFrame[] getFrames() {
1808
        private Vector getFrames() {
-
 
1809
-
 
1810
            Vector v = new Vector();
-
 
1811
-
 
1812
            if (MDI) {
-
 
1813
1778
            return desktop.getAllFrames();
1814
                JInternalFrame[] internalFramesArray = desktop.getAllFrames();
-
 
1815
-
 
1816
                for (int i = 0; i < internalFramesArray.length; i++) {
-
 
1817
-
 
1818
                    v.add(internalFramesArray[i]);
-
 
1819
                }
-
 
1820
-
 
1821
                return v;
-
 
1822
-
 
1823
            } else {
-
 
1824
-
 
1825
                for (int i = 0; i < internalFrames.size(); i++) {
-
 
1826
-
 
1827
                    JFrame frame = (JFrame) internalFrames.elementAt(i);
-
 
1828
-
 
1829
                    if (frame.isVisible()) {
-
 
1830
-
 
1831
                        v.add(frame);
-
 
1832
                    }
-
 
1833
                }
-
 
1834
-
 
1835
                return v;
-
 
1836
            }
1779
        }
1837
        }
1780
1838
1781
        private void buildChildMenus() {
1839
        private void buildChildMenus() {
-
 
1840
1782
            int i;
1841
            int i;
-
 
1842
1783
            ChildMenuItem menuItem;
1843
            ChildMenuItem menuItem;
-
 
1844
1784
            JInternalFrame[] frames = getFrames();
1845
            Vector frames = getFrames();
1785
1846
1786
            cascadeMenuItem = new JMenuItem("Cascade Windows");
1847
            cascadeMenuItem = new JMenuItem("Cascade Windows");
1787
1848
1788
            cascadeMenuItem.addActionListener(new ActionListener() {
1849
            cascadeMenuItem.addActionListener(new ActionListener() {
1789
1850
1790
                public void actionPerformed(ActionEvent ae) {
1851
                public void actionPerformed(ActionEvent ae) {
1791
1852
1792
                    JInternalFrame[] frames = getFrames();
1853
                    Vector frames = getFrames();
1793
1854
1794
                    for (int x = 0; x < frames.length; x++) {
1855
                    for (int x = 0; x < frames.size(); x++) {
-
 
1856
1795
                        frames[frames.length - 1 - x].setLocation(x * 20,
1857
                        Container c = (Container) frames.get(x);
-
 
1858
1796
                                x * 20);
1859
                        c.setLocation(x * 20, x * 20);
1797
                    }
1860
                    }
1798
                }
1861
                }
1799
            });
1862
            });
1800
1863
1801
            cascadeMenuItem.setEnabled(frames.length > 0);
1864
            cascadeMenuItem.setEnabled(frames.size() > 0);
1802
1865
1803
            add(cascadeMenuItem);
1866
            add(cascadeMenuItem);
1804
1867
1805
            addSeparator();
1868
            addSeparator();
1806
1869
1807
            for (i = 0; i < frames.length; i++) {
1870
            for (i = 0; i < frames.size(); i++) {
-
 
1871
-
 
1872
                Container c = (Container) frames.get(i);
-
 
1873
1808
                menuItem = new ChildMenuItem(frames[i]);
1874
                menuItem = new ChildMenuItem(c);
1809
                menuItem.setState(i == 0);
1875
                menuItem.setState(i == 0);
1810
                menuItem.addActionListener(new ActionListener() {
1876
                menuItem.addActionListener(new ActionListener() {
1811
                    public void actionPerformed(ActionEvent ae) {
1877
                    public void actionPerformed(ActionEvent ae) {
1812
                        JInternalFrame frame = ((ChildMenuItem) ae.getSource())
1878
                        Container frame = ((ChildMenuItem) ae.getSource())
1813
                                .getFrame();
1879
                                .getFrame();
1814
                        miosStudio.showFrame(frame);
1880
                        miosStudio.showFrame(frame);
1815
                    }
1881
                    }
1816
                });
1882
                });
-
 
1883
-
 
1884
                if (MDI) {
1817
                menuItem.setIcon(frames[i].getFrameIcon());
1885
                    menuItem.setIcon(((JInternalFrame) c).getFrameIcon());
-
 
1886
                } else {
-
 
1887
                    menuItem
-
 
1888
                            .setIcon(new ImageIcon(((JFrame) c).getIconImage()));
-
 
1889
                }
1818
                add(menuItem);
1890
                add(menuItem);
1819
            }
1891
            }
1820
        }
1892
        }
1821
1893
1822
        public class ChildMenuItem extends JCheckBoxMenuItem {
1894
        public class ChildMenuItem extends JCheckBoxMenuItem {
1823
            private JInternalFrame frame;
-
 
1824
1895
-
 
1896
            private Container frame;
-
 
1897
1825
            public ChildMenuItem(JInternalFrame frame) {
1898
            public ChildMenuItem(Container frame) {
-
 
1899
-
 
1900
                super();
-
 
1901
-
 
1902
                if (MDI) {
-
 
1903
                    setText((((JInternalFrame) frame).getTitle()));
-
 
1904
-
 
1905
                } else {
-
 
1906
1826
                super(frame.getTitle());
1907
                    setText((((JFrame) frame).getTitle()));
-
 
1908
                }
1827
                this.frame = frame;
1909
                this.frame = frame;
1828
            }
1910
            }
1829
1911
1830
            public JInternalFrame getFrame() {
1912
            public Container getFrame() {
-
 
1913
1831
                return frame;
1914
                return frame;
1832
            }
1915
            }
1833
        }
1916
        }
1834
    }
1917
    }
1835
1918