FileDocCategorySizeDatePackage
MetalworksFrame.javaAPI DocExample6433Sat Sep 12 03:01:00 BST 1998None

MetalworksFrame

public class MetalworksFrame extends JFrame
This is the main container frame for the Metalworks demo app
version
1.3 02/05/98
author
Steve Wilson

Fields Summary
JMenuBar
menuBar
JDesktopPane
desktop
JInternalFrame
toolPalette
JCheckBoxMenuItem
showToolPaletteMenuItem
static final Integer
DOCLAYER
static final Integer
TOOLLAYER
static final Integer
HELPLAYER
static final String
ABOUTMSG
Constructors Summary
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()));
    
Methods Summary
protected voidbuildContent()

        desktop = new JDesktopPane();
        getContentPane().add(desktop);
    
protected JMenubuildEditMenu()

	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 JMenubuildFileMenu()

	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 JMenubuildHelpMenu()

	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 voidbuildMenus()

        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 JMenubuildViewsMenu()

	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;
    
public voidnewDocument()

	JInternalFrame doc = new MetalworksDocumentFrame();
	desktop.add(doc, DOCLAYER);
	try { 
	    doc.setSelected(true); 
	} catch (java.beans.PropertyVetoException e2) {}
    
public voidopenDocument()

        JFileChooser chooser = new JFileChooser();
	chooser.showDialog(this);
    
public voidopenHelpWindow()

	JInternalFrame help = new MetalworksHelp();
	desktop.add(help, HELPLAYER);
	try { 
	    help.setSelected(true); 
	} catch (java.beans.PropertyVetoException e2) {}
    
public voidopenInBox()

	JInternalFrame doc = new MetalworksInBox();
	desktop.add(doc, DOCLAYER);
	try { 
	    doc.setSelected(true); 
	} catch (java.beans.PropertyVetoException e2) {}
    
public voidopenPrefsWindow()

        MetalworksPrefs dialog = new MetalworksPrefs(this);
	dialog.show();

    
public voidquit()

        System.exit(0);
    
public voidshowAboutBox()

        JOptionPane.showMessageDialog(this, ABOUTMSG);