Package cli_fmw.report.implemenatation

Source Code of cli_fmw.report.implemenatation.ReportPreview

/*
* ReportPreview.java
*
* Created on August 12, 2008, 11:06 AM
*/

package cli_fmw.report.implemenatation;

import cli_fmw.main.MainWindow;
import java.awt.Dialog;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Toolkit;
import java.awt.Window;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JRViewer;
import net.sf.jasperreports.view.JasperViewer;

/**
* Модальный диалог отрисовывающий отчет для предпросмотра
* @author  finder
*/
public class ReportPreview extends javax.swing.JDialog {
  static final long serialVersionUID = 564984125464521894L;
  protected JRViewer      viewer;
    /** Creates new form ReportPreview */
    private ReportPreview(java.awt.Frame parent, boolean modal, JasperPrint report) {
        super(parent, modal);
        initComponents();
   
    setLocale(JasperFormReporter.RUS_LOCALE);
    viewer = new JRViewer(report, JasperFormReporter.RUS_LOCALE);
    add(viewer);
    viewer.setZoomRatio(1);

    Toolkit toolkit = Toolkit.getDefaultToolkit();
    Dimension screenSize = toolkit.getScreenSize();
    int screenResolution = toolkit.getScreenResolution();
    float zoom = ((float) screenResolution) / JRViewer.REPORT_RESOLUTION;

    int height = (int) (report.getPageHeight() + 48 * zoom);
    if (height > screenSize.getHeight())
    {
      height = (int) screenSize.getHeight();
    }
    int width = (int) (report.getPageWidth() + 24 * zoom);
    if (width > screenSize.getWidth())
    {
      width = (int) screenSize.getWidth();
    }

    java.awt.Dimension dimension = new java.awt.Dimension(width, height);
    setSize(dimension);
    setLocation((screenSize.width-width)/2,(screenSize.height-height)/2);

    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Просмотр перед печатью");
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosed(java.awt.event.WindowEvent evt) {
                formWindowClosed(evt);
            }
            public void windowClosing(java.awt.event.WindowEvent evt) {
                formWindowClosing(evt);
            }
        });

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-764)/2, (screenSize.height-673)/2, 764, 673);
    }// </editor-fold>//GEN-END:initComponents

private void formWindowClosed(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosed

}//GEN-LAST:event_formWindowClosed

private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
  viewer.clear();
  viewer = null;
  getContentPane().removeAll();
  dispose();
}//GEN-LAST:event_formWindowClosing
 
/**
* Создает новый модальный диалог, в котором будет отображен отчет для
* предварительного просмотра, такжа в нем есть кнопки распичатки и сохранения на диск.
* @param report - заполненый отчет для предпросмотра/распечатки
*/
  public static void showReport(final JasperPrint report){
    EventQueue.invokeLater(new Runnable() {
      @Override
      public void run() {
        Window[]    windows = Window.getWindows();
        for (Window window : windows) {
          if (window instanceof Dialog){
            Dialog      dlg = (Dialog) window;
            if (dlg.isModal() && dlg.isVisible()){
              ReportPreview    preview = new ReportPreview(MainWindow.mainWindow, true, report);
              preview.setVisible(true);
              preview.toFront();
              return;
            }
          }
        }
        JasperViewer.viewReport(report, false, JasperReporter.RUS_LOCALE);
      }
    });
  }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    // End of variables declaration//GEN-END:variables

}
TOP

Related Classes of cli_fmw.report.implemenatation.ReportPreview

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.