/*
* Copyright (c) 2000 David Flanagan. All rights reserved.
* This code is from the book Java Examples in a Nutshell, 2nd 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.
* You may distribute it non-commercially as long as you retain this notice.
* For a commercial use license, or to purchase the book (recommended),
* visit http://www.davidflanagan.com/javaexamples2.
*/
package je3.gui;
import javax.swing.*;
import java.util.*;
/**
* Parse a JToolBar from a ResourceBundle. A toolbar is represented
* simply as a list of action property names. E.g.:
* toolbar: action.save, action.print, action.quit
**/
public class ToolBarParser implements ResourceParser {
static final Class[] supportedTypes = new Class[] { JToolBar.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 toolList = bundle.getStringList(key);
// Create a ToolBar
JToolBar toolbar = new JToolBar();
// Create a JTool for each of the tool property names,
// and add it to the bar
int numtools = toolList.size();
for(int i = 0; i < numtools; i++) {
// Get the action name
String tool = (String)toolList.get(i);
// Get the Action object associated with that name
Action action = (Action) bundle.getResource(tool, Action.class);
// Add the action to the toolbar, and get the JButton it creates
JButton button = toolbar.add(action);
// If the action contains a description, use it as the tooltip
String tooltip = (String)action.getValue(Action.SHORT_DESCRIPTION);
if (tooltip != null) button.setToolTipText(tooltip);
}
return toolbar;
}
}
|