package com.sohu.cache.web.chart.model;
import com.sohu.cache.web.chart.key.ChartKeysUtil;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
public abstract class ChartEntity {
private Map<String, Object> chart;
private Map<String, Object> title;
private Map<String, Object> subtitle;
private Map<String, Object> xAxis;
private Map<String, Object> yAxis;
private Map<String, Object> tooltip;
private Map<String, Object> legend;
private List<Map<String, Object>> series;
public ChartEntity() {
// 初始化chart
Map<String, Object> chart = new LinkedHashMap<String, Object>();
chart.put(ChartKeysUtil.ChartKey.RENDER_TO.getKey(), "container");
this.setChart(chart);
// 初始化title
Map<String, Object> title = new LinkedHashMap<String, Object>();
title.put(ChartKeysUtil.TitleKey.TEXT.getKey(), "请设置图表title");
this.setTitle(title);
// 初始化subtitle
Map<String, Object> subtitle = new LinkedHashMap<String, Object>();
this.setSubtitle(subtitle);
// 初始化xAxis
Map<String, Object> xAxis = new LinkedHashMap<String, Object>();
this.setxAxis(xAxis);
// 初始化yAxis
Map<String, Object> yAxis = new LinkedHashMap<String, Object>();
this.setyAxis(yAxis);
// 初始化tooltip
Map<String, Object> tooltip = new LinkedHashMap<String, Object>();
this.setTooltip(tooltip);
// 初始化legend
Map<String, Object> legend = new LinkedHashMap<String, Object>();
this.setLegend(legend);
//初始化series
List<Map<String, Object>> series = new LinkedList<Map<String, Object>>();
this.setSeries(series);
}
/**
* 所有曲线类型必须设置曲线类型
*/
protected abstract void putChartType();
/**
* 指定容器,即页面div的id
* 默认为container,用户可以覆盖
*
* @param container 页面div的id
*/
public void renderTo(String container) {
this.putChart(ChartKeysUtil.ChartKey.RENDER_TO.getKey(), container);
}
/**
* 设置chart属性
*
* @param key
* @param value
*/
public void putChart(String key, Object value) {
this.getChart().put(key, value);
}
/**
* 设置title属性
*
* @param key
* @param value
*/
public void putTitle(String key, Object value) {
this.getTitle().put(key, value);
}
/**
* 设置subTitle属性
*
* @param key
* @param value
*/
public void putSubTitle(String key, Object value) {
this.getSubtitle().put(key, value);
}
/**
* @param key
* @param value
*/
public void putXAxis(String key, Object value) {
this.getxAxis().put(key, value);
}
/**
* @param key
* @param value
*/
public void putYAxis(String key, Object value) {
this.getyAxis().put(key, value);
}
/**
* @param key
* @param value
*/
public void putTooltip(String key, Object value) {
this.getTooltip().put(key, value);
}
/**
* @param key
* @param value
*/
public void putLegend(String key, Object value) {
this.getLegend().put(key, value);
}
/**
* @param series
*/
public void putSeries(Map<String, Object> series) {
this.getSeries().add(series);
}
// 以下是get set 方法
public Map<String, Object> getChart() {
return chart;
}
private void setChart(Map<String, Object> chart) {
this.chart = chart;
}
public Map<String, Object> getTitle() {
return title;
}
private void setTitle(Map<String, Object> title) {
this.title = title;
}
public Map<String, Object> getSubtitle() {
return subtitle;
}
private void setSubtitle(Map<String, Object> subtitle) {
this.subtitle = subtitle;
}
public Map<String, Object> getxAxis() {
return xAxis;
}
private void setxAxis(Map<String, Object> xAxis) {
this.xAxis = xAxis;
}
public Map<String, Object> getyAxis() {
return yAxis;
}
private void setyAxis(Map<String, Object> yAxis) {
this.yAxis = yAxis;
}
public Map<String, Object> getTooltip() {
return tooltip;
}
private void setTooltip(Map<String, Object> tooltip) {
this.tooltip = tooltip;
}
public Map<String, Object> getLegend() {
return legend;
}
private void setLegend(Map<String, Object> legend) {
this.legend = legend;
}
public List<Map<String, Object>> getSeries() {
return series;
}
private void setSeries(List<Map<String, Object>> series) {
this.series = series;
}
}