package com.ufgov.zc.client.zc.expertevaluate;
package com.ufgov.zc.client.common.converter;
  protected void refreshData() { // add shijia 20111105

    ZcPProMake zcPProMake = (ZcPProMake) listCursor.getCurrentObject();

    boolean isNew;

    if (zcPProMake != null) {

      isNew = false;

      zcPProMake =
          getZcPProMakeServiceDelegate()
              .selectByPrimaryKey(zcPProMake.getZcMakeCode(), this.requestMeta);

      fukuanValId = zcPProMake.getZcMakeSequence();
      List biList =
          getZcPProMakeServiceDelegate()
              .getZcPProMitemBi(zcPProMake.getZcMakeCode(), ZcUtil.useBudget(), requestMeta);
      zcPProMake.setBiList(biList);

      listCursor.setCurrentObject(zcPProMake);

      if (biList != null && biList.size() > 0) {
        if (ZcUtil.useBudget()) {
          String sumId = "";
          for (int i = 0; i < biList.size(); i++) {
            ZcPProMitemBi bi = (ZcPProMitemBi) biList.get(i);
            if ("A".equals(bi.getPaytypeCode())) {
              bi.setZcBiPayType("2");
              bi.setZcBiDoSum(null);
              continue;
            }
            bi.setZcBiPayType("1");
            if (sumId.length() > 0) {
              sumId = sumId + ",'" + bi.getZcBiNo() + "'";
            } else {
              sumId = "'" + bi.getZcBiNo() + "'";
            }
          }
          getDto.setZcText3(sumId);
        }
      }
      if (ZcUtil.useBudget()) {
        getDto.setZcMakeCode(zcPProMake.getZcMakeCode());
      }

    } else {

      isNew = true;

      zcPProMake = new ZcPProMake();

      setDeftValue(zcPProMake);

      zcPProMake.setCoCode(this.requestMeta.getSvCoCode());

      initOrg(zcPProMake);

      zcPProMake.setNd(this.requestMeta.getSvNd());

      zcPProMake.setBiList(new ArrayList());

      zcPProMake.setItemList(new ArrayList());
      zcPProMake.setZcInputDate(this.requestMeta.getSysDate());

      // 新增数据默认插入一行

      ZcPProMitem item = new ZcPProMitem();

      setItemDefaultValue(item);

      zcPProMake.getItemList().add(item);

      ZcPProMitemBi bi = new ZcPProMitemBi();

      setItemBiDefaultValue(bi);

      zcPProMake.getBiList().add(bi);

      listCursor.getDataList().add(zcPProMake);

      listCursor.setCurrentObject(zcPProMake);
    }
    if (ZcUtil.useBudget()) {
      getDto.setNd(requestMeta.getSvNd());
      getDto.setZcText2("1");
      getDto.setCoCode(
          zcPProMake.getCoCode() != null ? zcPProMake.getCoCode() : requestMeta.getSvCoCode());
    }

    this.setEditingObject(zcPProMake);

    if (zcPProMake.getProcessInstId() != null && zcPProMake.getProcessInstId().longValue() > 0) {

      // 工作流的单据

      wfCanEditFieldMap = BillElementMeta.getWfCanEditField(zcPProMake, requestMeta);
    }

    itemTablePanel.setTableModel(
        new ZcPProMakeToTableModelConverter()
            .convertSubItemTableData(zcPProMake.getItemList(), getItemInfo(), wfCanEditFieldMap));

    if (ZcUtil.useBudget()) {
      biTablePanel.setTableModel(
          ZcPProMakeToTableModelConverter.convertSubBiTableData(
              zcPProMake.getBiList(), wfCanEditFieldMap));
    } else {
      biTablePanel.setTableModel(
          ZcPProMakeToTableModelConverter.convertSubBiTableDataWithOutBudget(
              zcPProMake.getBiList(), wfCanEditFieldMap));
    }

    // 刷新竞价信息和成交信息

    refreshJinJiaChengJiao();

    // 翻译从表表头列

    ZcUtil.translateColName(itemTablePanel.getTable(), getItemInfo());

    if (ZcUtil.useBudget()) {
      ZcUtil.translateColName(biTablePanel.getTable(), ZcPProMakeToTableModelConverter.biInfo);
    } else {
      ZcUtil.translateColName(biTablePanel.getTable(), ZcPProMakeToTableModelConverter.biInfo2);
    }

    // 设置从表列类型

    setTableBiEditor(biTablePanel.getTable());

    setTableItemEditor(itemTablePanel.getTable());

    // 设置从表监听

    addBiTableLisenter(biTablePanel.getTable());

    addItemTableLisenter(itemTablePanel.getTable());

    setOldObject();

    // 根据工作流模版设置功能按钮是否可用

    setButtonStatus(zcPProMake, requestMeta, this.listCursor);

    // 根据工作流模版设置字段是否可编辑

    updateWFEditorEditable(zcPProMake, requestMeta);

    this.fitTable();

    // 草稿状态设置【批复采购方式】只读

    if ("0".equals(zcPProMake.getZcMakeStatus())
        || (saveButton.isVisible() && deleteButton.isVisible())) {

      if (zcPifuCgfs != null) {

        zcPifuCgfs.setEnabled(true);
      }
      if (zcMakePfSequence != null) {
        zcMakePfSequence.setEnabled(false);
      }
    }

    if (isNew) {

      biTablePanel.getTable().setRowSelectionInterval(0, 0);

      itemTablePanel.getTable().setRowSelectionInterval(0, 0);
    }

    if (zcPProMake.getZcMakeStatus().equals("0")
        && zcPProMake.getProcessInstId() != null
        && zcPProMake.getProcessInstId().longValue() > 0) {

      sendButton.setEnabled(false);

    } else if (zcPProMake.getZcMakeStatus().equals("0")
        && zcPProMake.getProcessInstId() != null
        && zcPProMake.getProcessInstId().longValue() < 0) {

      sendButton.setEnabled(true);

    } else if (zcPProMake.getZcMakeStatus().equals("0") && zcPProMake.getProcessInstId() != null) {

      sendButton.setEnabled(true);
    }

    //    if (zcPProMake.getZcMakeStatus().equals("0") || (saveButton.isVisible() &&
    // deleteButton.isVisible())) {
    //
    //      updateWFSubTableEditable(true);
    //
    //    } else {
    //
    //      updateWFSubTableEditable(false);
    //
    //    }

    // 退回状态时,明细都可以编辑 add shijia 20111105

    if (zcPProMake.getZcMakeStatus().equals(ZcSettingConstants.WF_STATUS_DRAFT)
        && WorkEnv.getInstance().containRole(ZcSettingConstants.ROLE_YSDWJB)) {

      String valId = ((AsValComboBox) zcPitemOpiway.getField()).getSelectedAsVal().getValId();

      valId = ((AsValComboBox) zcIsImp.getField()).getSelectedAsVal().getValId();

      if ("N".equals(valId)) { // 当是否涉及进出口选择否的时候,将附件上传设置为不可用,如果是从“是”跳转回来的话,要将上传的附件从数据库中删除

        zcImpFile.setEnabled(false);
      } else {
        zcImpFile.setEnabled(true);
      }
    }

    // end add

    biTabPane.repaint();

    itemTabPane.repaint();
  }
