Java Code Examples for org.pentaho.reporting.engine.classic.core.MasterReport#getTitle()

The following examples show how to use org.pentaho.reporting.engine.classic.core.MasterReport#getTitle() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: Java14PrintingPlugin.java    From pentaho-reporting with GNU Lesser General Public License v2.1 6 votes vote down vote up
/**
 * Exports a report.
 *
 * @param report
 *          the report.
 * @return true, if the export was successful, false otherwise.
 */
public boolean performExport( final MasterReport report ) {

  // need to connect to the report pane to receive state updates ...
  final ReportProgressDialog progressDialog;
  if ( "true".equals( report.getReportConfiguration().getConfigProperty( PROGRESS_DIALOG_ENABLE_KEY, "false" ) ) ) {
    progressDialog = createProgressDialog();
    if ( report.getTitle() == null ) {
      progressDialog.setTitle( getResources().getString( "ProgressDialog.EMPTY_TITLE" ) );
    } else {
      progressDialog.setTitle( getResources().formatMessage( "ProgressDialog.TITLE", report.getTitle() ) );
    }
  } else {
    progressDialog = null;
  }

  final Java14RepaginateAndPrintExportTask task =
      new Java14RepaginateAndPrintExportTask( report, progressDialog, getContext().getStatusListener() );
  final Thread worker = new Thread( task );
  worker.start();
  return true;

}
 
Example 2
Source File: PrintingPlugin.java    From pentaho-reporting with GNU Lesser General Public License v2.1 6 votes vote down vote up
/**
 * Exports a report.
 *
 * @param report
 *          the report.
 * @return true, if the export was successful, false otherwise.
 */
public boolean performExport( final MasterReport report ) {
  // need to connect to the report pane to receive state updates ...
  final ReportProgressDialog progressDialog;
  if ( "true".equals( report.getReportConfiguration().getConfigProperty( PrintingPlugin.PROGRESS_DIALOG_ENABLE_KEY,
      "false" ) ) ) { //$NON-NLS-1$ //$NON-NLS-2$
    progressDialog = createProgressDialog();
    if ( report.getTitle() == null ) {
      progressDialog.setTitle( getResources().getString( "ProgressDialog.EMPTY_TITLE" ) );
    } else {
      progressDialog.setTitle( getResources().formatMessage( "ProgressDialog.TITLE", report.getTitle() ) );
    }
  } else {
    progressDialog = null;
  }

  final PrintExportTask task = new PrintExportTask( report, progressDialog, getContext() );
  final Thread worker = new Thread( task );
  worker.start();
  return true;
}
 
Example 3
Source File: ReportDefinitionWriter.java    From pentaho-reporting with GNU Lesser General Public License v2.1 5 votes vote down vote up
/**
 * Writes a report definition to a character stream writer. After the standard XML header and the opening tag is
 * written, this class delegates work to:
 * <p/>
 * <ul>
 * <li>{@link ParserConfigWriter} to write the parser configuration;</li>
 * <li>{@link ReportConfigWriter} to write the report configuration;</li>
 * <li>{@link StylesWriter} to write the templates;</li>
 * <li>{@link ReportDescriptionWriter} to write the report description;</li>
 * <li>{@link FunctionsWriter} to write the function definitions;</li>
 * </ul>
 *
 * @throws IOException
 *           if there is an I/O problem.
 * @throws ReportWriterException
 *           if there is a problem writing the report.
 */
public void write() throws IOException, ReportWriterException {
  final MasterReport report = (MasterReport) getReport();
  final String reportName = report.getTitle();
  final XmlWriter xmlWriter = getXmlWriter();

  final AttributeList attList = new AttributeList();
  attList.addNamespaceDeclaration( "", ExtParserModule.NAMESPACE );
  if ( reportName != null ) {
    attList.setAttribute( ExtParserModule.NAMESPACE, "name", reportName );
  }

  final String query = report.getQuery();
  if ( query != null ) {
    attList.setAttribute( ExtParserModule.NAMESPACE, "query", query );
  }
  attList.setAttribute( ExtParserModule.NAMESPACE, "engine-version", ClassicEngineInfo.getInstance().getVersion() );

  xmlWriter.writeTag( ExtParserModule.NAMESPACE, AbstractXMLDefinitionWriter.REPORT_DEFINITION_TAG, attList,
      XmlWriterSupport.OPEN );

  final ParserConfigWriter parserConfigWriter = new ParserConfigWriter( getReportWriter(), xmlWriter );
  parserConfigWriter.write();

  final ReportConfigWriter reportConfigWriter = new ReportConfigWriter( getReportWriter(), xmlWriter );
  reportConfigWriter.write();

  final ReportDescriptionWriter reportDescriptionWriter = new ReportDescriptionWriter( getReportWriter(), xmlWriter );
  reportDescriptionWriter.write();

  final FunctionsWriter functionsWriter = new FunctionsWriter( getReportWriter(), xmlWriter );
  functionsWriter.write();
  xmlWriter.writeCloseTag();
}
 
Example 4
Source File: PlainTextExportPlugin.java    From pentaho-reporting with GNU Lesser General Public License v2.1 5 votes vote down vote up
/**
 * Shows this dialog and (if the dialog is confirmed) saves the complete report into an Excel file.
 *
 * @param report
 *          the report being processed.
 * @return true or false.
 */
public boolean performExport( final MasterReport report ) {
  final boolean result =
      performShowExportDialog( report, "org.pentaho.reporting.engine.classic.core.modules.gui.plaintext.Dialog" ); //$NON-NLS-1$
  if ( result == false ) {
    // user canceled the dialog ...
    return false;
  }

  final ReportProgressDialog progressDialog;
  if ( isProgressDialogEnabled( report,
      "org.pentaho.reporting.engine.classic.core.modules.gui.plaintext.ProgressDialogEnabled" ) ) {
    progressDialog = createProgressDialog();
    if ( report.getTitle() == null ) {
      progressDialog.setTitle( getResources().getString( "ProgressDialog.EMPTY_TITLE" ) );
    } else {
      progressDialog.setTitle( getResources().formatMessage( "ProgressDialog.TITLE", report.getTitle() ) );
    }
  } else {
    progressDialog = null;
  }

  final PlainTextExportTask task = new PlainTextExportTask( report, progressDialog, getContext() );
  final Thread thread = new Thread( task );
  thread.start();
  return true;
}
 
Example 5
Source File: ExcelExportPlugin.java    From pentaho-reporting with GNU Lesser General Public License v2.1 5 votes vote down vote up
/**
 * Shows this dialog and (if the dialog is confirmed) saves the complete report into an Excel file.
 *
 * @param report
 *          the report being processed.
 * @return true or false.
 */
public boolean performExport( final MasterReport report ) {
  final boolean result =
      performShowExportDialog( report, "org.pentaho.reporting.engine.classic.core.modules.gui.xls.Dialog" ); //$NON-NLS-1$
  if ( result == false ) {
    // user canceled the dialog ...
    return false;
  }

  final ReportProgressDialog progressDialog;
  if ( isProgressDialogEnabled( report,
      "org.pentaho.reporting.engine.classic.core.modules.gui.xls.ProgressDialogEnabled" ) ) {
    progressDialog = createProgressDialog();
    if ( report.getTitle() == null ) {
      progressDialog.setTitle( getResources().getString( "ProgressDialog.EMPTY_TITLE" ) );
    } else {
      progressDialog.setTitle( getResources().formatMessage( "ProgressDialog.TITLE", report.getTitle() ) );
    }
  } else {
    progressDialog = null;
  }

  try {
    final ExcelExportTask task = new ExcelExportTask( report, progressDialog, getContext() );
    final Thread worker = new Thread( task );
    worker.start();
    return true;
  } catch ( Exception e ) {
    getContext().getStatusListener().setStatus( StatusType.ERROR,
        resources.getString( "ExcelExportPlugin.USER_FAILED" ), e ); //$NON-NLS-1$
    return false;
  }
}
 
Example 6
Source File: XSSFExcelExportPlugin.java    From pentaho-reporting with GNU Lesser General Public License v2.1 5 votes vote down vote up
/**
 * Shows this dialog and (if the dialog is confirmed) saves the complete report into an Excel file.
 *
 * @param report
 *          the report being processed.
 * @return true or false.
 */
public boolean performExport( final MasterReport report ) {
  final boolean result =
      performShowExportDialog( report, "org.pentaho.reporting.engine.classic.core.modules.gui.xls.XSSFDialog" ); //$NON-NLS-1$
  if ( result == false ) {
    // user canceled the dialog ...
    return false;
  }

  final ReportProgressDialog progressDialog;
  if ( isProgressDialogEnabled( report,
      "org.pentaho.reporting.engine.classic.core.modules.gui.xls.XSSFProgressDialogEnabled" ) ) {
    progressDialog = createProgressDialog();
    if ( report.getTitle() == null ) {
      progressDialog.setTitle( getResources().getString( "ProgressDialog.EMPTY_TITLE" ) );
    } else {
      progressDialog.setTitle( getResources().formatMessage( "ProgressDialog.TITLE", report.getTitle() ) );
    }
  } else {
    progressDialog = null;
  }

  try {
    final XSSFExcelExportTask task = new XSSFExcelExportTask( report, progressDialog, getContext() );
    final Thread worker = new Thread( task );
    worker.start();
    return true;
  } catch ( Exception e ) {
    getContext().getStatusListener().setStatus( StatusType.ERROR,
        resources.getString( "ExcelExportPlugin.USER_FAILED" ), e ); //$NON-NLS-1$
    return false;
  }
}
 
Example 7
Source File: PdfExportPlugin.java    From pentaho-reporting with GNU Lesser General Public License v2.1 5 votes vote down vote up
/**
 * Shows this dialog and (if the dialog is confirmed) saves the complete report into an PDF file.
 *
 * @param report
 *          the report being processed.
 * @return true or false.
 */
public boolean performExport( final MasterReport report ) {
  final boolean result =
      performShowExportDialog( report, "org.pentaho.reporting.engine.classic.core.modules.gui.pdf.Dialog" ); //$NON-NLS-1$
  if ( result == false ) {
    // user canceled the dialog ...
    return false;
  }

  final ReportProgressDialog progressDialog;
  if ( isProgressDialogEnabled( report,
      "org.pentaho.reporting.engine.classic.core.modules.gui.pdf.ProgressDialogEnabled" ) ) {
    progressDialog = createProgressDialog();
    if ( report.getTitle() == null ) {
      progressDialog.setTitle( getResources().getString( "ProgressDialog.EMPTY_TITLE" ) );
    } else {
      progressDialog.setTitle( getResources().formatMessage( "ProgressDialog.TITLE", report.getTitle() ) );
    }
  } else {
    progressDialog = null;
  }

  try {
    final PdfExportTask task = new PdfExportTask( report, progressDialog, getContext() );
    final Thread worker = new Thread( task );
    worker.start();
    return true;
  } catch ( Exception e ) {
    PdfExportPlugin.logger.error( "Failure while preparing the PDF export", e ); //$NON-NLS-1$
    getContext().getStatusListener().setStatus( StatusType.ERROR,
        resources.getString( "PdfExportPlugin.USER_FAILED" ), e ); //$NON-NLS-1$
    return false;
  }
}
 
Example 8
Source File: RTFExportPlugin.java    From pentaho-reporting with GNU Lesser General Public License v2.1 5 votes vote down vote up
/**
 * Shows this dialog and (if the dialog is confirmed) saves the complete report into an Excel file.
 *
 * @param report
 *          the report being processed.
 * @return true or false.
 */
public boolean performExport( final MasterReport report ) {
  final boolean result =
      performShowExportDialog( report, "org.pentaho.reporting.engine.classic.core.modules.gui.rtf.Dialog" ); //$NON-NLS-1$
  if ( result == false ) {
    // user canceled the dialog ...
    return false;
  }

  final ReportProgressDialog progressDialog;
  if ( isProgressDialogEnabled( report,
      "org.pentaho.reporting.engine.classic.core.modules.gui.rtf.ProgressDialogEnabled" ) ) {
    progressDialog = createProgressDialog();
    if ( report.getTitle() == null ) {
      progressDialog.setTitle( getResources().getString( "ProgressDialog.EMPTY_TITLE" ) );
    } else {
      progressDialog.setTitle( getResources().formatMessage( "ProgressDialog.TITLE", report.getTitle() ) );
    }
  } else {
    progressDialog = null;
  }

  try {
    final RTFExportTask task = new RTFExportTask( report, progressDialog, getContext() );
    final Thread worker = new Thread( task );
    worker.start();
    return true;
  } catch ( Exception e ) {
    getContext().getStatusListener().setStatus( StatusType.ERROR,
        resources.getString( "RTFExportPlugin.USER_FAILED" ), e ); //$NON-NLS-1$
    return false;
  }
}
 
Example 9
Source File: HtmlDirExportPlugin.java    From pentaho-reporting with GNU Lesser General Public License v2.1 5 votes vote down vote up
/**
 * Shows this dialog and (if the dialog is confirmed) saves the complete report into an Excel file.
 *
 * @param report
 *          the report being processed.
 * @return true or false.
 */
public boolean performExport( final MasterReport report ) {
  final boolean result =
      performShowExportDialog( report, "org.pentaho.reporting.engine.classic.core.modules.gui.html.file.Dialog" ); //$NON-NLS-1$
  if ( result == false ) {
    // user canceled the dialog ...
    return false;
  }

  final ReportProgressDialog progressDialog;
  if ( isProgressDialogEnabled( report,
      "org.pentaho.reporting.engine.classic.core.modules.gui.html.file.ProgressDialogEnabled" ) ) {
    progressDialog = createProgressDialog();
    if ( report.getTitle() == null ) {
      progressDialog.setTitle( getResources().getString( "ProgressDialog.EMPTY_TITLE" ) );
    } else {
      progressDialog.setTitle( getResources().formatMessage( "ProgressDialog.TITLE", report.getTitle() ) );
    }
  } else {
    progressDialog = null;
  }

  try {
    final HtmlDirExportTask task = new HtmlDirExportTask( report, progressDialog, getContext() );
    final Thread worker = new Thread( task );
    worker.start();
    return true;
  } catch ( Exception e ) {
    HtmlDirExportPlugin.logger.error( "Failure while preparing the HTML export", e ); //$NON-NLS-1$
    getContext().getStatusListener().setStatus( StatusType.ERROR,
        resources.getString( "HtmlDirExportPlugin.USER_FAILED" ), e ); //$NON-NLS-1$
    return false;
  }
}
 
Example 10
Source File: HtmlStreamExportPlugin.java    From pentaho-reporting with GNU Lesser General Public License v2.1 5 votes vote down vote up
/**
 * Shows this dialog and (if the dialog is confirmed) saves the complete report into an Excel file.
 *
 * @param report
 *          the report being processed.
 * @return true or false.
 */
public boolean performExport( final MasterReport report ) {
  final boolean result =
      performShowExportDialog( report, "org.pentaho.reporting.engine.classic.core.modules.gui.html.stream.Dialog" ); //$NON-NLS-1$
  if ( result == false ) {
    // user canceled the dialog ...
    return false;
  }

  final ReportProgressDialog progressDialog;
  if ( isProgressDialogEnabled( report,
      "org.pentaho.reporting.engine.classic.core.modules.gui.html.stream.ProgressDialogEnabled" ) ) {
    progressDialog = createProgressDialog();
    final String title = report.getTitle();
    if ( title == null ) {
      progressDialog.setTitle( getResources().getString( "ProgressDialog.EMPTY_TITLE" ) );
    } else {
      progressDialog.setTitle( getResources().formatMessage( "ProgressDialog.TITLE", title ) );
    }
  } else {
    progressDialog = null;
  }

  try {
    final HtmlStreamExportTask task = new HtmlStreamExportTask( report, progressDialog, getContext() );
    final Thread worker = new Thread( task );
    worker.start();
    return true;
  } catch ( Exception e ) {
    HtmlStreamExportPlugin.logger.error( "Failure while preparing the HTML export", e ); //$NON-NLS-1$
    getContext().getStatusListener().setStatus( StatusType.ERROR,
        getResources().getString( "HtmlStreamExportPlugin.USER_FAILED" ), e ); //$NON-NLS-1$
    return false;
  }
}
 
