📄 excelexportdialog.java
字号:
/**
* ========================================
* JFreeReport : a free Java report library
* ========================================
*
* Project Info: http://www.jfree.org/jfreereport/index.html
* Project Lead: Thomas Morgner;
*
* (C) Copyright 2000-2003, by Simba Management Limited and Contributors.
*
* This library is free software; you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Foundation;
* either version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307, USA.
*
* ----------------------
* ExcelExportDialog.java
* ----------------------
* (C)opyright 2003, by Heiko Evermann and Contributors.
*
* Original Author: Heiko Evermann (for Hawesko GmbH & Co KG, based on PDFSaveDialog);
* Contributor(s): Thomas Morgner;
* David Gilbert (for Simba Management Limited);
*
* $Id: ExcelExportDialog.java,v 1.17.2.2 2003/08/24 14:18:11 taqua Exp $
*
* Changes
* --------
* 02-Jan-2003 : Initial version
* 25-Feb-2003 : Added missing Javadocs (DG);
*
*/
package com.jrefinery.report.preview;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.text.MessageFormat;
import java.util.ResourceBundle;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import com.jrefinery.report.JFreeReport;
import com.jrefinery.report.targets.table.excel.ExcelProcessor;
import com.jrefinery.report.util.ActionButton;
import com.jrefinery.report.util.ExceptionDialog;
import com.jrefinery.report.util.FilesystemFilter;
import com.jrefinery.report.util.ReportConfiguration;
import com.jrefinery.report.util.StringUtil;
/**
* A dialog that is used to perform the printing of a report into an Excel file.
* <p>
* The main method to call the dialog is {@link ExcelExportDialog#performExport}. Given a report
* and a pageformat, the dialog is shown and if the user approved the dialog, the excel file
* is saved using the settings made in the dialog.
*
* @author Heiko Evermann
*/
public class ExcelExportDialog extends JDialog
{
/**
* Internal action class to confirm the dialog and to validate the input.
*/
private class ActionConfirm extends AbstractAction
{
/**
* Default constructor.
*/
public ActionConfirm()
{
putValue(Action.NAME, getResources().getString("excelexportdialog.confirm"));
}
/**
* Receives notification that the action has occurred.
*
* @param e the action event.
*/
public void actionPerformed(final ActionEvent e)
{
if (performValidate())
{
setConfirmed(true);
setVisible(false);
}
}
}
/**
* Internal action class to cancel the report processing.
*/
private class ActionCancel extends AbstractAction
{
/**
* Default constructor.
*/
public ActionCancel()
{
putValue(Action.NAME, getResources().getString("excelexportdialog.cancel"));
}
/**
* Receives notification that the action has occurred.
*
* @param e the action event.
*/
public void actionPerformed(final ActionEvent e)
{
setConfirmed(false);
setVisible(false);
}
}
/**
* Internal action class to select a target file.
*/
private class ActionSelectFile extends AbstractAction
{
/**
* Default constructor.
*/
public ActionSelectFile()
{
putValue(Action.NAME, getResources().getString("excelexportdialog.selectFile"));
}
/**
* Receives notification that the action has occurred.
*
* @param e the action event.
*/
public void actionPerformed(final ActionEvent e)
{
performSelectFile();
}
}
/** Confirm action. */
private Action actionConfirm;
/** Cancel action. */
private Action actionCancel;
/** Select file action. */
private Action actionSelectFile;
/** Filename text field. */
private JTextField txFilename;
/** The strict layout check-box. */
private JCheckBox cbStrictLayout;
/** Confirmed flag. */
private boolean confirmed;
/** Confirm button. */
private JButton btnConfirm;
/** Cancel button. */
private JButton btnCancel;
/** Localised resources. */
private ResourceBundle resources;
/** A file chooser. */
private JFileChooser fileChooser;
/** The base resource class. */
public static final String BASE_RESOURCE_CLASS =
"com.jrefinery.report.resources.JFreeReportResources";
/**
* Creates a new Excel save dialog.
*
* @param owner the dialog owner.
*/
public ExcelExportDialog(final Frame owner)
{
super(owner);
initConstructor();
}
/**
* Creates a new Excel dialog.
*
* @param owner the dialog owner.
*/
public ExcelExportDialog(final Dialog owner)
{
super(owner);
initConstructor();
}
/**
* Creates a new Excel save dialog. The created dialog is modal.
*/
public ExcelExportDialog()
{
initConstructor();
}
/**
* Initialisation.
*/
private void initConstructor()
{
setModal(true);
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
resources = ResourceBundle.getBundle(BASE_RESOURCE_CLASS);
setTitle(resources.getString("excelexportdialog.dialogtitle"));
initialize();
clear();
addWindowListener(new WindowAdapter()
{
public void windowClosing(final WindowEvent e)
{
getActionCancel().actionPerformed(null);
}
}
);
}
/**
* Returns the resource bundle used for that dialog.
*
* @return the resource bundle
*/
protected ResourceBundle getResources()
{
return resources;
}
/**
* Returns a single instance of the file selection action.
*
* @return the action.
*/
private Action getActionSelectFile()
{
if (actionSelectFile == null)
{
actionSelectFile = new ActionSelectFile();
}
return actionSelectFile;
}
/**
* Returns a single instance of the dialog confirm action.
*
* @return the action.
*/
private Action getActionConfirm()
{
if (actionConfirm == null)
{
actionConfirm = new ActionConfirm();
}
return actionConfirm;
}
/**
* Returns a single instance of the dialog cancel action.
*
* @return the action.
*/
protected Action getActionCancel()
{
if (actionCancel == null)
{
actionCancel = new ActionCancel();
}
return actionCancel;
}
/**
* Initializes the Swing components of this dialog.
*/
private void initialize()
{
final JPanel contentPane = new JPanel();
contentPane.setLayout(new GridBagLayout());
contentPane.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));
final JLabel lblFileName = new JLabel(getResources().getString("excelexportdialog.filename"));
final JButton btnSelect = new ActionButton(getActionSelectFile());
txFilename = new JTextField();
cbStrictLayout = new JCheckBox(getResources().getString("excelexportdialog.strict-layout"));
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.anchor = GridBagConstraints.WEST;
gbc.insets = new Insets(3, 1, 1, 1);
contentPane.add(lblFileName, gbc);
gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weightx = 1;
gbc.gridx = 1;
gbc.gridy = 0;
gbc.ipadx = 120;
gbc.insets = new Insets(3, 1, 1, 1);
contentPane.add(txFilename, gbc);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -