01: /**
02: * ========================================
03: * JFreeReport : a free Java report library
04: * ========================================
05: *
06: * Project Info: http://reporting.pentaho.org/
07: *
08: * (C) Copyright 2000-2007, by Object Refinery Limited, Pentaho Corporation and Contributors.
09: *
10: * This library is free software; you can redistribute it and/or modify it under the terms
11: * of the GNU Lesser General Public License as published by the Free Software Foundation;
12: * either version 2.1 of the License, or (at your option) any later version.
13: *
14: * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
15: * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16: * See the GNU Lesser General Public License for more details.
17: *
18: * You should have received a copy of the GNU Lesser General Public License along with this
19: * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20: * Boston, MA 02111-1307, USA.
21: *
22: * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
23: * in the United States and other countries.]
24: *
25: * ------------
26: * $Id: ExportAction.java 3525 2007-10-16 11:43:48Z tmorgner $
27: * ------------
28: * (C) Copyright 2000-2005, by Object Refinery Limited.
29: * (C) Copyright 2005-2007, by Pentaho Corporation.
30: */package org.jfree.report.modules.gui.swing.preview.actions;
31:
32: import java.awt.event.ActionEvent;
33: import javax.swing.AbstractAction;
34: import javax.swing.Action;
35:
36: import org.jfree.report.flow.ReportJob;
37: import org.jfree.report.modules.gui.swing.common.ExportActionPlugin;
38: import org.jfree.report.modules.gui.swing.common.SwingCommonModule;
39: import org.jfree.report.modules.gui.swing.preview.PreviewPane;
40: import org.jfree.ui.action.ActionDowngrade;
41:
42: /**
43: * Creation-Date: 16.11.2006, 17:52:48
44: *
45: * @author Thomas Morgner
46: */
47: public class ExportAction extends AbstractAction {
48: private ExportActionPlugin actionPlugin;
49: private PreviewPane previewPane;
50:
51: /**
52: * Defines an <code>Action</code> object with a default description string and
53: * default icon.
54: */
55: public ExportAction(final ExportActionPlugin actionPlugin,
56: final PreviewPane previewPane) {
57: this .actionPlugin = actionPlugin;
58: this .previewPane = previewPane;
59: putValue(Action.NAME, actionPlugin.getDisplayName());
60: putValue(Action.SHORT_DESCRIPTION, actionPlugin
61: .getShortDescription());
62: putValue(ActionDowngrade.ACCELERATOR_KEY, actionPlugin
63: .getAcceleratorKey());
64: putValue(ActionDowngrade.MNEMONIC_KEY, actionPlugin
65: .getMnemonicKey());
66: putValue(Action.SMALL_ICON, actionPlugin.getSmallIcon());
67: putValue(SwingCommonModule.LARGE_ICON_PROPERTY, actionPlugin
68: .getLargeIcon());
69: }
70:
71: /**
72: * Invoked when an action occurs.
73: */
74: public void actionPerformed(final ActionEvent e) {
75: final ReportJob reportJob = previewPane.getReportJob();
76: if (reportJob == null) {
77: return;
78: }
79:
80: final ReportJob job = reportJob.derive();
81: actionPlugin.performExport(job);
82: }
83: }
|