Example 11
Source File: HtmlZipExportPlugin.java    From pentaho-reporting with GNU Lesser General Public License v2.1 5 votes vote down vote up
/**
 * Shows this dialog and (if the dialog is confirmed) saves the complete report into an Excel file.
 *
 * @param report
 *          the report being processed.
 * @return true or false.
 */
public boolean performExport( final MasterReport report ) {
  final boolean result =
      performShowExportDialog( report, "org.pentaho.reporting.engine.classic.core.modules.gui.html.zip.Dialog" ); //$NON-NLS-1$
  if ( result == false ) {
    // user canceled the dialog ...
    return false;
  }

  final ReportProgressDialog progressDialog;
  if ( isProgressDialogEnabled( report,
      "org.pentaho.reporting.engine.classic.core.modules.gui.html.zip.ProgressDialogEnabled" ) ) {
    progressDialog = createProgressDialog();
    if ( report.getTitle() == null ) {
      progressDialog.setTitle( getResources().getString( "ProgressDialog.EMPTY_TITLE" ) );
    } else {
      progressDialog.setTitle( getResources().formatMessage( "ProgressDialog.TITLE", report.getTitle() ) );
    }
  } else {
    progressDialog = null;
  }

  try {
    final HtmlZipExportTask task = new HtmlZipExportTask( report, progressDialog, getContext() );
    final Thread worker = new Thread( task );
    worker.start();
    return true;
  } catch ( Exception e ) {
    HtmlZipExportPlugin.logger.error( "Failure while preparing the HTML export", e ); //$NON-NLS-1$
    getContext().getStatusListener().setStatus( StatusType.ERROR,
        getResources().getString( "HtmlZipExportPlugin.USER_FAILED" ), e ); //$NON-NLS-1$
    return false;
  }
}
 
Example 12
Source File: CSVDataExportPlugin.java    From pentaho-reporting with GNU Lesser General Public License v2.1 5 votes vote down vote up
/**
 * Shows this dialog and (if the dialog is confirmed) saves the complete report into an comma separated values file.
 *
 * @param report
 *          the report being processed.
 * @return true or false.
 */
public boolean performExport( final MasterReport report ) {
  if ( report == null ) {
    throw new NullPointerException();
  }

  final boolean result =
      performShowExportDialog( report, "org.pentaho.reporting.engine.classic.core.modules.gui.csv.data.Dialog" ); //$NON-NLS-1$
  if ( result == false ) {
    // user canceled the dialog ...
    return false;
  }

  final ReportProgressDialog progressDialog;
  if ( isProgressDialogEnabled( report,
      "org.pentaho.reporting.engine.classic.core.modules.gui.csv.data.ProgressDialogEnabled" ) ) { // NON-NLS
    progressDialog = createProgressDialog();
    if ( report.getTitle() == null ) {
      progressDialog.setTitle( getResources().getString( "ProgressDialog.EMPTY_TITLE" ) );
    } else {
      progressDialog.setTitle( getResources().formatMessage( "ProgressDialog.TITLE", report.getTitle() ) );
    }
  } else {
    progressDialog = null;
  }

  try {
    final Runnable task = new CSVDataExportTask( report, progressDialog, getContext() );
    final Thread worker = new Thread( task );
    worker.start();
    return true;
  } catch ( Exception e ) {
    CSVDataExportPlugin.logger.error( "Failure while preparing the CSV export", e ); //$NON-NLS-1$
    getContext().getStatusListener().setStatus( StatusType.ERROR,
        getResources().getString( "CVSExportPlugin.ERROR_0001_FAILED" ), e ); //$NON-NLS-1$
    return false;
  }
}
 
