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

📄 timeseriesproducer.java

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

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

import org.jfree.data.time.Day;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.time.TimeSeriesDataItem;

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.XYItemLinkGenerator;

public class TimeSeriesProducer
    implements DatasetProducer, XYItemLinkGenerator {

  public String getProducerId() {
    return null;
  }

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

  public Object produceDataset(Map params)
      throws DatasetProduceException {
    TimeSeries manTime = new TimeSeries("男士工资走势曲线", Day.class);
    TimeSeries womanTime = new TimeSeries("女士工资走势曲线", Day.class);
    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();
      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 employee_id,employee_name,birthday,salary,sex 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);
          result.add(variantSet);
        }
      }
      catch (Exception e) {
        e.printStackTrace();
        throw new IllegalArgumentException("数据处理异常.");
      }
      finally {
        stmt.close();
      }
      SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");

      for (int i = 0; i < result.size(); i++) {
        VariantSet vSet = (VariantSet)result.get(i);
        boolean sex = vSet.getBoolean("sex");
        double salary = vSet.getDouble("salary");
        String birthday = vSet.getString("birthday");
        try {
          Date date = sd.parse(birthday);
          if (sex) {
            manTime.add(new Day(this
                                .getDatePartByFormat("dd", date), this
                                .getDatePartByFormat("MM", date), this
                                .getDatePartByFormat("yyyy", date)), salary);
          }
          else {
            womanTime.add(new Day(this
                                  .getDatePartByFormat("dd", date), this
                                  .getDatePartByFormat("MM", date), this
                                  .getDatePartByFormat("yyyy", date)), salary);
          }
        }
        catch (ParseException e) {
          e.printStackTrace();
          throw new IllegalArgumentException("数据处理异常.");
        }
      }
    }
    TimeSeriesCollection tc = new TimeSeriesCollection();
    tc.addSeries(womanTime);
    tc.addSeries(manTime);
    return tc;
  }

  private int getDatePartByFormat(String pattern, Date d) {
    SimpleDateFormat sd = new SimpleDateFormat(pattern);
    return Integer.parseInt(sd.format(d));
  }

  public String generateLink(Object data, int series, int item) {
    TimeSeriesCollection timeseries = (TimeSeriesCollection)data;
    TimeSeries ser = timeseries.getSeries(series);
    StringBuffer sb = new StringBuffer();
    TimeSeriesDataItem it = ser.getDataItem(item);
    double tmp = ( (Double)it.getValue()).doubleValue();
    sb.append("javascript:");
    sb.append("var record = parent.dataset1.getFirstRecord();");
    sb.append("while (record) {");
    sb.append("var a=record.getValue('salary');");
    sb.append("if(a=='" + tmp + "'){");
    sb.append("parent.dataset1.setCurrent(record);");
    sb.append("break;");
    sb.append("}");
    sb.append("record = record.getNextRecord();");
    sb.append("}");
    sb.append("alert('" + tmp + "');");
    return sb.toString();
  }
}

⌨️ 快捷键说明

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