001 /*
002 * Copyright (c) 2005 Einar Pehrson
003 *
004 * This file is part of
005 * CleanSheets Extension for Style
006 *
007 * CleanSheets Extension for Style is free software; you can
008 * redistribute it and/or modify it under the terms of the GNU General Public
009 * License as published by the Free Software Foundation; either version 2 of
010 * the License, or (at your option) any later version.
011 *
012 * CleanSheets Extension for Style is distributed in the hope that
013 * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
014 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
015 * See the GNU General Public License for more details.
016 *
017 * You should have received a copy of the GNU General Public License
018 * along with CleanSheets Extension for Style; if not, write to the
019 * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
020 * Boston, MA 02111-1307 USA
021 */
022 package csheets.ext.style.ui;
023
024 import javax.swing.Icon;
025 import javax.swing.ImageIcon;
026 import javax.swing.JMenu;
027 import javax.swing.JToolBar;
028
029 import csheets.ext.style.StyleExtension;
030 import csheets.ui.ctrl.UIController;
031 import csheets.ui.ext.UIExtension;
032
033 /**
034 * The user interface extension for style.
035 * @author Einar Pehrson
036 */
037 public class StyleUIExtension extends UIExtension {
038
039 /** The icon to display with the extension's name */
040 private Icon icon;
041
042 /** A menu that provides editing of style */
043 private StyleMenu menu;
044
045 /** A toolbar that provides editing of style */
046 private StyleToolBar toolBar;
047
048 /**
049 * Creates a new user interface extension for style.
050 * @param extension the extension for which components are provided
051 * @param uiController the user interface controller
052 */
053 public StyleUIExtension(StyleExtension extension, UIController uiController) {
054 super(extension, uiController);
055 }
056
057 /**
058 * Returns an icon to display with the extension's name.
059 * @return an icon with style
060 */
061 public Icon getIcon() {
062 if (icon == null)
063 icon = new ImageIcon(
064 StyleExtension.class.getResource("res/img/logo.gif"));
065 return icon;
066 }
067
068 /**
069 * Returns a menu that provides editing of style.
070 * @return a JMenu component
071 */
072 public JMenu getMenu() {
073 if (menu == null)
074 menu = new StyleMenu(uiController);
075 return menu;
076 }
077
078 /**
079 * Returns a toolbar that provides editing of style.
080 * @return a JToolBar component
081 */
082 public JToolBar getToolBar() {
083 if (toolBar == null)
084 toolBar = new StyleToolBar(uiController);
085 return toolBar;
086 }
087 }