Example 13
Source File: CSVTableExportPlugin.java    From pentaho-reporting with GNU Lesser General Public License v2.1 5 votes vote down vote up
/**
 * Shows this dialog and (if the dialog is confirmed) saves the complete report into an comma separated values file.
 *
 * @param report
 *          the report being processed.
 * @return true or false.
 */
public boolean performExport( final MasterReport report ) {
  if ( report == null ) {
    throw new NullPointerException();
  }

  final boolean result =
      performShowExportDialog( report, "org.pentaho.reporting.engine.classic.core.modules.gui.csv.table.Dialog" ); //$NON-NLS-1$
  if ( result == false ) {
    // user canceled the dialog ...
    return false;
  }

  final ReportProgressDialog progressDialog;
  if ( isProgressDialogEnabled( report,
      "org.pentaho.reporting.engine.classic.core.modules.gui.csv.table.ProgressDialogEnabled" ) ) { //$NON-NLS-1$
    progressDialog = createProgressDialog();
    if ( report.getTitle() == null ) {
      progressDialog.setTitle( getResources().getString( "ProgressDialog.EMPTY_TITLE" ) );
    } else {
      progressDialog.setTitle( getResources().formatMessage( "ProgressDialog.TITLE", report.getTitle() ) );
    }
  } else {
    progressDialog = null;
  }

  try {
    final Runnable task = new CSVTableExportTask( report, progressDialog, getContext() );
    final Thread worker = new Thread( task );
    worker.start();
    return true;
  } catch ( Exception e ) {
    CSVTableExportPlugin.logger.error( "Failure while preparing the CSV export", e ); //$NON-NLS-1$
    getContext().getStatusListener().setStatus( StatusType.ERROR,
        getResources().getString( "CVSExportPlugin.ERROR_0001_FAILED" ), e ); //$NON-NLS-1$
    return false;
  }
}
 
Example 14
Source File: PreviewDialog.java    From pentaho-reporting with GNU Lesser General Public License v2.1 4 votes vote down vote up
protected void init() {
  setDefaultCloseOperation( JDialog.DISPOSE_ON_CLOSE );

  addComponentListener( new RequestFocusHandler() );
  messages =
      new Messages( getLocale(), SwingPreviewModule.BUNDLE_NAME, ObjectUtilities
          .getClassLoader( SwingPreviewModule.class ) );

  previewPane = new PreviewPane();
  previewPane.setDeferredRepagination( true );
  addComponentListener( new TriggerPaginationListener( previewPane ) );

  statusBar = new JStatusBar( previewPane.getIconTheme() );

  pageLabel = new JLabel();

  final Configuration configuration = ClassicEngineBoot.getInstance().getGlobalConfig();
  final boolean progressBarEnabled = "true".equals( configuration //$NON-NLS-1$
      .getConfigProperty( "org.pentaho.reporting.engine.classic.core.modules.gui.base.ProgressBarEnabled" ) ); //$NON-NLS-1$
  final boolean progressDialogEnabled = "true".equals( configuration //$NON-NLS-1$
      .getConfigProperty( "org.pentaho.reporting.engine.classic.core.modules.gui.base.ProgressDialogEnabled" ) ); //$NON-NLS-1$

  if ( progressBarEnabled ) {
    progressBar = new ReportProgressBar();
    progressBar.setVisible( false );
    previewPane.addReportProgressListener( progressBar );
    previewPane.addPropertyChangeListener( new PreviewPanePropertyChangeHandler() );
  } else {
    progressBar = null;
  }

  if ( progressDialogEnabled ) {
    progressDialog = new ReportProgressDialog( this );
    final MasterReport reportJob = previewPane.getReportJob();
    if ( reportJob == null || reportJob.getTitle() == null ) {
      progressDialog.setTitle( messages.getString( "ProgressDialog.EMPTY_TITLE" ) );
      progressDialog.setMessage( messages.getString( "ProgressDialog.EMPTY_TITLE" ) );
    } else {
      progressDialog.setTitle( messages.getString( "ProgressDialog.TITLE", reportJob.getTitle() ) );
      progressDialog.setMessage( messages.getString( "ProgressDialog.TITLE", reportJob.getTitle() ) );
    }
    progressDialog.pack();
  } else {
    progressDialog = null;
  }

  final JComponent extensionArea = statusBar.getExtensionArea();
  extensionArea.setLayout( new BoxLayout( extensionArea, BoxLayout.X_AXIS ) );
  if ( progressBar != null ) {
    extensionArea.add( progressBar );
  }
  extensionArea.add( pageLabel );

  final JComponent contentPane = new JPanel();
  contentPane.setLayout( new BorderLayout() );
  contentPane.add( previewPane, BorderLayout.CENTER );
  contentPane.add( statusBar, BorderLayout.SOUTH );
  setContentPane( contentPane );

  updateMenu( previewPane.getMenu() );
  setTitle( previewPane.getTitle() );
  statusBar.setIconTheme( previewPane.getIconTheme() );
  statusBar.setStatus( previewPane.getStatusType(), previewPane.getStatusText() );
}
 
