|
package com.shihua.bgdata.chart_sp.imp;
import java.awt.Color;
import java.awt.Font;
import java.awt.GradientPaint;
import java.awt.RenderingHints;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import java.util.ListIterator;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.block.BlockBorder;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.CategoryItemRenderer;
import org.jfree.chart.title.LegendTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.AbstractDataset;
import org.jfree.ui.HorizontalAlignment;
import org.jfree.ui.RectangleEdge;
import org.jfree.util.SortOrder;
import com.shihua.bgdata.chart.IJFreeChartProvider;
import com.shihua.bgdata.chart.JFreeChartUtil;
import com.shihua.bgdata.dto.comp.FinanceIndexDTO;
import com.shihua.bgdata.server.picture.handler.PictureHandle;
public class FinanceIndexChartProImp implements IJFreeChartProvider,Serializable{
private AbstractDataset dataSet;
public JFreeChartUtil createChart() {
JFreeChartUtil util = new JFreeChartUtil();
util.setWidth(450);
util.setHeight(243);
JFreeChart jfreechart = ChartFactory.createLineChart("", "", "", (CategoryDataset) dataSet, PlotOrientation.VERTICAL,true, true, false);
jfreechart.getRenderingHints().put(
RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
// 绘制渐进色
GradientPaint gp = new GradientPaint(0, 0,
PictureHandle.DEFAULT_COLORS[0], 0, util.getHeight(),
PictureHandle.DEFAULT_COLORS[1]);
jfreechart.setBackgroundPaint(gp);
jfreechart.getPlot().setBackgroundPaint(gp);
CategoryPlot cp = jfreechart.getCategoryPlot();
cp.setColumnRenderingOrder(SortOrder.ASCENDING);
CategoryAxis categoryaxis = cp.getDomainAxis();
categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
categoryaxis.setAxisLinePaint(Color.WHITE);
categoryaxis.setLabelPaint(Color.WHITE);
categoryaxis.setTickMarkPaint(Color.WHITE);
categoryaxis.setTickLabelPaint(Color.WHITE);
ValueAxis rAxis = cp.getRangeAxis();
rAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));
rAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));
rAxis.setAxisLinePaint(Color.WHITE);
rAxis.setLabelPaint(Color.WHITE);
rAxis.setTickMarkPaint(Color.WHITE);
rAxis.setTickLabelPaint(Color.WHITE);
CategoryItemRenderer render = cp.getRenderer();
render.setSeriesPaint(0, PictureHandle.KIND_COLORS[3]);
render.setSeriesPaint(1, PictureHandle.KIND_COLORS[1]);
render.setSeriesPaint(2, PictureHandle.KIND_COLORS[4]);
render.setSeriesPaint(3, PictureHandle.KIND_COLORS[2]);
LegendTitle legend = jfreechart.getLegend();
legend.setItemPaint(Color.WHITE);
legend.setHorizontalAlignment(HorizontalAlignment.LEFT);
legend.setPosition(RectangleEdge.TOP);
legend.setBackgroundPaint(gp);
legend.setBorder(BlockBorder.NONE);
util.setFreeChart(jfreechart);
return util;
}
public void setDataSet(List list, int type) {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
if (list != null && !list.isEmpty()) {
for (ListIterator lt = list.listIterator(); lt.hasNext();) {
FinanceIndexDTO dto = (FinanceIndexDTO) lt.next();
switch (type) {
case 1: dataset.addValue(dto.getEquitycapitalrate(), "净资产收益率", dto .getEnddate());break;
case 2: dataset.addValue(BigDecimal.ONE.divide(BigDecimal.ONE.subtract((dto.getDebtcapitalrate().divide(new BigDecimal("100")))), 2,BigDecimal.ROUND_HALF_UP), "所有者权益乘数", dto.getEnddate()); break;
case 3: dataset.addValue(dto.getReturnontotalassets(), "资产收益率", dto.getEnddate());break;
case 4: dataset.addValue(dto.getSaleprofitrate(), "销售净利率", dto.getEnddate());break;
case 5: dataset.addValue(dto.getTotalassetcyclerate(), "资产周转率", dto.getEnddate());break;
case 6: dataset.addValue(dto.getTotaldata(), "沃尔评价法得分", dto.getEnddate());break;
case 7: dataset.addValue(dto.getTotaldata(), "综合评价法得分", dto.getEnddate());break;
}
}
}
this.dataSet = dataset;
}
public AbstractDataset getDataSet() {
return dataSet;
}
public void setDataSet(AbstractDataset dataSet) {
this.dataSet = dataSet;
}
public JFreeChartUtil createChart(int type) {
return null;
}
}
|