/*
   * 刷新topNList
   */
  private void refreshiControl() {
    ChartUtil.clearListbox(topNList);
    TopNListitemModel model = new TopNListitemModel(topNReport);
    //		ChartUtil.makelistData(topNList, model, model);

    try {
      for (TopNBean m : model.getTopNData()) {
        Image image = null;
        if (m.getDeny().equals("允许")) {
          image = new Image("/main/images/button/ico/enable_bt.gif");
        } else {
          image = new Image("/main/images/button/ico/disable_bt.gif");
        }
        Listitem item =
            ChartUtil.addRow(
                topNList,
                m,
                m.getTitle(),
                m.getDescript(),
                m.getPeriod(),
                new Image("/main/images/filetype/" + m.getFiletype() + ".gif"),
                image,
                m.getEditImage());
        item.setId(m.getSection());
        item.addForward("onClick", topNReport, "onSelecttopNList");
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
    String section =
        (String) Executions.getCurrent().getDesktop().getSession().getAttribute("topNReportlit_id");

    if (null == section) return;

    Listitem selectedItem = null;
    for (Object obj : topNList.getItems()) {
      if (obj instanceof Listitem) {
        Listitem tmpItem = (Listitem) obj;
        if (tmpItem.getId().equals(section)) {
          selectedItem = tmpItem;
        }
      }
    }

    if (null != selectedItem) {
      selectedItem.setSelected(true);
      Events.sendEvent(new Event(Events.ON_SELECT, topNList));
      topNList.setActivePage(selectedItem);
    }
  }
 /**
  * 取得设置的全部id值
  *
  * @return String 形如"id1,id2,id3,"的字符串
  */
 public String getAllSelectedIds() {
   StringBuffer sb = new StringBuffer();
   for (String obj : getSelectedIds()) {
     INode node = ChartUtil.getView().getNode(obj);
     if (sb.length() > 0) sb.append(";");
     sb.append(node.getName());
   }
   if (sb.length() == 0) {
     return null;
   }
   sb.append(";");
   return sb.toString();
 }
  private void createStateGrid() throws Exception {
    try {
      View view = Toolkit.getToolkit().getSvdbView(getDesktop());
      INode node = this.getSelectedNode();
      if (node == null) {
        Messagebox.show(ErrorMessage.UNSELECT_MONITOR, "提示", Messagebox.OK, Messagebox.INFORMATION);
        return;
      }
      if (getBeginDatabox().getValue().after(getEndDatabox().getValue())) {
        Messagebox.show(ErrorMessage.TIME_ERROR, "提示", Messagebox.OK, Messagebox.INFORMATION);
        return;
      }
      Date begin_date = getBeginDatabox().getValue();
      Date end_date = getEndDatabox().getValue();
      getBeginLabel().setValue(Toolkit.getToolkit().formatDate(begin_date));
      getEndLabel().setValue(Toolkit.getToolkit().formatDate(end_date));
      Report report = new Report(node, begin_date, end_date);
      report.load();

      Map<Date, DstrItem> dstrMap = report.getDstr();
      if (dstrMap == null || dstrMap.size() == 0) {
        this.getBeginLabel().setValue("");
        this.getEndLabel().setValue("");
        ChartUtil.clearComponent(getStatePercentRows());
        getStatusImage().setSrc("");
        getSpectrumImage().setSrc("");
        ChartUtil.clearComponent(getStatePeriodRow());
        //				Messagebox.show("没有您要显示的数据!", "提示", Messagebox.OK,
        //						Messagebox.INFORMATION);
        return;
      }
      int ok = 0, warn = 0, error = 0, disable = 0, bad = 0;
      double size = dstrMap.size(); // 提高精度
      if (colorlist.size() > 0) colorlist.clear();
      if (stateItems.size() > 0) stateItems.clear();
      for (Date keyDate : dstrMap.keySet()) {
        DstrItem dstrItem = dstrMap.get(keyDate);
        if ("ok".equals(dstrItem.status)) {
          ok++;
          colorlist.add(MonitorType.getColor(MonitorType.OK));
        } else if ("warning".equals(dstrItem.status)) {
          warn++;
          colorlist.add(MonitorType.getColor(MonitorType.WARN));
        } else if ("error".equals(dstrItem.status)) {
          error++;
          colorlist.add(MonitorType.getColor(MonitorType.ERROR));
        } else if ("disable".equals(dstrItem.status)) {
          disable++;
          colorlist.add(MonitorType.getColor(MonitorType.DISABLE));
        } else {
          bad++;
          colorlist.add(MonitorType.getColor(MonitorType.BAD));
        }
      }
      stateBean =
          new StateBean(
              node.getSvId(),
              node.getName(),
              Toolkit.getToolkit().formatDate(begin_date),
              Toolkit.getToolkit().formatDate(end_date),
              ok / size * 100,
              warn / size * 100,
              error / size * 100,
              disable / size * 100,
              bad / size * 100);
      Row row =
          addRow(
              new Row(),
              stateBean,
              stateBean.getPercentOk(),
              stateBean.getPercentWarn(),
              stateBean.getPercentError(),
              stateBean.getPercentDisable(),
              stateBean.getPercentBad());
      ChartUtil.clearComponent(getStatePercentRows());
      getStatePercentRows().appendChild(row);
      getDesktop().getSession().setAttribute("colorlist", colorlist);
      getSpectrumImage().setSrc("/main/report/SpectrumImage?Id" + new Random().nextDouble());
      PieDataset dataSet = createDataset(stateBean);
      Image image = ChartUtil.create3DPieChart(node.getName(), dataSet, 600, 300);
      getStatusImage().setSrc(image.getSrc());

      int index = 0;
      List<Date> aliasKey = new ArrayList<Date>(dstrMap.keySet());
      ChartUtil.clearComponent(getStatePeriodRow());
      while (index < size) {
        Date startTime = null;
        Date endTime = null;
        String status = null;
        int count = 0;
        for (; index < size; index++) {
          DstrItem dstrItem = dstrMap.get(aliasKey.get(index));
          //					if (!"ok".equals(dstrItem.status) && !"error".equals(dstrItem.status))	continue;
          if (status == null) status = dstrItem.status;
          if (!status.equals(dstrItem.status)) break;
          if (startTime == null) startTime = aliasKey.get(index);
          count++;
          endTime = aliasKey.get(index);
        }
        if (startTime == null || endTime == null) {
          Row blankRow = new Row();
          blankRow.appendChild(new Label("无数据!"));
          getStatePeriodRow().appendChild(blankRow);
          continue;
        }
        String strTime = subtract2Date(startTime, endTime);
        StateItem sitem =
            new StateItem(
                Toolkit.getToolkit().formatDate(startTime), status, String.valueOf(count), strTime);
        stateItems.add(sitem);
        Row generatetime =
            addRow(
                new Row(),
                null,
                sitem.getBeginTime(),
                ChartUtil.getImage(sitem.getStatus()),
                sitem.getCount(),
                sitem.getPersistTime());
        getStatePeriodRow().appendChild(generatetime);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }