001: package com.calipso.reportgenerator.userinterface;
002:
003: import net.sf.jasperreports.view.JRViewer;
004: import net.sf.jasperreports.engine.export.JRXlsExporter;
005: import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
006: import net.sf.jasperreports.engine.export.JRCsvExporter;
007: import net.sf.jasperreports.engine.*;
008:
009: import javax.swing.*;
010: import java.awt.*;
011: import java.awt.event.ActionListener;
012: import java.awt.event.ActionEvent;
013:
014: import com.calipso.reportgenerator.common.LanguageTraslator;
015: import com.calipso.reportgenerator.common.ShowExceptionMessageDialog;
016:
017: /**
018: * Representa la interfaz del reporte estatico
019: */
020:
021: public class JasperReportUI extends JFrame implements ActionListener {
022:
023: private JasperPrint print;
024: private JMenuItem menuItemPdf;
025: private JMenuItem menuItemCvs;
026: private JMenuItem menuItemExcel;
027: private JMenuItem menuItemHtml;
028: private JMenuItem menuItemXml;
029: private JMenuItem menuItemExit;
030:
031: /**
032: * Inicializa una instancia de <code>JasperReportUI</code>
033: * @param jrViewer
034: * @param print
035: */
036: public JasperReportUI(JRViewer jrViewer, JasperPrint print) {
037: this .print = print;
038: initialize(jrViewer);
039: }
040:
041: /**
042: * Inicializa la interfaz
043: * @param jrViewer
044: */
045: private void initialize(JRViewer jrViewer) {
046: setTitle(LanguageTraslator.traslate("331"));
047: setJMenuBar(getFrameMenuBar());
048: getContentPane().setLayout(new BorderLayout());
049: JScrollPane pane = new JScrollPane(jrViewer);
050: pane.setViewportView(jrViewer);
051: getContentPane().add(pane, BorderLayout.CENTER);
052: }
053:
054: private JMenuBar getFrameMenuBar() {
055: JMenuBar menuBar = new JMenuBar();
056:
057: JMenu menuFile = new JMenu(
058: com.calipso.reportgenerator.common.LanguageTraslator
059: .traslate("301"));
060:
061: menuItemPdf = new JMenuItem(
062: com.calipso.reportgenerator.common.LanguageTraslator
063: .traslate("302"));
064: menuItemPdf.addActionListener(this );
065: menuFile.add(menuItemPdf);
066:
067: menuItemHtml = new JMenuItem(
068: com.calipso.reportgenerator.common.LanguageTraslator
069: .traslate("303"));
070: menuItemHtml.addActionListener(this );
071: menuFile.add(menuItemHtml);
072:
073: menuItemExcel = new JMenuItem(
074: com.calipso.reportgenerator.common.LanguageTraslator
075: .traslate("304"));
076: menuItemExcel.addActionListener(this );
077: menuFile.add(menuItemExcel);
078:
079: menuItemCvs = new JMenuItem(
080: com.calipso.reportgenerator.common.LanguageTraslator
081: .traslate("305"));
082: menuItemCvs.addActionListener(this );
083: menuFile.add(menuItemCvs);
084:
085: menuItemXml = new JMenuItem(
086: com.calipso.reportgenerator.common.LanguageTraslator
087: .traslate("306"));
088: menuItemXml.addActionListener(this );
089: menuFile.add(menuItemXml);
090:
091: menuFile.addSeparator();
092:
093: menuItemExit = new JMenuItem(
094: com.calipso.reportgenerator.common.LanguageTraslator
095: .traslate("144"));
096: menuItemExit.addActionListener(this );
097: menuFile.add(menuItemExit);
098:
099: menuBar.add(menuFile);
100:
101: return menuBar;
102: }
103:
104: /**
105: * Captura los eventos de la interfaz
106: * @param ae
107: */
108: public void actionPerformed(ActionEvent ae) {
109: if (ae.getSource() == menuItemExit) {
110: dispose();
111: } else {
112: JFileChooser fileChooser = new JFileChooser();
113: int result = fileChooser.showSaveDialog(this );
114: if (result == JFileChooser.APPROVE_OPTION) {
115: try {
116: if (ae.getSource() == menuItemPdf) {
117: JasperPrintManager.printReportToPdfFile(print,
118: fileChooser.getSelectedFile()
119: .toString());
120: } else if (ae.getSource() == menuItemHtml) {
121: JasperExportManager.exportReportToHtmlFile(
122: print, fileChooser.getSelectedFile()
123: .toString());
124: } else if (ae.getSource() == menuItemExcel) {
125: JRExporter exporter = new JRXlsExporter();
126: exporter
127: .setParameter(
128: JRExporterParameter.JASPER_PRINT,
129: print);
130: exporter.setParameter(
131: JRExporterParameter.OUTPUT_FILE_NAME,
132: fileChooser.getSelectedFile()
133: .toString());
134: exporter
135: .setParameter(
136: JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,
137: Boolean.TRUE);
138: exporter.exportReport();
139: } else if (ae.getSource() == menuItemCvs) {
140: JRCsvExporter exporter = new JRCsvExporter();
141: exporter
142: .setParameter(
143: JRExporterParameter.JASPER_PRINT,
144: print);
145: exporter.setParameter(
146: JRExporterParameter.OUTPUT_FILE_NAME,
147: fileChooser.getSelectedFile()
148: .toString());
149: exporter.exportReport();
150: } else if (ae.getSource() == menuItemXml) {
151: JasperPrintManager.printReportToXmlFile(print,
152: fileChooser.getSelectedFile()
153: .toString(), true);
154: }
155: } catch (JRException e) {
156: ShowExceptionMessageDialog
157: .initExceptionDialogMessage(
158: com.calipso.reportgenerator.common.LanguageTraslator
159: .traslate("311"), e);
160: }
161: }
162: }
163: }
164: }
|