⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pieproducer.java

📁 dorado 展现中间件是一款企业级的商用AJAX平台软件
💻 JAVA
字号:
package sample.integration.chart.combine;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

import org.jfree.data.general.DefaultPieDataset;

import com.bstek.dorado.common.DoradoContext;
import com.bstek.dorado.data.PagingHelper;
import com.bstek.dorado.data.db.DBStatement;
import com.bstek.dorado.utils.variant.VariantSet;

import de.laures.cewolf.DatasetProduceException;
import de.laures.cewolf.DatasetProducer;
import de.laures.cewolf.links.PieSectionLinkGenerator;

public class PieProducer
    implements DatasetProducer, PieSectionLinkGenerator {

  public String getProducerId() {
    return null;
  }

  public boolean hasExpired(Map params, Date since) {
    return true;
  }

  public Object produceDataset(Map params)
      throws DatasetProduceException {
    DefaultPieDataset pie = new DefaultPieDataset();

    DoradoContext context = DoradoContext.getContext();
    String pageIndex = context.getParameter("pageIndex");
    String pageSize = context.getParameter("pageSize");
    if (pageIndex != null && pageSize != null) {
      DBStatement stmt = new DBStatement();
      stmt.setDataSource("doradosample");
      List result = new ArrayList();
      List degreeResult = new ArrayList();
      String sql = "select count(*) as c from employee";
      stmt.setSql(sql);
      PagingHelper page = new PagingHelper();
      try {
        VariantSet vs = stmt.query();
        int recordCount = vs.getInt("c");
        page.setPageIndex(Integer.parseInt(pageIndex));
        page.setPageSize(Integer.parseInt(pageSize));
        page.setTotalRow(recordCount);
        sql = "select * from employee";
        stmt.setSql(sql);
        List list = stmt.queryForList();
        for (int i = page.getFromIndex(); i < page.getFromIndex()
             + page.getPageSize(); i++) {
          if (i > list.size() - 1) {
            break;
          }
          VariantSet variantSet = (VariantSet)list.get(i);
          String degree = variantSet.getString("degree");
          if (!degreeResult.contains(degree)) {
            degreeResult.add(degree);
          }
          result.add(variantSet);
        }
      }
      catch (Exception e) {
        e.printStackTrace();
        throw new IllegalArgumentException("数据处理异常.");
      }
      finally {
        stmt.close();
      }

      for (int i = 0; i < degreeResult.size(); i++) {
        String degree = (String)degreeResult.get(i);
        int count = 0;
        for (int j = 0; j < result.size(); j++) {
          VariantSet vs = (VariantSet)result.get(j);
          String d = (String)vs.getString("degree");
          if (d.equals(degree)) {
            count++;
          }
          pie.setValue(degree + "学历员工数", count);
        }

      }
    }
    return pie;
  }

  public String generateLink(Object dataset, Object category) {
    DefaultPieDataset pie = (DefaultPieDataset)dataset;
    String value = pie.getValue(category.toString()).toString();
    StringBuffer sb = new StringBuffer();
    sb.append("javascript:alert('");
    sb.append("" + category + "=" + value + "");
    sb.append("');");
    return sb.toString();
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -