home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / inprise / JSAMPLES.Z / MetalworksFrame.java < prev    next >
Text File  |  1998-05-08  |  6KB  |  234 lines

  1. /*
  2.  * @(#)MetalworksFrame.java    1.3 98/02/05
  3.  * 
  4.  * Copyright (c) 1997 Sun Microsystems, Inc. All Rights Reserved.
  5.  * 
  6.  * This software is the confidential and proprietary information of Sun
  7.  * Microsystems, Inc. ("Confidential Information").  You shall not
  8.  * disclose such Confidential Information and shall use it only in
  9.  * accordance with the terms of the license agreement you entered into
  10.  * with Sun.
  11.  * 
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
  13.  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  14.  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  15.  * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
  16.  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
  17.  * THIS SOFTWARE OR ITS DERIVATIVES.
  18.  * 
  19.  */
  20.  
  21. import java.awt.*;
  22. import java.awt.event.*;
  23. import java.beans.*;
  24. import com.sun.java.swing.*;
  25. import com.sun.java.swing.border.*;
  26. import com.sun.java.swing.preview.*;
  27.  
  28. import com.sun.java.swing.plaf.metal.*;
  29.  
  30.  
  31. /**
  32.   * This is the main container frame for the Metalworks demo app
  33.   *
  34.   * @version 1.3 02/05/98
  35.   * @author Steve Wilson
  36.   */
  37. public class MetalworksFrame extends JFrame {
  38.  
  39.     JMenuBar menuBar;
  40.     JDesktopPane desktop;
  41.     JInternalFrame toolPalette;
  42.     JCheckBoxMenuItem showToolPaletteMenuItem;
  43.  
  44.     static final Integer DOCLAYER = new Integer(5);
  45.     static final Integer TOOLLAYER = new Integer(6);
  46.     static final Integer HELPLAYER = new Integer(7);
  47.  
  48.     static final String ABOUTMSG = "Metalworks \n \nAn application written to show off the Metal Look & Feel. \n \nWritten by the Metal Look & Feel Team \n  Michael Albers\n  Tom Santos\n  Jeff Shapiro\n  Steve Wilson";
  49.  
  50.  
  51.     public MetalworksFrame() {
  52.         super("Metalworks");
  53.         setBackground(UIManager.getColor("control"));
  54.         final int inset = 50;
  55.         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  56.     setBounds ( inset, inset, screenSize.width - inset*2, screenSize.height - inset*2 );
  57.     buildContent();
  58.     buildMenus();
  59.     this.addWindowListener(new WindowAdapter() {
  60.                            public void windowClosing(WindowEvent e) {
  61.                    quit();
  62.                    }});
  63.     UIManager.addPropertyChangeListener(new UISwitchListener((JComponent)getRootPane()));
  64.     }
  65.  
  66.     protected void buildMenus() {
  67.         menuBar = new JMenuBar();
  68.     menuBar.setOpaque(true);
  69.     //    menuBar.setBackground(UIManager.getColor("control"));
  70.     JMenu file = buildFileMenu();
  71.     JMenu edit = buildEditMenu();
  72.     JMenu views = buildViewsMenu();
  73.     JMenu help = buildHelpMenu();
  74.  
  75.     MetalTheme[] themes = { new DefaultMetalTheme(),
  76.                 new GreenMetalTheme(),
  77.                 new ContrastMetalTheme() };
  78.     JMenu themeMenu = new MetalThemeMenu("Theme", themes);
  79.  
  80.     menuBar.add(file);
  81.     menuBar.add(edit);
  82.     menuBar.add(views);
  83.     menuBar.add(themeMenu);
  84.     menuBar.add(help);
  85.     setJMenuBar(menuBar);    
  86.     }
  87.  
  88.     protected JMenu buildFileMenu() {
  89.     JMenu file = new JMenu("File");
  90.     JMenuItem newWin = new JMenuItem("New");
  91.     JMenuItem open = new JMenuItem("Open");
  92.     JMenuItem quit = new JMenuItem("Quit");
  93.  
  94.     newWin.addActionListener(new ActionListener() {
  95.                            public void actionPerformed(ActionEvent e) {
  96.                    newDocument();
  97.                    }});
  98.  
  99.     open.addActionListener(new ActionListener() {
  100.                            public void actionPerformed(ActionEvent e) {
  101.                    openDocument();
  102.                    }});
  103.  
  104.     quit.addActionListener(new ActionListener() {
  105.                            public void actionPerformed(ActionEvent e) {
  106.                    quit();
  107.                    }});
  108.  
  109.     file.add(newWin);
  110.     file.add(open);
  111.     file.add(new JSeparator());
  112.     file.add(quit);
  113.     return file;
  114.     }
  115.  
  116.     protected JMenu buildEditMenu() {
  117.     JMenu edit = new JMenu("Edit");
  118.     JMenuItem undo = new JMenuItem("Undo");
  119.     JMenuItem copy = new JMenuItem("Copy");
  120.     JMenuItem cut = new JMenuItem("Cut");
  121.     JMenuItem paste = new JMenuItem("Paste");
  122.     JMenuItem prefs = new JMenuItem("Preferences...");
  123.  
  124.     undo.setEnabled(false);
  125.     copy.setEnabled(false);
  126.     cut.setEnabled(false);
  127.     paste.setEnabled(false);
  128.  
  129.     prefs.addActionListener(new ActionListener() {
  130.                            public void actionPerformed(ActionEvent e) {
  131.                    openPrefsWindow();
  132.                    }});
  133.  
  134.     edit.add(undo);
  135.     edit.add(new JSeparator());
  136.     edit.add(cut);
  137.     edit.add(copy);
  138.     edit.add(paste);
  139.     edit.add(new JSeparator());
  140.     edit.add(prefs);
  141.     return edit;
  142.     }
  143.  
  144.     protected JMenu buildViewsMenu() {
  145.     JMenu views = new JMenu("Views");
  146.  
  147.     JMenuItem inBox = new JMenuItem("Open In-Box");
  148.     JMenuItem outBox = new JMenuItem("Open Out-Box");
  149.     outBox.setEnabled(false);
  150.  
  151.     inBox.addActionListener(new ActionListener() {
  152.                            public void actionPerformed(ActionEvent e) {
  153.                    openInBox();
  154.                    }});
  155.  
  156.     views.add(inBox);
  157.     views.add(outBox);
  158.     return views;
  159.     }
  160.  
  161.     protected JMenu buildHelpMenu() {
  162.     JMenu help = new JMenu("Help");
  163.         JMenuItem about = new JMenuItem("About Metalworks...");
  164.     JMenuItem openHelp = new JMenuItem("Open Help Window");
  165.  
  166.     about.addActionListener(new ActionListener() {
  167.         public void actionPerformed(ActionEvent e) {
  168.             showAboutBox();
  169.         }
  170.     });
  171.  
  172.     openHelp.addActionListener(new ActionListener() {
  173.                            public void actionPerformed(ActionEvent e) {
  174.                    openHelpWindow();
  175.                    }});
  176.  
  177.     help.add(about);
  178.     help.add(openHelp);
  179.  
  180.     return help;
  181.     }
  182.  
  183.     protected void buildContent() {
  184.         desktop = new JDesktopPane();
  185.         getContentPane().add(desktop);
  186.     }
  187.  
  188.     public void quit() {
  189.         System.exit(0);
  190.     }
  191.  
  192.     public void newDocument() {
  193.     JInternalFrame doc = new MetalworksDocumentFrame();
  194.     desktop.add(doc, DOCLAYER);
  195.     try { 
  196.         doc.setSelected(true); 
  197.     } catch (java.beans.PropertyVetoException e2) {}
  198.     }
  199.  
  200.     public void openDocument() {
  201.         JFileChooser chooser = new JFileChooser();
  202.     chooser.showDialog(this);
  203.     }
  204.  
  205.     public void openHelpWindow() {
  206.     JInternalFrame help = new MetalworksHelp();
  207.     desktop.add(help, HELPLAYER);
  208.     try { 
  209.         help.setSelected(true); 
  210.     } catch (java.beans.PropertyVetoException e2) {}
  211.     }
  212.  
  213.     public void showAboutBox() {
  214.         JOptionPane.showMessageDialog(this, ABOUTMSG);
  215.     }
  216.  
  217.     public void openPrefsWindow() {
  218.         MetalworksPrefs dialog = new MetalworksPrefs(this);
  219.     dialog.show();
  220.  
  221.     }
  222.  
  223.     public void openInBox() {
  224.     JInternalFrame doc = new MetalworksInBox();
  225.     desktop.add(doc, DOCLAYER);
  226.     try { 
  227.         doc.setSelected(true); 
  228.     } catch (java.beans.PropertyVetoException e2) {}
  229.     }
  230.  
  231. }
  232.  
  233.  
  234.