Example 15
Source File: PreviewFrame.java    From pentaho-reporting with GNU Lesser General Public License v2.1 4 votes vote down vote up
protected void init() {
  addComponentListener( new RequestFocusHandler() );

  messages =
      new Messages( getLocale(), SwingPreviewModule.BUNDLE_NAME, ObjectUtilities
          .getClassLoader( SwingPreviewModule.class ) );
  previewPane = new PreviewPane();
  previewPane.setDeferredRepagination( true );
  addComponentListener( new TriggerPaginationListener( previewPane ) );
  statusBar = new JStatusBar( previewPane.getIconTheme() );

  pageLabel = new JLabel();
  previewPane.addPropertyChangeListener( new PreviewPanePropertyChangeHandler() );

  final Configuration configuration = ClassicEngineBoot.getInstance().getGlobalConfig();
  final boolean progressBarEnabled = "true".equals( configuration //$NON-NLS-1$
      .getConfigProperty( "org.pentaho.reporting.engine.classic.core.modules.gui.base.ProgressBarEnabled" ) ); //$NON-NLS-1$
  final boolean progressDialogEnabled = "true".equals( configuration //$NON-NLS-1$
      .getConfigProperty( "org.pentaho.reporting.engine.classic.core.modules.gui.base.ProgressDialogEnabled" ) ); //$NON-NLS-1$

  if ( progressBarEnabled ) {
    progressBar = new ReportProgressBar();
    progressBar.setVisible( false );
    previewPane.addReportProgressListener( progressBar );
    previewPane.addPropertyChangeListener( new PreviewPanePropertyChangeHandler() );
  } else {
    progressBar = null;
  }

  if ( progressDialogEnabled ) {
    progressDialog = new ReportProgressDialog( this );
    final MasterReport reportJob = previewPane.getReportJob();
    if ( reportJob == null || reportJob.getTitle() == null ) {
      progressDialog.setTitle( messages.getString( "ProgressDialog.EMPTY_TITLE" ) );
      progressDialog.setMessage( messages.getString( "ProgressDialog.EMPTY_TITLE" ) );
    } else {
      progressDialog.setTitle( messages.getString( "ProgressDialog.TITLE", reportJob.getTitle() ) );
      progressDialog.setMessage( messages.getString( "ProgressDialog.TITLE", reportJob.getTitle() ) );
    }
    progressDialog.pack();
  } else {
    progressDialog = null;
  }

  final JComponent extensionArea = statusBar.getExtensionArea();
  extensionArea.setLayout( new BoxLayout( extensionArea, BoxLayout.X_AXIS ) );
  if ( progressBar != null ) {
    extensionArea.add( progressBar );
  }
  extensionArea.add( pageLabel );

  final JComponent contentPane = new JPanel();
  contentPane.setLayout( new BorderLayout() );
  contentPane.add( previewPane, BorderLayout.CENTER );
  contentPane.add( statusBar, BorderLayout.SOUTH );
  setContentPane( contentPane );

  updateMenu( previewPane.getMenu() );
  setTitle( previewPane.getTitle() );
  statusBar.setIconTheme( previewPane.getIconTheme() );
  statusBar.setStatus( previewPane.getStatusType(), previewPane.getStatusText() );
}