FileDocCategorySizeDatePackage
MenuBarParser.javaAPI DocExample1526Sat Jan 24 10:44:34 GMT 2004je3.gui

MenuBarParser.java

/*
 * Copyright (c) 2004 David Flanagan.  All rights reserved.
 * This code is from the book Java Examples in a Nutshell, 3nd Edition.
 * It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied.
 * You may study, use, and modify it for any non-commercial purpose,
 * including teaching and use in open-source projects.
 * You may distribute it non-commercially as long as you retain this notice.
 * For a commercial use license, or to purchase the book, 
 * please visit http://www.davidflanagan.com/javaexamples3.
 */
package je3.gui;
import javax.swing.*;
import java.util.*;

/**
 * Parse a JMenuBar from a ResourceBundle.  A menubar is represented
 * simply as a list of menu property names.  E.g.:
 *     menubar: menu.file menu.edit menu.view menu.help
 **/
public class MenuBarParser implements ResourceParser {
    static final Class[] supportedTypes = new Class[] { JMenuBar.class };
    public Class[] getResourceTypes() { return supportedTypes; }

    public Object parse(GUIResourceBundle bundle, String key, Class type)
	throws java.util.MissingResourceException
    {
	// Get the value of the key as a list of strings
	List menuList = bundle.getStringList(key);

	// Create a MenuBar
	JMenuBar menubar = new JMenuBar();

	// Create a JMenu for each of the menu property names, 
	// and add it to the bar
	int nummenus = menuList.size();
	for(int i = 0; i < nummenus; i++) {
	    menubar.add((JMenu) bundle.getResource((String)menuList.get(i),
						   JMenu.class));
	}
	
	return menubar;
    }
}