001 /**
002 * ========================================
003 * JFreeReport : a free Java report library
004 * ========================================
005 *
006 * Project Info: http://reporting.pentaho.org/
007 *
008 * (C) Copyright 2000-2007, by Object Refinery Limited, Pentaho Corporation and Contributors.
009 *
010 * This library is free software; you can redistribute it and/or modify it under the terms
011 * of the GNU Lesser General Public License as published by the Free Software Foundation;
012 * either version 2.1 of the License, or (at your option) any later version.
013 *
014 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
015 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
016 * See the GNU Lesser General Public License for more details.
017 *
018 * You should have received a copy of the GNU Lesser General Public License along with this
019 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
020 * Boston, MA 02111-1307, USA.
021 *
022 * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
023 * in the United States and other countries.]
024 *
025 * ------------
026 * $Id: AboutActionPlugin.java,v 1.4 2007/06/10 15:54:22 taqua Exp $
027 * ------------
028 * (C) Copyright 2000-2005, by Object Refinery Limited.
029 * (C) Copyright 2005-2007, by Pentaho Corporation.
030 */
031
032 package org.jfree.report.modules.gui.swing.preview.actions;
033
034 import java.awt.Dialog;
035 import java.awt.Frame;
036 import java.awt.Window;
037 import java.util.Locale;
038 import javax.swing.Icon;
039 import javax.swing.KeyStroke;
040
041 import org.jfree.report.JFreeReportInfo;
042 import org.jfree.report.modules.gui.swing.common.AbstractActionPlugin;
043 import org.jfree.report.modules.gui.swing.common.SwingGuiContext;
044 import org.jfree.report.modules.gui.swing.common.SwingUtil;
045 import org.jfree.report.modules.gui.swing.preview.PreviewPane;
046 import org.jfree.report.modules.gui.swing.preview.SwingPreviewModule;
047 import org.jfree.ui.RefineryUtilities;
048 import org.jfree.ui.about.AboutDialog;
049 import org.jfree.util.ResourceBundleSupport;
050
051 /**
052 * Creation-Date: 16.11.2006, 16:34:55
053 *
054 * @author Thomas Morgner
055 */
056 public class AboutActionPlugin extends AbstractActionPlugin
057 implements ControlActionPlugin
058 {
059 private ResourceBundleSupport resources;
060 private AboutDialog aboutFrame;
061
062 public AboutActionPlugin()
063 {
064 }
065
066 public boolean initialize(SwingGuiContext context)
067 {
068 super.initialize(context);
069 resources = new ResourceBundleSupport(context.getLocale(),
070 SwingPreviewModule.BUNDLE_NAME);
071 return true;
072 }
073
074 protected String getConfigurationPrefix()
075 {
076 return "org.jfree.report.modules.gui.swing.preview.about.";
077 }
078
079 /**
080 * Returns the display name for the export action.
081 *
082 * @return The display name.
083 */
084 public String getDisplayName()
085 {
086 return resources.getString("action.about.name");
087 }
088
089 /**
090 * Returns the short description for the export action.
091 *
092 * @return The short description.
093 */
094 public String getShortDescription()
095 {
096 return resources.getString("action.about.description");
097 }
098
099 /**
100 * Returns the small icon for the export action.
101 *
102 * @return The icon.
103 */
104 public Icon getSmallIcon()
105 {
106 final Locale locale = getContext().getLocale();
107 return getIconTheme().getSmallIcon(locale, "action.about.small-icon");
108 }
109
110 /**
111 * Returns the large icon for the export action.
112 *
113 * @return The icon.
114 */
115 public Icon getLargeIcon()
116 {
117 final Locale locale = getContext().getLocale();
118 return getIconTheme().getLargeIcon(locale, "action.about.icon");
119 }
120
121 /**
122 * Returns the accelerator key for the export action.
123 *
124 * @return The accelerator key.
125 */
126 public KeyStroke getAcceleratorKey()
127 {
128 return null;
129 }
130
131 /**
132 * Returns the mnemonic key code.
133 *
134 * @return The code.
135 */
136 public Integer getMnemonicKey()
137 {
138 return resources.getMnemonic("action.about.mnemonic");
139 }
140
141 public boolean configure(PreviewPane reportPane)
142 {
143 if (aboutFrame == null)
144 {
145 final String title = getDisplayName();
146 // look where we have been added ...
147 Window w = SwingUtil.getWindowAncestor(reportPane);
148 if (w instanceof Frame)
149 {
150 aboutFrame = new AboutDialog
151 ((Frame) w, title, JFreeReportInfo.getInstance());
152 }
153 else if (w instanceof Dialog)
154 {
155 aboutFrame = new AboutDialog
156 ((Dialog) w, title, JFreeReportInfo.getInstance());
157 }
158 else
159 {
160 aboutFrame = new AboutDialog
161 (title, JFreeReportInfo.getInstance());
162 }
163 aboutFrame.pack();
164 RefineryUtilities.centerFrameOnScreen(aboutFrame);
165 }
166
167 aboutFrame.setVisible(true);
168 aboutFrame.requestFocus();
169 return true;
170 }
171
172 }