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: GoToPreviousPageActionPlugin.java 3525 2007-10-16 11:43:48Z tmorgner $
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.util.Locale;
035    import javax.swing.Icon;
036    import javax.swing.KeyStroke;
037    
038    import org.jfree.report.modules.gui.swing.common.AbstractActionPlugin;
039    import org.jfree.report.modules.gui.swing.common.SwingGuiContext;
040    import org.jfree.report.modules.gui.swing.preview.PreviewPane;
041    import org.jfree.report.modules.gui.swing.preview.SwingPreviewModule;
042    import org.jfree.util.ResourceBundleSupport;
043    
044    /**
045     * Creation-Date: 16.11.2006, 16:34:55
046     *
047     * @author Thomas Morgner
048     */
049    public class GoToPreviousPageActionPlugin extends AbstractActionPlugin
050        implements ControlActionPlugin
051    {
052      private ResourceBundleSupport resources;
053    
054      public GoToPreviousPageActionPlugin()
055      {
056      }
057    
058      public boolean initialize(final SwingGuiContext context)
059      {
060        super.initialize(context);
061        resources = new ResourceBundleSupport(context.getLocale(),
062            SwingPreviewModule.BUNDLE_NAME);
063        return true;
064      }
065    
066      protected String getConfigurationPrefix()
067      {
068        return "org.jfree.report.modules.gui.swing.preview.go-to-previous.";
069      }
070    
071      /**
072       * Returns the display name for the export action.
073       *
074       * @return The display name.
075       */
076      public String getDisplayName()
077      {
078        return resources.getString("action.back.name");
079      }
080    
081      /**
082       * Returns the short description for the export action.
083       *
084       * @return The short description.
085       */
086      public String getShortDescription()
087      {
088        return resources.getString("action.back.description");
089      }
090    
091      /**
092       * Returns the small icon for the export action.
093       *
094       * @return The icon.
095       */
096      public Icon getSmallIcon()
097      {
098        final Locale locale = getContext().getLocale();
099        return getIconTheme().getSmallIcon(locale, "action.back.small-icon");
100      }
101    
102      /**
103       * Returns the large icon for the export action.
104       *
105       * @return The icon.
106       */
107      public Icon getLargeIcon()
108      {
109        final Locale locale = getContext().getLocale();
110        return getIconTheme().getLargeIcon(locale, "action.back.icon");
111      }
112    
113      /**
114       * Returns the accelerator key for the export action.
115       *
116       * @return The accelerator key.
117       */
118      public KeyStroke getAcceleratorKey()
119      {
120        return resources.getKeyStroke("action.back.accelerator");
121      }
122    
123      /**
124       * Returns the mnemonic key code.
125       *
126       * @return The code.
127       */
128      public Integer getMnemonicKey()
129      {
130        return resources.getMnemonic("action.back.mnemonic");
131      }
132    
133      public boolean configure(final PreviewPane reportPane)
134      {
135        reportPane.setPageNumber(Math.max (1, reportPane.getPageNumber() - 1));
136        return true;
137      }
138    
139    }