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));
 }
  public CCReportPane() {
    super(new GridBagLayout());
    setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));

    fromField = new DateJTextField((TextFieldChangeListener) null);
    fromField.setColumns(6);
    fromField.setMinimumSize(fromField.getPreferredSize());

    JLabel fromLabel = new JLabel("From");
    fromLabel.setLabelFor(fromField);
    fromLabel.setDisplayedMnemonic('F');

    toField = new DateJTextField((TextFieldChangeListener) null);
    toField.setColumns(6);
    toField.setMinimumSize(toField.getPreferredSize());

    JLabel toLabel = new JLabel("To");
    toLabel.setLabelFor(toField);
    toLabel.setDisplayedMnemonic('T');

    platformChooser = new CcPlatformChooser();

    JLabel ccLabel = new JLabel("CC");
    ccLabel.setLabelFor(platformChooser.getCcComboBox());
    ccLabel.setDisplayedMnemonic('C');

    JLabel platformLabel = new JLabel("Platforms");
    platformLabel.setLabelFor(platformChooser.getPlatformList());
    platformLabel.setDisplayedMnemonic('P');

    DefaultComboBoxModel boxModel = new DefaultComboBoxModel();
    boxModel.addElement("Activity Report");

    // boxModel.addElement("Preliminary Report");
    boxModel.addElement("ICC Manual Tracing Report"); // @war-pp
    typeBox = new ContextJComboBox(boxModel);

    JLabel typeLabel = new JLabel("Report Type");
    typeLabel.setLabelFor(typeBox);
    typeLabel.setDisplayedMnemonic('R');

    importBox = new JCheckBox();

    JLabel importLabel = new JLabel("Import");
    importLabel.setLabelFor(importBox);
    importLabel.setDisplayedMnemonic('I');

    exportBox = new JCheckBox();

    JLabel exportLabel = new JLabel("Export");
    exportLabel.setLabelFor(exportBox);
    exportLabel.setDisplayedMnemonic('E');

    currencyBox = new CurrencyBox();
    currencyBox.setToolTipText("The currency for reported amounts of money");

    JLabel currencyLabel = new JLabel("Currency");
    currencyLabel.setToolTipText("The currency for reported amounts of money");
    currencyLabel.setLabelFor(currencyBox);
    currencyLabel.setDisplayedMnemonic('U');

    // @war-pp
    ActionListener actionListener =
        new ActionListener() {
          public void actionPerformed(ActionEvent actionEvent) {
            if (typeBox.getSelectedItem().equals("ICC Manual Tracing Report")) {
              toField.setEnabled(false);
              fromField.setEnabled(false);
              importBox.setEnabled(false);
              // System.out.println("ANWAR     ---------"+importBox.isEnabled());
              exportBox.setEnabled(false);
              currencyBox.setEnabled(false);

            } else {
              toField.setEnabled(true);
              fromField.setEnabled(true);
              importBox.setEnabled(true);
              exportBox.setEnabled(true);
              currencyBox.setEnabled(true);
            }
          }
        };

    // @war-pp
    typeBox.addActionListener(actionListener); // @war-pp

    generateReportButton = new JButton("Get Report");
    generateReportButton.setToolTipText("Creates the report and opens it");
    generateReportButton.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent arg0) {
            generateReport();
          }
        });

    Insets insets = new Insets(5, 0, 0, 0);

    GridBagConstraints constraints = new GridBagConstraints();
    constraints.gridx = 0;
    constraints.gridy = 0;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.insets = insets;
    add(fromLabel, constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = 1;
    constraints.gridy = 0;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.insets = insets;
    add(fromField, constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = 0;
    constraints.gridy = 1;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.insets = insets;
    add(toLabel, constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = 1;
    constraints.gridy = 1;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.insets = insets;
    add(toField, constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = 0;
    constraints.gridy = 2;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.insets = insets;
    add(ccLabel, constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = 1;
    constraints.gridy = 2;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.insets = insets;
    add(platformChooser.getCcComboBox(), constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = 0;
    constraints.gridy = 3;
    constraints.anchor = GridBagConstraints.NORTHWEST;
    constraints.insets = insets;
    add(platformLabel, constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = 1;
    constraints.gridy = 3;
    constraints.fill = GridBagConstraints.BOTH;
    constraints.weightx = 1.0;
    constraints.weighty = 1.0;
    constraints.insets = insets;
    add(new MetaScrollPane(platformChooser.getPlatformList()), constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = 0;
    constraints.gridy = 4;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.insets = insets;
    add(typeLabel, constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = 1;
    constraints.gridy = 4;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.insets = insets;
    add(typeBox, constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = 0;
    constraints.gridy = 5;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.insets = insets;
    add(importLabel, constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = 1;
    constraints.gridy = 5;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.insets = insets;
    add(importBox, constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = 0;
    constraints.gridy = 6;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.insets = insets;
    add(exportLabel, constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = 1;
    constraints.gridy = 6;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.insets = insets;
    add(exportBox, constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = 0;
    constraints.gridy = 7;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.insets = insets;
    add(currencyLabel, constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = 1;
    constraints.gridy = 7;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.insets = insets;
    add(currencyBox, constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = 0;
    constraints.gridy = 8;
    constraints.gridwidth = 2;
    constraints.anchor = GridBagConstraints.CENTER;
    constraints.insets = new Insets(15, 0, 0, 0);
    add(generateReportButton, constraints);
  }