/**
 * 离线评标结果录入
 *
 * @author Administrator
 */
public class ZcEbEvalReportOffLineListPanel extends AbstractEditListBill
    implements ParentWindowAware {

  private static final long serialVersionUID = 1919181448112477360L;

  private static final Logger logger = Logger.getLogger(ZcEbEvalReportListPanel.class);

  private ZcEbEvalReportOffLineListPanel self = this;

  private Window parentWindow;

  private RequestMeta requestMeta = WorkEnv.getInstance().getRequestMeta();

  private ElementConditionDto elementConditionDto = new ElementConditionDto();

  private IZcEbEvalServiceDelegate zcEbEvalServiceDelegate =
      (IZcEbEvalServiceDelegate)
          ServiceFactory.create(IZcEbEvalServiceDelegate.class, "zcEbEvalServiceDelegate");

  private IBaseDataServiceDelegate baseDataServiceDelegate =
      (IBaseDataServiceDelegate)
          ServiceFactory.create(IBaseDataServiceDelegate.class, "baseDataServiceDelegate");

  static {
    LangTransMeta.init("ZC%");
  }

  protected String getCompoId() {
    // TCJLODO Auto-generated method stub
    return "ZC_EB_EVAL_REPORT_OFF_LINE";
  }

  public Window getParentWindow() {

    return parentWindow;
  }

  public void setParentWindow(Window parentWindow) {

    this.parentWindow = parentWindow;
  }

  /** 构造函数 */
  public ZcEbEvalReportOffLineListPanel() {

    init();
    requestMeta.setCompoId(getCompoId());
  }

  private void init() {

    UIUtilities.asyncInvoke(
        new DefaultInvokeHandler<List<SearchCondition>>() {

          public List<SearchCondition> execute() throws Exception {

            List<SearchCondition> needDisplaySearchConditonList =
                SearchConditionUtil.getNeedDisplaySearchConditonListJoinRole(
                    WorkEnv.getInstance().getCurrUserId(),
                    ZcSettingConstants.TAB_ID_ZC_EB_EVAL_REPORT);

            return needDisplaySearchConditonList;
          }

          public void success(List<SearchCondition> needDisplaySearchConditonList) {

            List<TableDisplay> showingDisplays =
                SearchConditionUtil.getNeedDisplayTableDisplay(needDisplaySearchConditonList);

            init(createDataDisplay(showingDisplays), null); // 调用父类方法

            revalidate();

            repaint();
          }
        });
  }

  private final class DataDisplay extends MultiDataDisplay {

    private DataDisplay(
        List<TableDisplay> displays,
        List<TableDisplay> showingDisplays,
        AbstractSearchConditionArea conditionArea,
        boolean showConditionArea) {

      super(
          displays,
          showingDisplays,
          conditionArea,
          showConditionArea,
          ZcSettingConstants.TAB_ID_ZC_EB_EVAL_REPORT);

      setBorder(
          BorderFactory.createTitledBorder(
              BorderFactory.createEtchedBorder(),
              LangTransMeta.translate(getCompoId()),
              TitledBorder.CENTER,
              TitledBorder.TOP,
              new Font("宋体", Font.BOLD, 15),
              Color.BLUE));
    }

    @Override
    protected void preprocessShowingTableDisplay(List<TableDisplay> showingTableDisplays) {

      for (final TableDisplay d : showingTableDisplays) {

        final JGroupableTable table = d.getTable();

        table.addMouseListener(
            new MouseAdapter() {

              @Override
              @SuppressWarnings("unchecked")
              public void mouseClicked(MouseEvent e) {

                if (e.getClickCount() == 2 && SwingUtilities.isLeftMouseButton(e)) {

                  JGroupableTable table = d.getTable();

                  String tabStatus = d.getStatus();

                  MyTableModel model = (MyTableModel) table.getModel();

                  int row = table.getSelectedRow();

                  List viewList =
                      (List)
                          ObjectUtil.deepCopy(
                              ListUtil.convertToTableViewOrderList(model.getList(), table));

                  new ZcEbReportOffLineDialog(self, viewList, row, tabStatus);
                }
              }
            });
      }
    }

    @Override
    protected void handleTableDisplayActived(
        AbstractSearchConditionItem[] searchConditionItems, final TableDisplay tableDisplay) {

      elementConditionDto.setWfcompoId(getCompoId());

      elementConditionDto.setExecutor(WorkEnv.getInstance().getCurrUserId());

      elementConditionDto.setNd(WorkEnv.getInstance().getTransNd());

      elementConditionDto.setStatus(tableDisplay.getStatus());

      elementConditionDto.setZcText0("offLine");

      for (AbstractSearchConditionItem item : searchConditionItems) {

        item.putToElementConditionDto(elementConditionDto);
      }

      final Container c = tableDisplay.getTable().getParent();

      UIUtilities.asyncInvoke(
          new DefaultInvokeHandler<TableModel>() {

            @Override
            public void before() {

              assert c != null;

              installLoadingComponent(c);
            }

            @Override
            public void after() {

              assert c != null;

              unInstallLoadingComponent(c);

              c.add(tableDisplay.getTable());
            }

            public TableModel execute() throws Exception {

              return new ZcEbEvalReportToTableModelConverter()
                  .convertToTableModel(
                      self.zcEbEvalServiceDelegate.getZcEbEvalReportList(
                          elementConditionDto, requestMeta));
            }

            public void success(TableModel model) {

              tableDisplay.setTableModel(model);

              setButtonsVisiable();
            }
          });
    }
  }

  private AbstractSearchConditionArea topSearchConditionArea;

  @SuppressWarnings("unchecked")
  private AbstractSearchConditionArea createTopConditionArea() {

    Map defaultValueMap = new HashMap();

    topSearchConditionArea =
        new SaveableSearchConditionArea(
            ZcSettingConstants.CONDITION_ID_ZC_EB_EVAL_REPORT, null, false, defaultValueMap, null);

    return topSearchConditionArea;
  }

  private AbstractDataDisplay createDataDisplay(List<TableDisplay> showingDisplays) {

    return new DataDisplay(
        SearchConditionUtil.getAllTableDisplayJoinRole(
            WorkEnv.getInstance().getCurrUserId(), ZcSettingConstants.TAB_ID_ZC_EB_EVAL_REPORT),
        showingDisplays,
        createTopConditionArea(),
        true); // true:显示收索条件区 false:不显示收索条件区
  }

  @Override
  protected void addToolBarComponent(JFuncToolBar toolBar) {

    toolBar.setModuleCode("ZC");

    toolBar.setCompoId(getCompoId());

    toolBar.add(addButton);

    //    toolBar.add(deleteButton);

    //    toolBar.add(sendButton);

    //    toolBar.add(isSendToNextButton);

    //    toolBar.add(auditPassButton);

    //    toolBar.add(suggestPassButton);

    //    toolBar.add(auditFinalButton);

    //    toolBar.add(callbackButton);

    //    toolBar.add(unTreadButton);//退回

    //    toolBar.add(traceButton);

    // toolBar.add(printButton);

    // toolBar.add(printPreviewButton);

    // toolBar.add(printSettingButton);

    //    toolBar.add(helpButton);

    //    toolBar.add(traceDataButton);

    // 初始化按钮的action事件

    addButton.addActionListener(
        new ActionListener() {

          public void actionPerformed(ActionEvent e) {

            doAdd();
          }
        });

    sendButton.addActionListener(
        new ActionListener() {

          public void actionPerformed(ActionEvent e) {

            doSend();
          }
        });

    isSendToNextButton.addActionListener(
        new ActionListener() {

          public void actionPerformed(ActionEvent e) {

            doSendNext();
          }
        });

    auditPassButton.addActionListener(
        new ActionListener() {

          public void actionPerformed(ActionEvent e) {

            doAuditPass();
          }
        });

    suggestPassButton.addActionListener(
        new ActionListener() {

          public void actionPerformed(ActionEvent e) {

            doSuggestPass();
          }
        });

    deleteButton.addActionListener(
        new ActionListener() {

          public void actionPerformed(ActionEvent e) {

            doDelete();
          }
        });

    traceButton.addActionListener(
        new ActionListener() {

          public void actionPerformed(ActionEvent e) {

            doTrace();
          }
        });

    callbackButton.addActionListener(
        new ActionListener() {

          public void actionPerformed(ActionEvent e) {

            doCallBack();
          }
        });

    unTreadButton.addActionListener(
        new ActionListener() {

          public void actionPerformed(ActionEvent e) {

            doUnTread();
          }
        });

    printButton.addActionListener(
        new ActionListener() {

          public void actionPerformed(ActionEvent arg0) {

            doPrint();
          }
        });

    printPreviewButton.addActionListener(
        new ActionListener() {

          public void actionPerformed(ActionEvent arg0) {

            doPrintPreview();
          }
        });

    printSettingButton.addActionListener(
        new ActionListener() {

          public void actionPerformed(ActionEvent arg0) {

            doPrintSetting();
          }
        });

    auditFinalButton.addActionListener(
        new ActionListener() {

          public void actionPerformed(ActionEvent e) {

            doAuditFinal();
          }
        });

    traceDataButton.addActionListener(
        new ActionListener() {

          public void actionPerformed(ActionEvent arg0) {

            doTraceDataButton();
          }
        });
  }

  private void doAuditFinal() {

    List beanList = getCheckedList();

    if (beanList.size() == 0) {

      JOptionPane.showMessageDialog(this, "没有选择数据!", " 提示", JOptionPane.INFORMATION_MESSAGE);

      return;
    }

    executeAudit(beanList, ZcSettingConstants.IS_GOON_AUDIT_YES, auditFinalButton);
  }

  public void refreshCurrentTabData() {

    topSearchConditionArea.doSearch();
  }

  @SuppressWarnings("unchecked")
  public List<ZcEbEvalReport> getCheckedList() {

    List<ZcEbEvalReport> beanList = new ArrayList<ZcEbEvalReport>();

    JGroupableTable table = topDataDisplay.getActiveTableDisplay().getTable();

    MyTableModel model = (MyTableModel) table.getModel();

    // Modal的数据

    List list = model.getList();

    Integer[] checkedRows = table.getCheckedRows();

    for (Integer checkedRow : checkedRows) {

      int accordDataRow = table.convertRowIndexToModel(checkedRow);

      ZcEbEvalReport bean = (ZcEbEvalReport) list.get(accordDataRow);

      beanList.add(bean);
    }

    return beanList;
  }

  /*

  * 填写意见审核

  */

  private void doSuggestPass() {

    List ZcEbEvalReportList = getCheckedList();

    if (ZcEbEvalReportList.size() == 0) {

      JOptionPane.showMessageDialog(this, "请选择需要送审的数据!", "提示", JOptionPane.INFORMATION_MESSAGE);

      return;
    }

    boolean success = true;

    try {

      GkCommentDialog commentDialog =
          new GkCommentDialog(this.getParentWindow(), ModalityType.APPLICATION_MODAL);

      if (commentDialog.cancel) {

        return;
      }

      String comment = commentDialog.getComment();

      for (int i = 0; i < ZcEbEvalReportList.size(); i++) {

        ZcEbEvalReport zcEbEvalReport = (ZcEbEvalReport) ZcEbEvalReportList.get(i);

        zcEbEvalReport.setComment(comment);

        if (WorkEnv.getInstance().containRole(AsOptionMeta.getOptVal("OPT_ZC_CGZX_FZR_ROLE"))) {

          zcEbEvalReport.setIsGoonAudit(0);
        }
      }

      requestMeta.setFuncId(this.suggestPassButton.getFuncId());

      zcEbEvalServiceDelegate.auditFN(ZcEbEvalReportList, requestMeta);

    } catch (BaseException ex) {

      success = false;

      UIUtilities.showStaickTraceDialog(ex, this, "错误", ex.getMessage());
    }

    if (success) {

      JOptionPane.showMessageDialog(this, "处理成功!", "提示", JOptionPane.INFORMATION_MESSAGE);

      refreshCurrentTabData();
    }
  }

  private void doAdd() {

    new ZcEbReportOffLineDialog(
        self,
        new ArrayList(),
        this.topDataDisplay.getActiveTableDisplay().getTable().getRowCount(),
        topDataDisplay.getActiveTableDisplay().getStatus());
  }

  private void doSend() {

    List ZcEbEvalReportList = getCheckedList();

    if (ZcEbEvalReportList.size() == 0) {

      JOptionPane.showMessageDialog(this, "请选择需要送审的数据!", "提示", JOptionPane.INFORMATION_MESSAGE);

      return;
    }

    boolean success = true;

    try {

      GkCommentDialog commentDialog =
          new GkCommentDialog(this.getParentWindow(), ModalityType.APPLICATION_MODAL);

      if (commentDialog.cancel) {

        return;
      }

      String comment = commentDialog.getComment();

      for (int i = 0; i < ZcEbEvalReportList.size(); i++) {

        ZcEbEvalReport zcEbEvalReport = (ZcEbEvalReport) ZcEbEvalReportList.get(i);

        zcEbEvalReport.setComment(comment);
      }

      requestMeta.setFuncId(this.sendButton.getFuncId());

      zcEbEvalServiceDelegate.newCommitFN(ZcEbEvalReportList, requestMeta);

    } catch (BaseException ex) {

      success = false;

      UIUtilities.showStaickTraceDialog(ex, this, "错误", ex.getMessage());
    }

    if (success) {

      JOptionPane.showMessageDialog(this, "处理成功!", "提示", JOptionPane.INFORMATION_MESSAGE);

      refreshCurrentTabData();
    }
  }

  /** 是否送主任审核 */
  private void doSendNext() {

    List beanList = getCheckedList();

    if (beanList.size() == 0) {

      JOptionPane.showMessageDialog(this, "没有选择数据!", " 提示", JOptionPane.INFORMATION_MESSAGE);

      return;
    }

    executeAudit(beanList, ZcSettingConstants.IS_GOON_AUDIT_YES, isSendToNextButton);
  }

  private void executeAudit(List beanList, int isGoonAudit, FuncButton button) {

    GkCommentDialog commentDialog =
        new GkCommentDialog(
            DefaultKeyboardFocusManager.getCurrentKeyboardFocusManager().getActiveWindow(),
            ModalityType.APPLICATION_MODAL);

    if (commentDialog.cancel) {

      return;
    }

    boolean success = true;

    String errorInfo = "";

    try {

      String comment = commentDialog.getComment();

      for (int i = 0; i < beanList.size(); i++) {

        ZcEbEvalReport report = (ZcEbEvalReport) beanList.get(i);

        report.setIsGoonAudit(isGoonAudit);

        report.setComment(comment);

        report.setAuditorId(WorkEnv.getInstance().getCurrUserId());
      }

      requestMeta.setFuncId(button.getFuncId());

      zcEbEvalServiceDelegate.updateZcEbEvalStatus(beanList, requestMeta);

      zcEbEvalServiceDelegate.auditFN(beanList, requestMeta);

    } catch (Exception e) {

      success = false;

      logger.error(e.getMessage(), e);

      errorInfo += e.getMessage();
    }

    if (success) {

      refreshCurrentTabData();

      JOptionPane.showMessageDialog(this, "审核成功!", "提示", JOptionPane.INFORMATION_MESSAGE);

    } else {

      JOptionPane.showMessageDialog(this, "审核失败 !" + errorInfo, "错误", JOptionPane.ERROR_MESSAGE);
    }
  }

  private void doAuditPass() {

    List beanList = this.getCheckedList();

    if (beanList.size() == 0) {

      JOptionPane.showMessageDialog(this, "没有选择数据!", " 提示", JOptionPane.INFORMATION_MESSAGE);

      return;
    }

    executeAudit(beanList, ZcSettingConstants.IS_GOON_AUDIT_NO, auditPassButton);
  }

  private void doDelete() {

    if (getCheckedList().size() == 0) {

      JOptionPane.showMessageDialog(this, "请选择需要删除的数据!", "提示", JOptionPane.INFORMATION_MESSAGE);

      return;
    }

    int result =
        JOptionPane.showConfirmDialog(self, "是否要删除选中的数据?", "删除确认", JOptionPane.YES_NO_OPTION);

    if (result != JOptionPane.YES_OPTION) {

      return;
    }

    boolean success = true;

    try {

      zcEbEvalServiceDelegate.deleteZcEbEvalReportFN(getCheckedList(), requestMeta);

    } catch (BaseException ex) {

      success = false;

      UIUtilities.showStaickTraceDialog(ex, this, "错误", ex.getMessage());
    }

    if (success) {

      JOptionPane.showMessageDialog(this, "处理成功!", "提示", JOptionPane.INFORMATION_MESSAGE);

      refreshCurrentTabData();
    }
  }

  @SuppressWarnings("unchecked")
  private void doTrace() {

    List beanList = getCheckedList();

    if (beanList.size() == 0) {

      JOptionPane.showMessageDialog(this, "没有选择数据!", " 提示", JOptionPane.INFORMATION_MESSAGE);

      return;
    }

    if (beanList.size() > 1) {

      JOptionPane.showMessageDialog(this, "只能选择一条数据!", " 提示", JOptionPane.INFORMATION_MESSAGE);

      return;
    }

    for (int i = 0; i < beanList.size(); i++) {

      ZcEbEvalReport bean = (ZcEbEvalReport) beanList.get(i);

      ZcUtil.showTraceDialog(bean, getCompoId());
    }
  }

  private void doCallBack() {

    String returnInfo = "";

    boolean success = true;

    try {

      List beanList = getCheckedList();

      if (beanList.size() == 0) {

        JOptionPane.showMessageDialog(this, "没有选择数据!", " 提示", JOptionPane.INFORMATION_MESSAGE);

        return;
      }

      requestMeta.setFuncId(callbackButton.getFuncId());

      zcEbEvalServiceDelegate.callbackZcEbEvalReportFN(beanList, requestMeta);

    } catch (BusinessException be) {

      returnInfo = be.getMessage();

      success = false;

    } catch (Exception ex) {

      returnInfo = ex.getMessage();

      success = false;
    }

    if (success) {

      JOptionPane.showMessageDialog(this, "收回成功!", " 提示", JOptionPane.INFORMATION_MESSAGE);

      refreshCurrentTabData();

    } else {

      JOptionPane.showMessageDialog(this, "收回失败 !\n" + returnInfo, "错误", JOptionPane.ERROR_MESSAGE);
    }
  }

  public void doUnTread() {

    List ZcEbEvalReportList = getCheckedList();

    if (ZcEbEvalReportList.size() == 0) {

      JOptionPane.showMessageDialog(this, "请选择需要退回的数据!", "提示", JOptionPane.INFORMATION_MESSAGE);

      return;
    }

    boolean success = true;

    try {

      requestMeta.setFuncId(unTreadButton.getFuncId());

      GkCommentUntreadDialog commentDialog =
          new GkCommentUntreadDialog(this.getParentWindow(), ModalityType.APPLICATION_MODAL);

      if (commentDialog.cancel) {

        return;
      }

      String comment = commentDialog.getComment();

      for (int i = 0; i < ZcEbEvalReportList.size(); i++) {

        ZcEbEvalReport zcEbEvalReport = (ZcEbEvalReport) ZcEbEvalReportList.get(i);

        zcEbEvalReport.setComment(comment);
      }

      zcEbEvalServiceDelegate.untreadFN(ZcEbEvalReportList, requestMeta);

    } catch (BaseException ex) {

      success = false;

      logger.error(ex.getStackTraceMessage(), ex);

      success = false;

      UIUtilities.showStaickTraceDialog(ex, this, "错误", ex.getMessage());

    } catch (OtherException ex) {

      success = false;

      logger.error(ex.getStackTraceMessage(), ex);

      success = false;

      UIUtilities.showStaickTraceDialog(ex, this, "错误", ex.getMessage());

    } catch (Exception ex) {

      success = false;

      logger.error(ex.getMessage(), ex);

      UIUtilities.showStaickTraceDialog(ex, this, "错误", ex.getMessage());
    }

    if (success) {

      JOptionPane.showMessageDialog(this, "处理成功!", "提示", JOptionPane.INFORMATION_MESSAGE);

      refreshCurrentTabData();
    }
  }

  @SuppressWarnings("unchecked")
  private void doPrint() {

    List printList = getCheckedList();

    if (printList.size() == 0) {

      JOptionPane.showMessageDialog(this, "请选择需要打印的数据 !", "提示", JOptionPane.INFORMATION_MESSAGE);

      return;
    }

    requestMeta.setFuncId(this.printButton.getFuncId());

    requestMeta.setPageType(getCompoId() + "_L");

    boolean success = true;

    boolean printed = false;

    try {

      PrintObject printObject =
          this.baseDataServiceDelegate.genMainBillPrintObjectFN(printList, requestMeta);

      if (Printer.print(printObject)) {

        printed = true;
      }

    } catch (Exception e) {

      success = false;

      logger.error(e.getMessage(), e);

      JOptionPane.showMessageDialog(
          this, "打印出错!\n" + e.getMessage(), "错误", JOptionPane.ERROR_MESSAGE);
    }

    if (success && printed) {}
  }

  @SuppressWarnings("unchecked")
  private void doPrintPreview() {

    final List printList = getCheckedList();

    if (printList.size() == 0) {

      JOptionPane.showMessageDialog(this, "请选择需要打印预览的数据 !", "提示", JOptionPane.INFORMATION_MESSAGE);

      return;
    }

    requestMeta.setFuncId(this.printPreviewButton.getFuncId());

    requestMeta.setPageType(getCompoId() + "_L");

    try {

      PrintObject printObject =
          this.baseDataServiceDelegate.genMainBillPrintObjectFN(printList, requestMeta);

      PrintPreviewer previewer =
          new PrintPreviewer(printObject) {

            @Override
            protected void afterSuccessPrint() {}
          };

      previewer.preview();

    } catch (Exception e) {

      logger.error(e.getMessage(), e);

      JOptionPane.showMessageDialog(
          this, "打印预览出错!\n" + e.getMessage(), "错误", JOptionPane.ERROR_MESSAGE);
    }
  }

  public BillElementMeta billElementMeta =
      BillElementMeta.getBillElementMetaWithoutNd(getCompoId());

  public BillElementMeta getBillElementMeta() {

    return billElementMeta;
  }

  private void doPrintSetting() {

    requestMeta.setFuncId(this.printSettingButton.getFuncId());

    requestMeta.setPageType(this.getCompoId() + "_L");

    new PrintSettingDialog(requestMeta);
  }

  private void doTraceDataButton() {

    List beanList = getCheckedList();

    if (beanList.size() == 0) {

      JOptionPane.showMessageDialog(this, "请选择一条要进行跟踪的数据!", "错误", JOptionPane.ERROR_MESSAGE);

      return;
    }

    ZcEbEvalReport sh = (ZcEbEvalReport) beanList.get(0);

    DataFlowConsoleCanvas dfc = new DataFlowConsoleCanvas(sh.getProjCode(), this.getCompoId());

    dfc.showWindow();
  }

  public static void main(String[] args) throws Exception {

    SwingUtilities.invokeLater(
        new Runnable() {

          public void run() {

            try {

              UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

              UIManager.setLookAndFeel(new BlueLookAndFeel());

            } catch (Exception e) {

              e.printStackTrace();
            }

            ZcEbEvalReportOffLineListPanel bill = new ZcEbEvalReportOffLineListPanel();

            JFrame frame = new JFrame(LangTransMeta.translate(bill.getCompoId()));

            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            frame.setSize(800, 600);

            frame.setLocationRelativeTo(null);

            frame.getContentPane().add(bill);

            frame.setVisible(true);
          }
        });
  }
}
package com.ufgov.zc.client.zc.auditsheet;