/*
* @(#)MetalworksFrame.java 1.3 98/02/05
*
* Copyright (c) 1997 Sun Microsystems, Inc. All Rights Reserved.
*
* This software is the confidential and proprietary information of Sun
* Microsystems, Inc. ("Confidential Information"). You shall not
* disclose such Confidential Information and shall use it only in
* accordance with the terms of the license agreement you entered into
* with Sun.
*
* SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
* SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
* IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
* PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
* SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
* THIS SOFTWARE OR ITS DERIVATIVES.
*
*/
import java.awt.*;
import java.awt.event.*;
import java.beans.*;
import com.sun.java.swing.*;
import com.sun.java.swing.border.*;
import com.sun.java.swing.preview.*;
import com.sun.java.swing.plaf.metal.*;
/**
* This is the main container frame for the Metalworks demo app
*
* @version 1.3 02/05/98
* @author Steve Wilson
*/
public class MetalworksFrame extends JFrame {
JMenuBar menuBar;
JDesktopPane desktop;
JInternalFrame toolPalette;
JCheckBoxMenuItem showToolPaletteMenuItem;
static final Integer DOCLAYER = new Integer(5);
static final Integer TOOLLAYER = new Integer(6);
static final Integer HELPLAYER = new Integer(7);
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";
public MetalworksFrame() {
super("Metalworks");
setBackground(UIManager.getColor("control"));
final int inset = 50;
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds ( inset, inset, screenSize.width - inset*2, screenSize.height - inset*2 );
buildContent();
buildMenus();
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
quit();
}});
UIManager.addPropertyChangeListener(new UISwitchListener((JComponent)getRootPane()));
}
protected void buildMenus() {
menuBar = new JMenuBar();
menuBar.setOpaque(true);
// menuBar.setBackground(UIManager.getColor("control"));
JMenu file = buildFileMenu();
JMenu edit = buildEditMenu();
JMenu views = buildViewsMenu();
JMenu help = buildHelpMenu();
MetalTheme[] themes = { new DefaultMetalTheme(),
new GreenMetalTheme(),
new ContrastMetalTheme() };
JMenu themeMenu = new MetalThemeMenu("Theme", themes);
menuBar.add(file);
menuBar.add(edit);
menuBar.add(views);
menuBar.add(themeMenu);
menuBar.add(help);
setJMenuBar(menuBar);
}
protected JMenu buildFileMenu() {
JMenu file = new JMenu("File");
JMenuItem newWin = new JMenuItem("New");
JMenuItem open = new JMenuItem("Open");
JMenuItem quit = new JMenuItem("Quit");
newWin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
newDocument();
}});
open.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
openDocument();
}});
quit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
quit();
}});
file.add(newWin);
file.add(open);
file.add(new JSeparator());
file.add(quit);
return file;
}
protected JMenu buildEditMenu() {
JMenu edit = new JMenu("Edit");
JMenuItem undo = new JMenuItem("Undo");
JMenuItem copy = new JMenuItem("Copy");
JMenuItem cut = new JMenuItem("Cut");
JMenuItem paste = new JMenuItem("Paste");
JMenuItem prefs = new JMenuItem("Preferences...");
undo.setEnabled(false);
copy.setEnabled(false);
cut.setEnabled(false);
paste.setEnabled(false);
prefs.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
openPrefsWindow();
}});
edit.add(undo);
edit.add(new JSeparator());
edit.add(cut);
edit.add(copy);
edit.add(paste);
edit.add(new JSeparator());
edit.add(prefs);
return edit;
}
protected JMenu buildViewsMenu() {
JMenu views = new JMenu("Views");
JMenuItem inBox = new JMenuItem("Open In-Box");
JMenuItem outBox = new JMenuItem("Open Out-Box");
outBox.setEnabled(false);
inBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
openInBox();
}});
views.add(inBox);
views.add(outBox);
return views;
}
protected JMenu buildHelpMenu() {
JMenu help = new JMenu("Help");
JMenuItem about = new JMenuItem("About Metalworks...");
JMenuItem openHelp = new JMenuItem("Open Help Window");
about.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
showAboutBox();
}
});
openHelp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
openHelpWindow();
}});
help.add(about);
help.add(openHelp);
return help;
}
protected void buildContent() {
desktop = new JDesktopPane();
getContentPane().add(desktop);
}
public void quit() {
System.exit(0);
}
public void newDocument() {
JInternalFrame doc = new MetalworksDocumentFrame();
desktop.add(doc, DOCLAYER);
try {
doc.setSelected(true);
} catch (java.beans.PropertyVetoException e2) {}
}
public void openDocument() {
JFileChooser chooser = new JFileChooser();
chooser.showDialog(this);
}
public void openHelpWindow() {
JInternalFrame help = new MetalworksHelp();
desktop.add(help, HELPLAYER);
try {
help.setSelected(true);
} catch (java.beans.PropertyVetoException e2) {}
}
public void showAboutBox() {
JOptionPane.showMessageDialog(this, ABOUTMSG);
}
public void openPrefsWindow() {
MetalworksPrefs dialog = new MetalworksPrefs(this);
dialog.show();
}
public void openInBox() {
JInternalFrame doc = new MetalworksInBox();
desktop.add(doc, DOCLAYER);
try {
doc.setSelected(true);
} catch (java.beans.PropertyVetoException e2) {}
}
}
|