protected void generateReport() {
   log.debug("Generating");
   MainFrame.getInstance().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
   CurrencyValue currency = currencyBox.getSelectedCurrency();
   String[] platformRefs = null;
   boolean imp = false;
   boolean exp = false;
   Date from = fromField.getDateOrNull();
   Date to = toField.getDateOrNull();
   Object[] cs = platformChooser.getSelectedPlatforms().toArray(new String[0]);
   if (cs.length > 0) platformRefs = new String[cs.length];
   for (int i = 0, n = cs.length; i < n; i++) {
     platformRefs[i] = (String) cs[i];
     // platformRefs[i] = ((FacilityValue)cs[i]).getReference();
   }
   imp = this.importBox.isSelected();
   exp = this.exportBox.isSelected();
   try {
     // @war-pp
     if (typeBox.getSelectedItem().equals("ICC Manual Tracing Report")) {
       byte[] pdfStream =
           ReportService.getInstance()
               .getICCManualTracingReport(platformRefs, typeBox.getSelectedItem().toString());
       if (pdfStream != null) ReportFrame.openIccManualReport(pdfStream, "ICCManualTracingReport");
       else showInformationMessage("No data found "); // @war
     } else {
       byte[] pdfStream =
           ReportService.getInstance()
               .getCCReport(
                   from,
                   to,
                   currency,
                   platformRefs,
                   imp,
                   exp,
                   typeBox.getSelectedItem().toString());
       ReportFrame.openReport(
           pdfStream,
           typeBox.getSelectedItem().equals("Activity Report")
               ? "ActivityReport"
               : "PreliminaryReport");
     }
   } catch (Exception e) {
     log.error(this, e);
     MainFrame.getInstance().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
     MainFrame.handleException("Could not create " + typeBox.getSelectedItem(), e);
   }
   MainFrame.getInstance().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
 }