diff --git a/document/echarts.md b/document/echarts.md
index bf3bc8b..a29b800 100644
--- a/document/echarts.md
+++ b/document/echarts.md
@@ -1,22 +1,19 @@
-# ECharts类介绍
+# AbstractECharts类介绍
-ECharts是`com.fr.chart.chartattr.Chart`的子类,需要实现几个重要的方法
+### AbstractECharts 继承抽象类AbstractChartWithData,需要实现几个重要的方法
-两个构造方法,一个为不带参数,一个为带[EChartsPlot](echarts_plot.md)参数
+//改图表类型对应的ID,同plugin.xml中定义的plotID
+`public String getID()`
// 生成图表配置属性的方法,最终用于生成一个JSON格式的数据到web端
-`public BaseChartGlyph createGlyph(ChartData chartData) `
+`public JSONObject createAttributeConfig(ChartWebParaProvider chartWebPara)`
-// 判断能够接收的图表类型
+// 读取xml中相关配置,基本数据类型可重写readAttr
-`public boolean accept(Class extends Chart> obClass)`
+`public void readXML(XMLableReader reader)`
-// 读取xml中相关配置
-
-`protected void readChartXML(XMLableReader reader)`
-
-// 各种设置信息保存到xml文件中
+// 各种设置信息保存到xml文件中,基本数据类型可重写readAttr
`public void writeXML(XMLPrintWriter writer)`
\ No newline at end of file
diff --git a/document/echarts_develop.md b/document/echarts_develop.md
index 10756b7..5092446 100644
--- a/document/echarts_develop.md
+++ b/document/echarts_develop.md
@@ -1,61 +1,62 @@
# ECharts图表插件开发文档
+## 开发文档
+[详细开发文档点击这里查看](https://kms.finedevelop.com/pages/viewpage.action?pageId=81570214&focusedCommentId=83937068#comment-83937068)
+
## 关键接口解释
-`IndependentChartProvider`
+`ChartTypeProvider`
-介绍:该接口的作用是扩展图表类型引擎部分,一般继承`AbstractIndependentEChartsProvider`就可以了
+介绍:该接口的作用是扩展图表类型引擎部分,一般继承`AbstractEChartsType`就可以了
-`IndependentChartUIProvider`
+`ChartTypeUIProvider`
-介绍:该接口的作用是扩展图表类型的设计器部分,一般继承`AbstractIndependentEChartsUI`就可以了
+介绍:该接口的作用是扩展图表类型的设计器部分,一般继承`AbstractEChartsTypeUI`就可以了
-以上两个接口,都是在plugin.xml中进行配置以扩展图表类型的,使用class属性来对应相应的扩展类,plotID属性对应图表Plot类型
+以上两个接口,都是在plugin.xml中进行配置以扩展图表类型的,使用class属性来对应相应的扩展类,plotID属性对应图表类型ID
## 关键类解释
-每实现一种新类型的图表,都需要实现抽象类`AbstractIndependentEChartsProvider`来扩展已有的图表类型引擎以及实现抽象类`AbstractIndependentEChartsUI`类扩展已有的图表类型的设计界面.
+每实现一种新类型的图表,都需要实现抽象类`AbstractEChartsType`来扩展已有的图表类型引擎以及实现抽象类`AbstractEChartsTypeUI`类扩展已有的图表类型的设计界面.
-为了方便统一处理新的图表类型,我们继承内置的`com.fr.chart.chartattr.Chart`类实现一个全新的图表类[com.fr.solution.plugin.chart.echarts.ECharts](echarts.md).
+为了方便统一处理新的图表类型,我们继承内置的`com.fr.chart.impl.AbstractChartWithData`类实现一个全新的图表类[com.fr.solution.plugin.chart.echarts.common.base.AbstractECharts](echarts.md).
-### 继承了AbstractIndependentEChartsProvider的类需要实现以下方法
+### 继承了AbstractEChartsType的类需要实现以下方法
-// 该方法用于描述图表的名字
+// 该方法用户描述图表的子类型,饼图、玫瑰饼图等。
-`public String getChartName()`
+`public Chart[] getChartTypes()`
-// 该方法用于描述图表的显示名字,会根据不同的语言设置显示不同的名字
-`public String getChartUseName()`
+### 继承了AbstractEChartsTypeUI的类需要实现以下方法
-// 该方法用户描述图表的子类型
+// 该方法用于描述图表类型选择界面(一种图表还会有若干种子类型,所以需要这个界面)
-`public Chart[] getChartTypes()`
+[`public AbstractChartTypePane getPlotTypePane()`](echarts_type_pane.md)
-// 该方法用于描述图表对应的图片,一般在设计界面和图表选择界面会看到该图片
+// 该方法用于描述图表的名字
-`public String getChartImagePath()`
+`public String getChartName()`
-### 继承了AbstractIndependentEChartsUI的类需要实现以下方法
+// 该方法用户描述此种类型的图表的小图标,一般在添加表单元素的选择界面可以看到
-// 该方法用于描述图表类型选择界面(一种图表还会有若干种子类型,所以需要这个界面)
+`public String getIconPath()`
-[`public AbstractChartTypePane getPlotTypePane()`](echarts_type_pane.md)
+// 该方法用于描述图表的子类型的名字
-// 该方法用于描述此种图表类型的使用数据集数据时的数据设置界面
+`public String[] getSubName()`
-`public AbstractTableDataContentPane getTableDataSourcePane(Plot plot, ChartDataPane parent)`
+// 该方法用于描述图表对应的图片,图表选择界面使用
-// 该方法用于描述此种图表类型的使用单元格数据时的数据设置界面
+`public String[] getDemoImagePath()`
-`public AbstractReportDataContentPane getReportDataSourcePane(Plot plot, ChartDataPane parent)`
+// 该方法用于描述此种图表类型的数据配置界面。默认是分类系列值。
-// 该方法用户描述此种类型的图表的小图标,一般在添加表单元素的选择界面可以看到
+`public AbstractDataPane getChartDataPane(AttributeChangeListener listener)`
-`public String getIconPath()`
### 所有新加的实现了XMLAble接口或者其子类的类,都必须要实现相等的判断方法,否者界面设计变化时无法正确检测到属性变化
`public boolean equals(Object ob)`
-例如:ECharts,EChartsTooltip等
+例如:AbstractECharts,EChartsTooltip等
\ No newline at end of file
diff --git a/document/echarts_plot.md b/document/echarts_plot.md
deleted file mode 100644
index edf8223..0000000
--- a/document/echarts_plot.md
+++ /dev/null
@@ -1 +0,0 @@
-# EChartsPlot类介绍
\ No newline at end of file
diff --git a/document/echarts_type_pane.md b/document/echarts_type_pane.md
index 4d04613..9189fe8 100644
--- a/document/echarts_type_pane.md
+++ b/document/echarts_type_pane.md
@@ -1,29 +1,17 @@
-# AbstractEChartsTypePane子类介绍
+# AbstractEChartsTypePane子类介绍:
具有子类型的图表,都需要继承该类以实现各种子类型选择以及切换.具体实现可以参考`EChartsPieChartTypePane`.
需要实现几个重要的方法
-// 该选择界面能收的图表类型
-
-`public boolean accept(Object ob)`
-
-// 默认选中的图表
-
-`public Chart getDefaultChart()`
-
-// 图表选择界面读取并展现
-
-`public void populateBean(Chart chart)`
-
-// 获取选中的图表类型
-
-`public Plot getSelectedClonedPlot()`
-
// 图表各种子类型的图标
`public String[] getIconsOfTypes()`
-// 图表各种子类型的名字
+// 图表选择界面展现图表属性
+
+`public void populateBean(T chart)`
+
+// 图表选择界面保存图表属性
-`public String[] getNamesOfTypes()`
\ No newline at end of file
+`public void updateBean(T chart)`
\ No newline at end of file
diff --git a/plugin.xml b/plugin.xml
index dc2fa69..a0fc9e9 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -4,12 +4,13 @@
com.fr.solution.plugin
yes
- 3.1
+ 4.0
10.0
2018-10-01
author
[2019-10-24]适配10.0图表相关接口重构
[2016-02-18]饼图(支持多分类饼图)
[2016-03-03]增加国际化支持(美国英语)
[2016-05-28]兼容最新的API升级
@@ -20,13 +21,13 @@
-
-
-
+
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/base/AbstractECharts.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/base/AbstractECharts.java
new file mode 100644
index 0000000..7fcd2b1
--- /dev/null
+++ b/src/main/java/com/fr/solution/plugin/chart/echarts/common/base/AbstractECharts.java
@@ -0,0 +1,158 @@
+package com.fr.solution.plugin.chart.echarts.common.base;
+
+import com.fr.base.chart.cross.FormulaProcessor;
+import com.fr.chart.ChartWebParaProvider;
+import com.fr.chart.impl.AbstractChartWithData;
+import com.fr.general.ComparatorUtils;
+import com.fr.general.xml.GeneralXMLTools;
+import com.fr.intelli.record.Focus;
+import com.fr.intelli.record.Original;
+import com.fr.json.JSONException;
+import com.fr.json.JSONObject;
+import com.fr.record.analyzer.EnableMetrics;
+import com.fr.solution.plugin.chart.echarts.common.legend.EChartsLegend;
+import com.fr.solution.plugin.chart.echarts.common.theme.EChartsTheme;
+import com.fr.solution.plugin.chart.echarts.common.title.EChartsTitle;
+import com.fr.solution.plugin.chart.echarts.common.tooltip.EChartsTooltip;
+import com.fr.stable.AssistUtils;
+import com.fr.stable.xml.XMLPrintWriter;
+import com.fr.stable.xml.XMLableReader;
+
+/**
+ * Created by richie on 16/1/29.
+ */
+@EnableMetrics
+public abstract class AbstractECharts extends AbstractChartWithData {
+
+ private EChartsTheme theme;
+ private EChartsTooltip tooltip;
+ private EChartsTitle title;
+ private EChartsLegend legend;
+
+ public AbstractECharts() {
+ setTitle(new EChartsTitle());
+ setTooltip(new EChartsTooltip());
+ }
+
+ public EChartsTheme getTheme() {
+ return theme;
+ }
+
+ public void setTheme(EChartsTheme theme) {
+ this.theme = theme;
+ }
+
+ public EChartsTooltip getTooltip() {
+ return tooltip;
+ }
+
+ public void setTooltip(EChartsTooltip tooltip) {
+ this.tooltip = tooltip;
+ }
+
+ public EChartsTitle getTitle() {
+ return title;
+ }
+
+ public void setTitle(EChartsTitle title) {
+ this.title = title;
+ }
+
+ public EChartsLegend getLegend() {
+ return legend;
+ }
+
+ public void setLegend(EChartsLegend legend) {
+ this.legend = legend;
+ }
+
+ @Override
+ public void readXML(XMLableReader reader) {
+ super.readXML(reader);
+ if (reader.isChildNode()) {
+ String tmpNodeName = reader.getTagName();
+
+ if (tmpNodeName.equals(EChartsTheme.XML_TAG)) {
+ theme = (EChartsTheme) GeneralXMLTools.readXMLable(reader);
+ } else if (tmpNodeName.equals(EChartsTooltip.XML_TAG)) {
+ tooltip = (EChartsTooltip) GeneralXMLTools.readXMLable(reader);
+ } else if (tmpNodeName.equals(EChartsTitle.XML_TAG)) {
+ setTitle(new EChartsTitle());
+ reader.readXMLObject(getTitle());
+ }
+ }
+ }
+
+ @Override
+ public void writeXML(XMLPrintWriter writer) {
+ super.writeXML(writer);
+ if (theme != null) {
+ GeneralXMLTools.writeXMLable(writer, theme, EChartsTheme.XML_TAG);
+ }
+ if (tooltip != null) {
+ GeneralXMLTools.writeXMLable(writer, tooltip, EChartsTooltip.XML_TAG);
+ }
+ if (this.title != null) {
+ this.title.writeXML(writer);
+ }
+ }
+
+ @Override
+ public boolean equals(Object ob) {
+ return ob instanceof AbstractECharts
+ && super.equals(ob)
+ && ComparatorUtils.equals(theme, ((AbstractECharts) ob).theme)
+ && ComparatorUtils.equals(title, ((AbstractECharts) ob).title)
+ && ComparatorUtils.equals(legend, ((AbstractECharts) ob).legend)
+ && ComparatorUtils.equals(tooltip, ((AbstractECharts) ob).tooltip);
+ }
+
+ @Override
+ public int hashCode() {
+ return super.hashCode() + AssistUtils.hashCode(theme, tooltip, title, legend);
+ }
+
+ @Override
+ public AbstractECharts clone() throws CloneNotSupportedException {
+ AbstractECharts result = (AbstractECharts) super.clone();
+ if (getTheme() != null) {
+ result.setTheme(getTheme().clone());
+ }
+ if (getTitle() != null) {
+ result.setTitle(getTitle().clone());
+ }
+ if (getTooltip() != null) {
+ result.setTooltip(getTooltip().clone());
+ }
+ if (getLegend() != null) {
+ result.setLegend((EChartsLegend) getLegend().clone());
+ }
+ return result;
+ }
+
+ @Override
+ public void dealFormula(FormulaProcessor formulaProcessor) {
+ super.dealFormula(formulaProcessor);
+ if (this.getTitle() != null) {
+ this.getTitle().dealFormula(formulaProcessor);
+ }
+ }
+
+ @Focus(id = EChartsConstants.PLUGIN_ID, text = "", source = Original.PLUGIN)
+ public JSONObject createAttributeConfig(ChartWebParaProvider chartWebPara) throws JSONException {
+ JSONObject jo = super.createAttributeConfig(chartWebPara);
+
+ if (getTitle() != null) {
+ jo.put("title", getTitle().createAttributeConfig());
+ }
+
+ if (getTheme() != null) {
+ jo.put("theme", getTheme().getName());
+ }
+ if (getTooltip() != null) {
+ jo.put("tooltip", getTooltip().createAttributeConfig());
+ }
+ return jo;
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/base/AbstractIndependentEChartsProvider.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/base/AbstractEChartsType.java
similarity index 55%
rename from src/main/java/com/fr/solution/plugin/chart/echarts/common/base/AbstractIndependentEChartsProvider.java
rename to src/main/java/com/fr/solution/plugin/chart/echarts/common/base/AbstractEChartsType.java
index 1ebfba6..c902220 100644
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/base/AbstractIndependentEChartsProvider.java
+++ b/src/main/java/com/fr/solution/plugin/chart/echarts/common/base/AbstractEChartsType.java
@@ -1,12 +1,13 @@
package com.fr.solution.plugin.chart.echarts.common.base;
-import com.fr.chart.fun.impl.AbstractIndependentChartProviderWithAPILevel;
+import com.fr.chart.impl.AbstractChartType;
/**
- * Created by richie on 16/1/29.
+ * @author shine
+ * @version 10.0
+ * Created by shine on 2019/10/23
*/
-public abstract class AbstractIndependentEChartsProvider extends AbstractIndependentChartProviderWithAPILevel {
-
+public abstract class AbstractEChartsType extends AbstractChartType {
@Override
public String[] getRequiredJS() {
return new String[]{
@@ -15,12 +16,12 @@ public abstract class AbstractIndependentEChartsProvider extends AbstractIndepen
}
@Override
- public String getWrapperName() {
- return "EChartsFactory";
+ public String[] getRequiredCss() {
+ return new String[0];
}
@Override
- public int currentAPILevel() {
- return CURRENT_API_LEVEL;
+ public String getWrapperName() {
+ return "EChartsFactory";
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/base/ECharts.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/base/ECharts.java
deleted file mode 100644
index 8a87c25..0000000
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/base/ECharts.java
+++ /dev/null
@@ -1,168 +0,0 @@
-package com.fr.solution.plugin.chart.echarts.common.base;
-
-import com.fr.base.chart.BaseChartGlyph;
-import com.fr.base.chart.chartdata.ChartData;
-import com.fr.chart.chartattr.Chart;
-import com.fr.chart.chartattr.ChartXMLCompatibleUtils;
-import com.fr.chart.chartattr.Plot;
-import com.fr.chart.chartdata.TopDefinition;
-import com.fr.chart.chartglyph.PlotGlyph;
-import com.fr.general.ComparatorUtils;
-import com.fr.general.xml.GeneralXMLTools;
-import com.fr.solution.plugin.chart.echarts.common.data.EChartsMoreNameCDDefinition;
-import com.fr.solution.plugin.chart.echarts.common.data.EChartsNormalReportDataDefinition;
-import com.fr.solution.plugin.chart.echarts.common.data.EChartsOneValueCDDefinition;
-import com.fr.solution.plugin.chart.echarts.common.glyph.EChartsGlyph;
-import com.fr.solution.plugin.chart.echarts.common.glyph.EChartsLegendGlyph;
-import com.fr.solution.plugin.chart.echarts.common.glyph.EChartsTitleGlyph;
-import com.fr.solution.plugin.chart.echarts.common.plot.EChartsPlot;
-import com.fr.solution.plugin.chart.echarts.common.theme.EChartsTheme;
-import com.fr.solution.plugin.chart.echarts.common.title.EChartsTitle;
-import com.fr.solution.plugin.chart.echarts.common.tooltip.EChartsTooltip;
-import com.fr.stable.xml.XMLPrintWriter;
-import com.fr.stable.xml.XMLReadable;
-import com.fr.stable.xml.XMLableReader;
-
-/**
- * Created by richie on 16/1/29.
- */
-public class ECharts extends Chart {
-
- private EChartsTheme theme;
- private EChartsTooltip tooltip;
-
-
- public ECharts() {
- this(null);
- }
-
- public ECharts(EChartsPlot plot) {
- super(plot);
- setWrapperName("EChartsFactory");
- setTitle(new EChartsTitle());
- setTooltip(new EChartsTooltip());
- }
-
- public EChartsTheme getTheme() {
- return theme;
- }
-
- public void setTheme(EChartsTheme theme) {
- this.theme = theme;
- }
-
- public EChartsTooltip getTooltip() {
- return tooltip;
- }
-
- public void setTooltip(EChartsTooltip tooltip) {
- this.tooltip = tooltip;
- }
-
- @Override
- public BaseChartGlyph createGlyph(ChartData chartData) {
- EChartsGlyph glyph = new EChartsGlyph();
- glyph.setGeneralInfo(this);
- EChartsPlot EChartsPlot = getPlot();
- if (EChartsPlot != null) {
- PlotGlyph plotGlyph = EChartsPlot.createPlotGlyph(chartData);
- glyph.setPlotGlyph(plotGlyph);
- EChartsLegendGlyph legendGlyph = EChartsPlot.createLegendGlyph(plotGlyph);
- glyph.setLegendGlyph(legendGlyph);
- }
- EChartsTitle title = (EChartsTitle) getTitle();
- if (title != null) {
- EChartsTitleGlyph titleGlyph = title.createGlyph();
- glyph.setTitleGlyph(titleGlyph);
- }
-
- glyph.setWrapperName(getWrapperName());
- glyph.setChartImagePath(getImagePath());
- glyph.setRequiredJS(getRequiredJS());
- glyph.setJSDraw(isJSDraw());
-
- if (theme != null) {
- glyph.setTheme(theme);
- }
- if (tooltip != null) {
- glyph.setTooltip(tooltip);
- }
-
- return glyph;
- }
-
- /**
- * 判断图表类型是否是obClass
- *
- * @param obClass 传入对象
- * @return 是否是obClass对象
- */
- public boolean accept(Class extends Chart> obClass) {
- return ComparatorUtils.equals(ECharts.class, obClass);
- }
-
-
- @Override
- protected void readChartXML(XMLableReader reader) {
- if (reader.isChildNode()) {
- String tmpNodeName = reader.getTagName();
-
- if (tmpNodeName.equals(EChartsTitle.XML_TAG)) {
- setTitle(new EChartsTitle());
- reader.readXMLObject(getTitle());
- } else if (tmpNodeName.equals(Plot.XML_TAG)) {
- setPlot((Plot) GeneralXMLTools.readXMLable(reader));
- } else if (tmpNodeName.equals("ChartAttr")) {
- this.setJSDraw(reader.getAttrAsBoolean("isJSDraw", true));
- this.setStyleGlobal(reader.getAttrAsBoolean("isStyleGlobal", false));
- } else if (ComparatorUtils.equals(tmpNodeName, "ChartDefinition")) {
- reader.readXMLObject(new XMLReadable() {
- public void readXML(XMLableReader reader) {
- setFilterDefinition(readDefinition(reader));
- }
- });
- } else if (tmpNodeName.equals(EChartsTheme.XML_TAG)) {
- theme = (EChartsTheme) GeneralXMLTools.readXMLable(reader);
- } else if (tmpNodeName.equals(EChartsTooltip.XML_TAG)) {
- tooltip = (EChartsTooltip) GeneralXMLTools.readXMLable(reader);
- }
- }
- }
-
- public static TopDefinition readDefinition(XMLableReader reader) {
- TopDefinition filterDefinition;
- String tmpNodeName = reader.getTagName();
- if (EChartsOneValueCDDefinition.XML_TAG.equals(tmpNodeName)) {
- filterDefinition = new EChartsOneValueCDDefinition();
- } else if (EChartsMoreNameCDDefinition.XML_TAG.equals(tmpNodeName)) {
- filterDefinition = new EChartsMoreNameCDDefinition();
- } else if (EChartsNormalReportDataDefinition.XML_TAG.equals(tmpNodeName)) {
- filterDefinition = new EChartsNormalReportDataDefinition();
- } else {
- return ChartXMLCompatibleUtils.readDefinition(reader);
- }
-
- reader.readXMLObject(filterDefinition);
- return filterDefinition;
- }
-
-
- @Override
- public void writeXML(XMLPrintWriter writer) {
- super.writeXML(writer);
- if (theme != null) {
- GeneralXMLTools.writeXMLable(writer, theme, EChartsTheme.XML_TAG);
- }
- if (tooltip != null) {
- GeneralXMLTools.writeXMLable(writer, tooltip, EChartsTooltip.XML_TAG);
- }
- }
-
- @Override
- public boolean equals(Object ob) {
- return ob instanceof ECharts
- && super.equals(ob)
- && ComparatorUtils.equals(theme, ((ECharts) ob).theme)
- && ComparatorUtils.equals(tooltip, ((ECharts) ob).tooltip);
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/data/EChartsMoreNameCDDefinition.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/data/EChartsMoreNameCDDefinition.java
deleted file mode 100644
index 4c2c24e..0000000
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/data/EChartsMoreNameCDDefinition.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.fr.solution.plugin.chart.echarts.common.data;
-
-import com.fr.chart.chartdata.MoreNameCDDefinition;
-import com.fr.chart.chartdata.NormalChartData;
-
-/**
- * Created by Mitisky on 16/1/19.
- */
-public class EChartsMoreNameCDDefinition extends MoreNameCDDefinition {
-
- private static final long serialVersionUID = -2555257182076448042L;
-
- protected NormalChartData getNormalChartData(Object[] series_name_array, Object[][] series_v_2D) {
- NormalChartData normal = new EChartsNormalChartData(categoryLabels, series_name_array, series_v_2D);
- normal.setSecondCates(secondLabels);
- normal.setThirdCates(thirdLabels);
- return normal;
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/data/EChartsNormalChartData.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/data/EChartsNormalChartData.java
deleted file mode 100644
index 9d7210e..0000000
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/data/EChartsNormalChartData.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.fr.solution.plugin.chart.echarts.common.data;
-
-import com.fr.chart.chartdata.NormalChartData;
-
-/**
- * Created by Mitisky on 16/1/19.
- * 不做大数据过滤
- */
-public class EChartsNormalChartData extends NormalChartData {
-
- public EChartsNormalChartData() {
-
- }
-
- public EChartsNormalChartData(Object[] category_array, Object[] series_array, Object[][] series_value_2D) {
- super(category_array, series_array, series_value_2D);
- }
-
- /**
- * 处理大数据.1000分类.
- * 不做任何处理
- */
- public void dealHugeData() {
- //新的图表数据不在这里处理大数据
- //画图的时候处理:折线图相同像素点只画一个,其他图表有配置是否采用大数据模式。
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/data/EChartsNormalReportDataDefinition.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/data/EChartsNormalReportDataDefinition.java
deleted file mode 100644
index 9c7916c..0000000
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/data/EChartsNormalReportDataDefinition.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.fr.solution.plugin.chart.echarts.common.data;
-
-import com.fr.chart.chartdata.NormalChartData;
-import com.fr.chart.chartdata.NormalReportDataDefinition;
-
-/**
- * Created by Mitisky on 16/1/19.
- *
- */
-public class EChartsNormalReportDataDefinition extends NormalReportDataDefinition {
-
- private static final long serialVersionUID = -645098535257304519L;
-
- protected NormalChartData getNormalDataObject() {
- return new EChartsNormalChartData();
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/data/EChartsOneValueCDDefinition.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/data/EChartsOneValueCDDefinition.java
deleted file mode 100644
index 09f8a3c..0000000
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/data/EChartsOneValueCDDefinition.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.fr.solution.plugin.chart.echarts.common.data;
-
-import com.fr.chart.chartdata.NormalChartData;
-import com.fr.chart.chartdata.OneValueCDDefinition;
-
-/**
- * Created by Mitisky on 16/1/19.
- */
-public class EChartsOneValueCDDefinition extends OneValueCDDefinition {
-
- private static final long serialVersionUID = -7069079313068958054L;
-
- protected NormalChartData getNormalChartData(Object[] series_name_array, Object[][] series_v_2D) {
- NormalChartData normal = new EChartsNormalChartData(categoryLabels, series_name_array, series_v_2D);
- normal.setSecondCates(secondLabels);
- normal.setThirdCates(thirdLabels);
- return normal;
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/data/NormalEChartsColumnFieldCollection.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/data/NormalEChartsColumnFieldCollection.java
new file mode 100644
index 0000000..20eecfb
--- /dev/null
+++ b/src/main/java/com/fr/solution/plugin/chart/echarts/common/data/NormalEChartsColumnFieldCollection.java
@@ -0,0 +1,26 @@
+package com.fr.solution.plugin.chart.echarts.common.data;
+
+import com.fr.chartx.data.annotations.KeyField;
+import com.fr.chartx.data.field.ColumnField;
+import com.fr.chartx.data.field.diff.AbstractColumnFieldCollectionWithSeriesValue;
+
+/**
+ * @author shine
+ * @version 10.0
+ * Created by shine on 2019/10/23
+ *
+ * 分类、系列、值三个字段
+ */
+public class NormalEChartsColumnFieldCollection extends AbstractColumnFieldCollectionWithSeriesValue {
+
+ @KeyField
+ private ColumnField category = new ColumnField();
+
+ public ColumnField getCategory() {
+ return category;
+ }
+
+ public void setCategory(ColumnField category) {
+ this.category = category;
+ }
+}
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/glyph/EChartsGlyph.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/glyph/EChartsGlyph.java
deleted file mode 100644
index 122f7bf..0000000
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/glyph/EChartsGlyph.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.fr.solution.plugin.chart.echarts.common.glyph;
-
-import com.fr.chart.chartglyph.ChartGlyph;
-import com.fr.json.JSONArray;
-import com.fr.json.JSONException;
-import com.fr.json.JSONObject;
-import com.fr.solution.plugin.chart.echarts.common.theme.EChartsTheme;
-import com.fr.solution.plugin.chart.echarts.common.tooltip.EChartsTooltip;
-import com.fr.stable.StringUtils;
-import com.fr.stable.web.Repository;
-
-/**
- * Created by richie on 16/1/29.
- */
-public class EChartsGlyph extends ChartGlyph {
-
- private EChartsTheme theme;
- private EChartsTooltip tooltip;
-
- public void setTheme(EChartsTheme theme) {
- this.theme = theme;
- }
-
- public void setTooltip(EChartsTooltip tooltip) {
- this.tooltip = tooltip;
- }
-
- @Override
- public JSONObject toJSONObject(Repository repo) throws JSONException {
- JSONObject jo = JSONObject.create();
- EChartsTitleGlyph titleGlyph = (EChartsTitleGlyph) getTitleGlyph();
- if (titleGlyph != null) {
- jo.put("title", titleGlyph.toJSONObject(repo));
- }
-
-
- EChartsLegendGlyph legendGlyph = (EChartsLegendGlyph) getLegendGlyph();
- if (legendGlyph != null) {
- jo.put("legend", legendGlyph.toJSONObject(repo));
- }
- EChartsPlotGlyph plotGlyph = (EChartsPlotGlyph) getPlotGlyph();
- if (plotGlyph != null) {
- jo.put("series", plotGlyph.toSeriesData(repo));
- }
- if (theme != null) {
- jo.put("theme", theme.getName());
- }
- if (tooltip != null) {
- jo.put("tooltip", tooltip.toJSONObject(repo));
- }
- return jo;
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/glyph/EChartsLegendGlyph.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/glyph/EChartsLegendGlyph.java
deleted file mode 100644
index f8e8e95..0000000
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/glyph/EChartsLegendGlyph.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.fr.solution.plugin.chart.echarts.common.glyph;
-
-import com.fr.chart.chartglyph.LegendGlyph;
-import com.fr.chart.chartglyph.LegendItem;
-import com.fr.json.JSONArray;
-import com.fr.json.JSONException;
-import com.fr.json.JSONObject;
-import com.fr.stable.ArrayUtils;
-import com.fr.stable.web.Repository;
-
-/**
- * Created by richie on 16/2/2.
- */
-public class EChartsLegendGlyph extends LegendGlyph {
-
- public EChartsLegendGlyph(LegendItem[] items) {
- super(items);
- }
-
- @Override
- public JSONObject toJSONObject(Repository repo) throws JSONException {
- JSONObject result = JSONObject.create()
- .put("orient", "horizontal")
- .put("y", "bottom");
- LegendItem[] items = getItems();
-
- if (ArrayUtils.isNotEmpty(items)) {
- JSONArray data = JSONArray.create();
- result.put("data", data);
- for (LegendItem item : items) {
- JSONObject jo = item.toJSONObject(repo);
- data.put(jo.optString("label"));
- }
- }
- return result;
- }
-
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/glyph/EChartsPlotGlyph.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/glyph/EChartsPlotGlyph.java
deleted file mode 100644
index daddc48..0000000
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/glyph/EChartsPlotGlyph.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.fr.solution.plugin.chart.echarts.common.glyph;
-
-import com.fr.chart.chartglyph.PlotGlyph;
-import com.fr.json.JSONArray;
-import com.fr.json.JSONException;
-import com.fr.json.JSONObject;
-import com.fr.stable.web.Repository;
-
-/**
- * Created by richie on 16/2/18.
- */
-public abstract class EChartsPlotGlyph extends PlotGlyph {
-
- @Override
- public void layoutAxisGlyph(int resolution) {
-
- }
-
- @Override
- public void layoutDataSeriesGlyph(int resolution) {
-
- }
-
- @Override
- public JSONObject toJSONObject(Repository repo) throws JSONException {
- throw new UnsupportedOperationException("Not support yet!");
- }
-
- public abstract JSONArray toSeriesData(Repository repo) throws JSONException;
-}
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/glyph/EChartsTitleGlyph.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/glyph/EChartsTitleGlyph.java
deleted file mode 100644
index b07d04d..0000000
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/glyph/EChartsTitleGlyph.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.fr.solution.plugin.chart.echarts.common.glyph;
-
-import com.fr.chart.chartglyph.TitleGlyph;
-import com.fr.json.JSONException;
-import com.fr.json.JSONObject;
-import com.fr.stable.web.Repository;
-
-/**
- * Created by richie on 16/2/2.
- */
-public class EChartsTitleGlyph extends TitleGlyph {
-
-
- public EChartsTitleGlyph(String title) {
- setText(title);
- }
-
- @Override
- public JSONObject toJSONObject(Repository repo) throws JSONException {
- return createTitle(repo);
- }
-
- private JSONObject createTitle(Repository repo) throws JSONException {
- JSONObject t = JSONObject.create()
- .put("text", getText())
- .put("x", "center");
- t.put("show", isVisible());
- return t;
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/legend/EChartsLegend.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/legend/EChartsLegend.java
index 2f274a0..6ddde86 100644
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/legend/EChartsLegend.java
+++ b/src/main/java/com/fr/solution/plugin/chart/echarts/common/legend/EChartsLegend.java
@@ -1,8 +1,10 @@
package com.fr.solution.plugin.chart.echarts.common.legend;
import com.fr.chart.chartattr.Legend;
-import com.fr.chart.chartglyph.LegendItem;
-import com.fr.solution.plugin.chart.echarts.common.glyph.EChartsLegendGlyph;
+import com.fr.json.JSONArray;
+import com.fr.json.JSONException;
+import com.fr.json.JSONObject;
+import com.fr.stable.ArrayUtils;
/**
* Created by richie on 16/2/18.
@@ -11,14 +13,18 @@ public class EChartsLegend extends Legend {
public static final String XML_TAG = "EChartsLegend";
- public EChartsLegendGlyph createLegendGlyph(LegendItem[] items) {
- EChartsLegendGlyph resultLegendGlyph = new EChartsLegendGlyph(items);
+ public static JSONObject createAttributeConfig(Object[] seriesArray) throws JSONException {
+ JSONObject result = JSONObject.create()
+ .put("orient", "horizontal")
+ .put("y", "bottom");
- resultLegendGlyph.setFont(getFRFont());
- resultLegendGlyph.setGeneralInfo(this);
- resultLegendGlyph.setPosition(getPosition());
- resultLegendGlyph.setVisible(isLegendVisible());
-
- return resultLegendGlyph;
+ if (ArrayUtils.isNotEmpty(seriesArray)) {
+ JSONArray data = JSONArray.create();
+ result.put("data", data);
+ for (Object item : seriesArray) {
+ data.put(item);
+ }
+ }
+ return result;
}
}
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/plot/EChartsPlot.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/plot/EChartsPlot.java
deleted file mode 100644
index a445a3b..0000000
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/plot/EChartsPlot.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.fr.solution.plugin.chart.echarts.common.plot;
-
-import com.fr.chart.chartattr.Legend;
-import com.fr.chart.chartattr.Plot;
-import com.fr.chart.chartglyph.PlotGlyph;
-import com.fr.general.ComparatorUtils;
-import com.fr.solution.plugin.chart.echarts.common.glyph.EChartsLegendGlyph;
-import com.fr.solution.plugin.chart.echarts.common.legend.EChartsLegend;
-import com.fr.stable.xml.XMLableReader;
-
-/**
- * Created by richie on 16/2/2.
- */
-public abstract class EChartsPlot extends Plot {
-
- public EChartsPlot() {
- setLegend(new EChartsLegend());
- }
-
- public boolean accept(Class extends Plot> obClass) {
- return ComparatorUtils.equals(EChartsPlot.class, obClass);
- }
-
- @Override
- public EChartsLegendGlyph createLegendGlyph(PlotGlyph plotGlyph) {
- EChartsLegend legend = (EChartsLegend) getLegend();
- if (legend == null) {
- legend = new EChartsLegend();
- setLegend(legend);
- }
- return legend.createLegendGlyph(createLegendItems(plotGlyph));
- }
-
- protected void readPlotXML(XMLableReader reader){
- if (reader.isChildNode()) {
- String tagName = reader.getTagName();
-
- if (EChartsLegend.XML_TAG.equals(tagName)) {
- setLegend((Legend)reader.readXMLObject(new EChartsLegend()));
- }
- }
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/theme/EChartsTheme.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/theme/EChartsTheme.java
index 8c9f7dc..918fb8a 100644
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/theme/EChartsTheme.java
+++ b/src/main/java/com/fr/solution/plugin/chart/echarts/common/theme/EChartsTheme.java
@@ -54,7 +54,9 @@ public class EChartsTheme implements XMLable {
}
@Override
- public Object clone() throws CloneNotSupportedException {
- return super.clone();
+ public EChartsTheme clone() throws CloneNotSupportedException {
+ EChartsTheme result = (EChartsTheme) super.clone();
+ result.setName(this.getName());
+ return result;
}
}
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/title/EChartsTitle.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/title/EChartsTitle.java
index 501f3de..7bf34e4 100644
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/title/EChartsTitle.java
+++ b/src/main/java/com/fr/solution/plugin/chart/echarts/common/title/EChartsTitle.java
@@ -4,8 +4,8 @@ import com.fr.base.Formula;
import com.fr.base.Utils;
import com.fr.chart.chartattr.Title;
import com.fr.general.GeneralUtils;
-import com.fr.solution.plugin.chart.echarts.common.glyph.EChartsGlyph;
-import com.fr.solution.plugin.chart.echarts.common.glyph.EChartsTitleGlyph;
+import com.fr.json.JSONException;
+import com.fr.json.JSONObject;
import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLableReader;
@@ -16,8 +16,7 @@ public class EChartsTitle extends Title {
public static final String XML_TAG = "EChartsTitle";
- @Override
- public EChartsTitleGlyph createGlyph() {
+ public JSONObject createAttributeConfig() throws JSONException {
Object text = getTextObject();
String text4Glyph = null;
if(text instanceof Formula) {
@@ -28,9 +27,12 @@ public class EChartsTitle extends Title {
} else {
text4Glyph = GeneralUtils.objectToString(text);
}
- EChartsTitleGlyph titleGlyph = new EChartsTitleGlyph(text4Glyph);
- titleGlyph.setVisible(isTitleVisible());
- return titleGlyph;
+
+ JSONObject t = JSONObject.create()
+ .put("text", text4Glyph)
+ .put("x", "center");
+ t.put("show", isTitleVisible());
+ return t;
}
@Override
@@ -52,4 +54,14 @@ public class EChartsTitle extends Title {
writer.startTAG("Attr4ECharts").end();
writer.end();
}
+
+ @Override
+ public EChartsTitle clone() throws CloneNotSupportedException {
+ return (EChartsTitle) super.clone();
+ }
+
+ @Override
+ public boolean equals(Object ob) {
+ return super.equals(ob);
+ }
}
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/tooltip/EChartsTooltip.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/tooltip/EChartsTooltip.java
index cfb6567..0cbb81f 100644
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/tooltip/EChartsTooltip.java
+++ b/src/main/java/com/fr/solution/plugin/chart/echarts/common/tooltip/EChartsTooltip.java
@@ -4,7 +4,6 @@ import com.fr.general.ComparatorUtils;
import com.fr.json.JSONException;
import com.fr.json.JSONObject;
import com.fr.stable.StringUtils;
-import com.fr.stable.web.Repository;
import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLable;
import com.fr.stable.xml.XMLableReader;
@@ -39,7 +38,7 @@ public class EChartsTooltip implements XMLable {
this.format = format;
}
- public JSONObject toJSONObject(Repository repo) throws JSONException {
+ public JSONObject createAttributeConfig() throws JSONException {
JSONObject jo = JSONObject.create();
jo.put("trigger", triggerType.getType());
jo.put("formatter", format);
@@ -77,7 +76,7 @@ public class EChartsTooltip implements XMLable {
}
@Override
- public Object clone() throws CloneNotSupportedException {
- return super.clone();
+ public EChartsTooltip clone() throws CloneNotSupportedException {
+ return (EChartsTooltip) super.clone();
}
}
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/AbstractEChartsTypePane.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/AbstractEChartsTypePane.java
index 5e7e8e5..41043eb 100644
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/AbstractEChartsTypePane.java
+++ b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/AbstractEChartsTypePane.java
@@ -1,26 +1,12 @@
package com.fr.solution.plugin.chart.echarts.common.ui;
-import com.fr.chart.chartattr.Chart;
-import com.fr.chart.chartattr.Legend;
-import com.fr.chart.chartattr.Plot;
-import com.fr.chart.chartglyph.ConditionCollection;
+import com.fr.design.ChartTypeInterfaceManager;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
-import com.fr.design.mainframe.chart.gui.type.ChartImagePane;
-import com.fr.general.FRLogger;
-import com.fr.solution.plugin.chart.echarts.common.base.ECharts;
-import com.fr.stable.ArrayUtils;
+import com.fr.solution.plugin.chart.echarts.common.base.AbstractECharts;
-import java.util.ArrayList;
-import java.util.List;
-
-public abstract class AbstractEChartsTypePane extends AbstractChartTypePane{
+public abstract class AbstractEChartsTypePane extends AbstractChartTypePane {
private static final long serialVersionUID = 7743244512351499265L;
- @Override
- protected String[] getTypeLayoutPath() {
- return ArrayUtils.EMPTY_STRING_ARRAY;
- }
-
@Override
protected String[] getTypeIconPath() {
return getIconsOfTypes();
@@ -32,64 +18,12 @@ public abstract class AbstractEChartsTypePane extends AbstractChartTypePane{
*/
public abstract String[] getIconsOfTypes();
- /**
- * 各种图表子类型的名字,需要和图表的字类型数量一致
- * @return 子类型的名字的集合
- */
- public abstract String[] getNamesOfTypes();
-
-
- /**
- * 返回选择的图表子类型
- * @return 图表类型
- */
- public abstract Plot getSelectedClonedPlot();
-
- /**
- * 该选择界面能接收的图表类型
- * @param ob 待判断的对象
- * @return 如果该选择界面能接收,则返回true,否则返回false
- */
- public abstract boolean accept(Object ob);
-
- /**
- * 保存界面属性
- */
- public void updateBean(Chart chart) {
- Plot oldPlot = chart.getPlot();
- Plot newPlot = getSelectedClonedPlot();
- checkTypeChange(oldPlot);
- boolean samePlot = accept(chart);
- if(typeChanged && samePlot){
- //同一中图表切换不同类型
- cloneOldPlot2New(oldPlot, newPlot);
- chart.setPlot(newPlot);
- } else if(!samePlot){
- //不同的图表类型切换
- chart.setPlot(newPlot);
- }
- }
-
- protected void checkTypeChange(Plot oldPlot){
- for(int i = 0; i < typeDemo.size(); i++){
- if(typeDemo.get(i).isPressing && i != oldPlot.getDetailType()){
- typeChanged = true;
- break;
- }
- typeChanged = false;
- }
+ @Override
+ protected String[] getTypeTipName() {
+ return ChartTypeInterfaceManager.getInstance().getSubName(getPlotID());
}
- /**
- * 同一个图表, 类型之间切换
- */
- protected void cloneOldPlot2New(Plot oldPlot, Plot newPlot) {
- try {
- if (oldPlot.getLegend() != null) {
- newPlot.setLegend((Legend) oldPlot.getLegend().clone());
- }
- } catch (CloneNotSupportedException e) {
- FRLogger.getLogger().error(e.getMessage(), e);
- }
+ public String title4PopupWindow() {
+ return ChartTypeInterfaceManager.getInstance().getName(getPlotID());
}
}
\ No newline at end of file
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/AbstractEChartsTypeUI.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/AbstractEChartsTypeUI.java
new file mode 100644
index 0000000..9cefb15
--- /dev/null
+++ b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/AbstractEChartsTypeUI.java
@@ -0,0 +1,35 @@
+package com.fr.solution.plugin.chart.echarts.common.ui;
+
+import com.fr.design.chart.fun.impl.AbstractChartTypeUI;
+import com.fr.design.chartx.impl.AbstractDataPane;
+import com.fr.design.chartx.impl.AbstractOtherPane;
+import com.fr.design.chartx.single.SingleDataPane;
+import com.fr.design.gui.frpane.AttributeChangeListener;
+import com.fr.solution.plugin.chart.echarts.common.ui.data.NormalEChartsCellDataPane;
+import com.fr.solution.plugin.chart.echarts.common.ui.data.NormalEChartsDataSetPane;
+
+/**
+ * Created by richie on 16/2/18.
+ */
+public abstract class AbstractEChartsTypeUI extends AbstractChartTypeUI {
+
+ private EChartsStylePane stylePane;
+
+ public AbstractOtherPane[] getAttrPaneArray(AttributeChangeListener listener) {
+ if (stylePane == null) {
+ stylePane = new EChartsStylePane(listener);
+ }
+ return new AbstractOtherPane[]{stylePane};
+ }
+
+ @Override
+ public AbstractDataPane getChartDataPane(AttributeChangeListener listener) {
+ return new AbstractDataPane(listener) {
+ @Override
+ protected SingleDataPane createSingleDataPane() {
+ return new SingleDataPane(new NormalEChartsDataSetPane(), new NormalEChartsCellDataPane());
+ }
+ };
+ }
+
+}
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/AbstractIndependentEChartsUI.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/AbstractIndependentEChartsUI.java
deleted file mode 100644
index 3e8ceb5..0000000
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/AbstractIndependentEChartsUI.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.fr.solution.plugin.chart.echarts.common.ui;
-
-import com.fr.design.chart.fun.impl.AbstractIndependentChartUIWithAPILevel;
-import com.fr.design.gui.frpane.AttributeChangeListener;
-import com.fr.design.mainframe.chart.AbstractChartAttrPane;
-
-/**
- * Created by richie on 16/2/18.
- */
-public abstract class AbstractIndependentEChartsUI extends AbstractIndependentChartUIWithAPILevel {
-
- private EChartsStylePane stylePane;
-
- @Override
- public boolean isUseDefaultPane() {
- return false;
- }
-
- public AbstractChartAttrPane[] getAttrPaneArray(AttributeChangeListener listener){
- if (stylePane == null) {
- stylePane = new EChartsStylePane(listener);
- }
- return new AbstractChartAttrPane[]{stylePane};
- }
-
- @Override
- public int currentAPILevel() {
- return CURRENT_API_LEVEL;
- }
-}
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsLegendPane.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsLegendPane.java
index f068300..a724817 100644
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsLegendPane.java
+++ b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsLegendPane.java
@@ -3,15 +3,16 @@ package com.fr.solution.plugin.chart.echarts.common.ui;
import com.fr.design.dialog.BasicScrollPane;
import com.fr.design.gui.ilable.UILabel;
import com.fr.general.Inter;
-import com.fr.solution.plugin.chart.echarts.common.base.ECharts;
+import com.fr.solution.plugin.chart.echarts.common.base.AbstractECharts;
-import javax.swing.*;
-import java.awt.*;
+import javax.swing.JPanel;
+import javax.swing.SwingConstants;
+import java.awt.BorderLayout;
/**
* Created by richie on 16/2/22.
*/
-public class EChartsLegendPane extends BasicScrollPane {
+public class EChartsLegendPane extends BasicScrollPane {
public EChartsLegendPane(EChartsStylePane parent) {
@@ -24,7 +25,7 @@ public class EChartsLegendPane extends BasicScrollPane {
}
@Override
- public void populateBean(ECharts ob) {
+ public void populateBean(AbstractECharts ob) {
}
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsStylePane.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsStylePane.java
index 43a9986..69cf09a 100644
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsStylePane.java
+++ b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsStylePane.java
@@ -1,23 +1,25 @@
package com.fr.solution.plugin.chart.echarts.common.ui;
-import com.fr.chart.chartattr.ChartCollection;
import com.fr.design.beans.BasicBeanPane;
+import com.fr.design.chartx.impl.AbstractOtherPane;
import com.fr.design.dialog.BasicPane;
import com.fr.design.dialog.MultiTabPane;
import com.fr.design.event.UIObserver;
import com.fr.design.event.UIObserverListener;
import com.fr.design.gui.frpane.AttributeChangeListener;
-import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.PaneTitleConstants;
import com.fr.general.Inter;
-import com.fr.solution.plugin.chart.echarts.common.base.ECharts;
+import com.fr.solution.plugin.chart.echarts.common.base.AbstractECharts;
-import javax.swing.*;
-import java.awt.*;
+import javax.swing.BorderFactory;
+import javax.swing.JPanel;
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Container;
import java.util.ArrayList;
import java.util.List;
-public class EChartsStylePane extends AbstractChartAttrPane implements UIObserver {
+public class EChartsStylePane extends AbstractOtherPane implements UIObserver {
private KindOfTabPane kindOfTabPane;
@@ -29,7 +31,7 @@ public class EChartsStylePane extends AbstractChartAttrPane implements UIObserve
private AttributeChangeListener listener;
private UIObserverListener uiObserverListener;
- private ECharts chart;
+ private AbstractECharts chart;
public EChartsStylePane(AttributeChangeListener listener) {
this.listener = listener;
@@ -89,10 +91,9 @@ public class EChartsStylePane extends AbstractChartAttrPane implements UIObserve
return "com/fr/solution/plugin/chart/echarts/images/toolbar_item.png";
}
-
@Override
- public void populate(ChartCollection collection) {
- this.chart = (ECharts) collection.getSelectedChart();
+ public void populate(AbstractECharts chart) {
+ this.chart = chart;
this.remove(leftContentPane);
initContentPane();
this.removeAttributeChangeListener();
@@ -102,8 +103,8 @@ public class EChartsStylePane extends AbstractChartAttrPane implements UIObserve
}
@Override
- public void update(ChartCollection collection) {
- kindOfTabPane.updateBean((ECharts) collection.getSelectedChart());
+ public void update(AbstractECharts chart) {
+ kindOfTabPane.updateBean(chart);
}
/**
@@ -136,7 +137,7 @@ public class EChartsStylePane extends AbstractChartAttrPane implements UIObserve
/**
* 二级tab组件
*/
- public class KindOfTabPane extends MultiTabPane {
+ public class KindOfTabPane extends MultiTabPane {
@Override
protected void initLayout() {
@@ -185,7 +186,7 @@ public class EChartsStylePane extends AbstractChartAttrPane implements UIObserve
@Override
protected void tabChanged() {
EChartsStylePane.this.removeAttributeChangeListener();
- ((BasicBeanPane) paneList.get(tabPane.getSelectedIndex())).populateBean(chart);
+ ((BasicBeanPane) paneList.get(tabPane.getSelectedIndex())).populateBean(chart);
EChartsStylePane.this.addAttributeChangeListener(listener);
}
@@ -200,25 +201,25 @@ public class EChartsStylePane extends AbstractChartAttrPane implements UIObserve
}
@Override
- public void populateBean(ECharts ob) {
+ public void populateBean(AbstractECharts ob) {
if (chart == null || kindOfTabPane.getSelectedIndex() == -1) {
return;
}
- ((BasicBeanPane) paneList.get(kindOfTabPane.getSelectedIndex())).populateBean(chart);
+ ((BasicBeanPane) paneList.get(kindOfTabPane.getSelectedIndex())).populateBean(chart);
}
@Override
- public ECharts updateBean() {
+ public AbstractECharts updateBean() {
if (chart == null) {
return null;
}
- ((BasicBeanPane) paneList.get(kindOfTabPane.getSelectedIndex())).updateBean(chart);
+ ((BasicBeanPane) paneList.get(kindOfTabPane.getSelectedIndex())).updateBean(chart);
return chart;
}
@Override
- public void updateBean(ECharts ob) {
- BasicBeanPane pane = ((BasicBeanPane) paneList.get(kindOfTabPane.getSelectedIndex()));
+ public void updateBean(AbstractECharts ob) {
+ BasicBeanPane pane = ((BasicBeanPane) paneList.get(kindOfTabPane.getSelectedIndex()));
pane.updateBean(ob);
}
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsThemePane.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsThemePane.java
index b640e1d..452bd35 100644
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsThemePane.java
+++ b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsThemePane.java
@@ -6,16 +6,17 @@ import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.general.Inter;
-import com.fr.solution.plugin.chart.echarts.common.base.ECharts;
+import com.fr.solution.plugin.chart.echarts.common.base.AbstractECharts;
import com.fr.solution.plugin.chart.echarts.common.theme.EChartsTheme;
-import javax.swing.*;
-import java.awt.*;
+import javax.swing.JPanel;
+import java.awt.BorderLayout;
+import java.awt.Component;
/**
* Created by richie on 16/2/22.
*/
-public class EChartsThemePane extends BasicScrollPane {
+public class EChartsThemePane extends BasicScrollPane {
private static final String[] themes = new String[]{"default", "dark"};
@@ -48,7 +49,7 @@ public class EChartsThemePane extends BasicScrollPane {
}
@Override
- public void populateBean(ECharts ob) {
+ public void populateBean(AbstractECharts ob) {
if (ob == null) {
return;
}
@@ -59,9 +60,9 @@ public class EChartsThemePane extends BasicScrollPane {
}
@Override
- public void updateBean(ECharts ob) {
+ public void updateBean(AbstractECharts ob) {
if (ob == null) {
- ob = new ECharts();
+ return;
}
EChartsTheme theme = new EChartsTheme();
theme.setName(themeComboBox.getSelectedItem());
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsTitlePane.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsTitlePane.java
index 5fb0dbf..a46c34d 100644
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsTitlePane.java
+++ b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsTitlePane.java
@@ -9,17 +9,18 @@ import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.general.GeneralUtils;
import com.fr.general.Inter;
-import com.fr.solution.plugin.chart.echarts.common.base.ECharts;
+import com.fr.solution.plugin.chart.echarts.common.base.AbstractECharts;
import com.fr.solution.plugin.chart.echarts.common.title.EChartsTitle;
import com.fr.stable.StableUtils;
-import javax.swing.*;
-import java.awt.*;
+import javax.swing.JPanel;
+import java.awt.BorderLayout;
+import java.awt.Component;
/**
* Created by richie on 16/2/19.
*/
-public class EChartsTitlePane extends BasicScrollPane {
+public class EChartsTitlePane extends BasicScrollPane {
private UIButtonGroup showTitle;
@@ -54,7 +55,7 @@ public class EChartsTitlePane extends BasicScrollPane {
}
@Override
- public void populateBean(ECharts ob) {
+ public void populateBean(AbstractECharts ob) {
EChartsTitle title = (EChartsTitle) ob.getTitle();
if (title == null) {
return;
@@ -68,9 +69,9 @@ public class EChartsTitlePane extends BasicScrollPane {
}
@Override
- public void updateBean(ECharts ob) {
+ public void updateBean(AbstractECharts ob) {
if (ob == null) {
- ob = new ECharts();
+ return;
}
EChartsTitle title = new EChartsTitle();
ob.setTitle(title);
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsTooltipPane.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsTooltipPane.java
index efc9509..f0ee05b 100644
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsTooltipPane.java
+++ b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/EChartsTooltipPane.java
@@ -7,17 +7,18 @@ import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.general.Inter;
-import com.fr.solution.plugin.chart.echarts.common.base.ECharts;
+import com.fr.solution.plugin.chart.echarts.common.base.AbstractECharts;
import com.fr.solution.plugin.chart.echarts.common.tooltip.EChartsTooltip;
import com.fr.solution.plugin.chart.echarts.common.tooltip.TriggerType;
-import javax.swing.*;
-import java.awt.*;
+import javax.swing.JPanel;
+import java.awt.BorderLayout;
+import java.awt.Component;
/**
* Created by richie on 16/2/19.
*/
-public class EChartsTooltipPane extends BasicScrollPane {
+public class EChartsTooltipPane extends BasicScrollPane {
private UIDictionaryComboBox triggerComboBox;
private UITextField formatterTextField;
@@ -54,7 +55,7 @@ public class EChartsTooltipPane extends BasicScrollPane {
}
@Override
- public void populateBean(ECharts ob) {
+ public void populateBean(AbstractECharts ob) {
if (ob == null) {
return;
}
@@ -67,9 +68,9 @@ public class EChartsTooltipPane extends BasicScrollPane {
}
@Override
- public void updateBean(ECharts ob) {
+ public void updateBean(AbstractECharts ob) {
if (ob == null) {
- ob = new ECharts();
+ return;
}
EChartsTooltip tooltip = new EChartsTooltip();
tooltip.setTriggerType(triggerComboBox.getSelectedItem());
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/data/AbstractEChartsReportDataContentPane.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/data/AbstractEChartsReportDataContentPane.java
deleted file mode 100644
index 5e64acd..0000000
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/data/AbstractEChartsReportDataContentPane.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.fr.solution.plugin.chart.echarts.common.ui.data;
-
-import com.fr.design.mainframe.chart.gui.ChartDataPane;
-import com.fr.design.mainframe.chart.gui.data.report.CategoryPlotReportDataContentPane;
-
-/**
- * Created by richie on 16/2/18.
- */
-public class AbstractEChartsReportDataContentPane extends CategoryPlotReportDataContentPane {
-
- public AbstractEChartsReportDataContentPane(ChartDataPane parent) {
- super(parent);
- }
-}
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/data/AbstractEChartsTableDataContentPane.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/data/AbstractEChartsTableDataContentPane.java
deleted file mode 100644
index 848ef2f..0000000
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/data/AbstractEChartsTableDataContentPane.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.fr.solution.plugin.chart.echarts.common.ui.data;
-
-import com.fr.design.mainframe.chart.gui.ChartDataPane;
-import com.fr.design.mainframe.chart.gui.data.table.CategoryPlotTableDataContentPane;
-
-/**
- * Created by richie on 16/1/29.
- */
-public class AbstractEChartsTableDataContentPane extends CategoryPlotTableDataContentPane {
-
- public AbstractEChartsTableDataContentPane(ChartDataPane parent) {
- super(parent);
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/data/NormalEChartsCellDataPane.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/data/NormalEChartsCellDataPane.java
new file mode 100644
index 0000000..dd76cac
--- /dev/null
+++ b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/data/NormalEChartsCellDataPane.java
@@ -0,0 +1,50 @@
+package com.fr.solution.plugin.chart.echarts.common.ui.data;
+
+import com.fr.design.chartx.fields.diff.AbstractCellDataFieldsWithSeriesValuePane;
+import com.fr.design.formula.TinyFormulaPane;
+import com.fr.design.i18n.Toolkit;
+import com.fr.solution.plugin.chart.echarts.common.data.NormalEChartsColumnFieldCollection;
+
+/**
+ * @author shine
+ * @version 10.0
+ * Created by shine on 2019/10/23
+ */
+public class NormalEChartsCellDataPane extends AbstractCellDataFieldsWithSeriesValuePane {
+ private TinyFormulaPane category;
+
+ @Override
+ protected String[] fieldLabels() {
+ return new String[]{
+ Toolkit.i18nText("Fine-Design_Chart_Category_Name")
+ };
+ }
+
+ @Override
+ protected TinyFormulaPane[] formulaPanes() {
+ return new TinyFormulaPane[]{
+ getCategory()
+ };
+ }
+
+ private TinyFormulaPane getCategory() {
+ if (category == null) {
+ category = new TinyFormulaPane();
+ }
+ return category;
+ }
+
+ @Override
+ public void populateBean(NormalEChartsColumnFieldCollection ob) {
+ populateSeriesValuePane(ob);
+ populateField(category, ob.getCategory());
+ }
+
+ @Override
+ public NormalEChartsColumnFieldCollection updateBean() {
+ NormalEChartsColumnFieldCollection columnFieldCollection = new NormalEChartsColumnFieldCollection();
+ updateSeriesValuePane(columnFieldCollection);
+ updateField(category, columnFieldCollection.getCategory());
+ return columnFieldCollection;
+ }
+}
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/data/NormalEChartsDataSetPane.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/data/NormalEChartsDataSetPane.java
new file mode 100644
index 0000000..0660fe8
--- /dev/null
+++ b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/data/NormalEChartsDataSetPane.java
@@ -0,0 +1,52 @@
+package com.fr.solution.plugin.chart.echarts.common.ui.data;
+
+import com.fr.design.chartx.fields.diff.AbstractDataSetFieldsWithSeriesValuePane;
+import com.fr.design.gui.icombobox.UIComboBox;
+import com.fr.design.i18n.Toolkit;
+import com.fr.extended.chart.UIComboBoxWithNone;
+import com.fr.solution.plugin.chart.echarts.common.data.NormalEChartsColumnFieldCollection;
+
+/**
+ * @author shine
+ * @version 10.0
+ * Created by shine on 2019/10/23
+ */
+public class NormalEChartsDataSetPane extends AbstractDataSetFieldsWithSeriesValuePane {
+ private UIComboBox category;
+
+ @Override
+ protected String[] fieldLabels() {
+ return new String[]{
+ Toolkit.i18nText("Fine-Design_Chart_Category_Name")
+ };
+ }
+
+ @Override
+ protected UIComboBox[] filedComboBoxes() {
+ return new UIComboBox[]{
+ getCategory()
+ };
+ }
+
+
+ private UIComboBox getCategory() {
+ if (category == null) {
+ category = new UIComboBoxWithNone();
+ }
+ return category;
+ }
+
+ @Override
+ public void populateBean(NormalEChartsColumnFieldCollection ob) {
+ populateSeriesValuePane(ob);
+ populateField(category, ob.getCategory());
+ }
+
+ @Override
+ public NormalEChartsColumnFieldCollection updateBean() {
+ NormalEChartsColumnFieldCollection columnFieldCollection = new NormalEChartsColumnFieldCollection();
+ updateSeriesValuePane(columnFieldCollection);
+ updateField(category, columnFieldCollection.getCategory());
+ return columnFieldCollection;
+ }
+}
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/filter/NewDataFilterPane.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/filter/NewDataFilterPane.java
deleted file mode 100644
index 7dcb8a7..0000000
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/filter/NewDataFilterPane.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.fr.solution.plugin.chart.echarts.common.ui.filter;
-
-import com.fr.chart.chartattr.ChartCollection;
-import com.fr.chart.chartattr.Plot;
-import com.fr.design.gui.frpane.AbstractAttrNoScrollPane;
-import com.fr.design.mainframe.chart.gui.ChartDataPane;
-import com.fr.design.mainframe.chart.gui.style.ThirdTabPane;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Created by richie on 16/2/18.
- */
-public class NewDataFilterPane extends ThirdTabPane {
-
- public NewDataFilterPane(Plot plot, ChartDataPane parent) {
- super(plot, parent);
- }
-
- @Override
- protected List initPaneList(Plot plot, AbstractAttrNoScrollPane parent) {
- List paneList = new ArrayList();
- return paneList;
- }
-
- @Override
- public void populateBean(ChartCollection ob) {
-
- }
-
- @Override
- protected String title4PopupWindow() {
- return null;
- }
-}
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/series/NewSeriesTypeUsePane.java b/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/series/NewSeriesTypeUsePane.java
deleted file mode 100644
index 071205b..0000000
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/common/ui/series/NewSeriesTypeUsePane.java
+++ /dev/null
@@ -1,159 +0,0 @@
-package com.fr.solution.plugin.chart.echarts.common.ui.series;
-
-import com.fr.base.chart.chartdata.TopDefinitionProvider;
-import com.fr.chart.chartattr.ChartCollection;
-import com.fr.chart.chartattr.Plot;
-import com.fr.chart.chartdata.MoreNameCDDefinition;
-import com.fr.chart.chartdata.OneValueCDDefinition;
-import com.fr.design.beans.FurtherBasicBeanPane;
-import com.fr.design.constants.LayoutConstants;
-import com.fr.design.gui.frpane.UIComboBoxPane;
-import com.fr.design.gui.ilable.UILabel;
-import com.fr.design.mainframe.chart.gui.ChartDataPane;
-import com.fr.design.mainframe.chart.gui.data.table.SeriesNameUseFieldNamePane;
-import com.fr.design.mainframe.chart.gui.data.table.SeriesNameUseFieldValuePane;
-import com.fr.design.utils.gui.GUICoreUtils;
-import com.fr.general.Inter;
-import com.fr.solution.plugin.chart.echarts.common.ui.filter.NewDataFilterPane;
-
-import javax.swing.*;
-import java.awt.*;
-import java.util.ArrayList;
-import java.util.List;
-
-public class NewSeriesTypeUsePane extends UIComboBoxPane {
-
- private SeriesNameUseFieldValuePane nameFieldValuePane;
- private SeriesNameUseFieldNamePane nameFieldNamePane;
-
- private NewDataFilterPane dataFilterPane;
-
- private ChartDataPane parent;
- private Plot initplot;
-
- private boolean isNeedSummary = true;
-
- public NewSeriesTypeUsePane(ChartDataPane parent, Plot initPlot) {
- cards = initPaneList();
- this.parent = parent;
- this.initplot = initPlot;
- this.isNeedSummary = true;
- initComponents();
- }
-
- protected void initLayout() {
- this.setLayout(new BorderLayout(4, LayoutConstants.VGAP_MEDIUM));
- JPanel northPane = new JPanel(new BorderLayout(4, 0));
- UILabel label1 = new UILabel(Inter.getLocText("ChartF-Series_Name_From") + ":", SwingConstants.RIGHT);
- label1.setPreferredSize(new Dimension(75, 20));
- northPane.add(GUICoreUtils.createBorderLayoutPane(
- jcb, BorderLayout.CENTER,
- label1, BorderLayout.WEST
- ));
- northPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 1));
- add(northPane, BorderLayout.NORTH);
- add(cardPane, BorderLayout.CENTER);
-
- dataFilterPane = new NewDataFilterPane(initplot, parent);
- add(dataFilterPane, BorderLayout.SOUTH);
- }
-
- /**
- * 检查box 是否使用, hasUse, 表示上层已经使用, 否则, 则此界面都可使用
- *
- * @param hasUse 是否使用
- */
- public void checkUseBox(boolean hasUse) {
- jcb.setEnabled(hasUse);
- nameFieldValuePane.checkUse(hasUse);
- }
-
- /**
- * 切换 变更数据集时, 刷新Box选中项目
- *
- * @param list 列表
- */
- public void refreshBoxListWithSelectTableData(List list) {
- nameFieldValuePane.refreshBoxListWithSelectTableData(list);
- nameFieldNamePane.refreshBoxListWithSelectTableData(list);
- }
-
- /**
- * 清空所有的box设置
- */
- public void clearAllBoxList() {
- nameFieldValuePane.clearAllBoxList();
- nameFieldNamePane.clearAllBoxList();
- }
-
- /**
- * 界面标题
- *
- * @return 界面标题
- */
- protected String title4PopupWindow() {
- return Inter.getLocText("ChartF-Series_Name_From");
- }
-
- @Override
- protected List> initPaneList() {
- nameFieldValuePane = new SeriesNameUseFieldValuePane();
- nameFieldNamePane = new SeriesNameUseFieldNamePane();
- List> paneList = new ArrayList>();
- paneList.add(nameFieldValuePane);
- paneList.add(nameFieldNamePane);
- return paneList;
- }
-
- public void populateBean(ChartCollection ob, boolean isNeedSummary) {
- this.isNeedSummary = isNeedSummary;
- TopDefinitionProvider definition = ob.getSelectedChart().getFilterDefinition();
- if (definition instanceof OneValueCDDefinition) {
- this.setSelectedIndex(0);
- nameFieldValuePane.populateBean(ob, isNeedSummary);
- } else if (definition instanceof MoreNameCDDefinition) {
- this.setSelectedIndex(1);
- nameFieldNamePane.populateBean(ob, isNeedSummary);
- }
- }
-
- /**
- * 重新布局整个面板
- *
- * @param isNeedSummary 是否需要汇总
- */
- public void relayoutPane(boolean isNeedSummary) {
- this.isNeedSummary = isNeedSummary;
- if (jcb.getSelectedIndex() == 0) {
- nameFieldValuePane.relayoutPane(this.isNeedSummary);
- } else {
- nameFieldNamePane.relayoutPane(this.isNeedSummary);
- }
- }
-
-
- @Override
- protected void comboBoxItemStateChanged() {
- if (jcb.getSelectedIndex() == 0) {
- nameFieldValuePane.relayoutPane(this.isNeedSummary);
- } else {
- nameFieldNamePane.relayoutPane(this.isNeedSummary);
- }
- }
-
- public void populateBean(ChartCollection ob) {
- this.populateBean(ob, true);
- }
-
- /**
- * 保存界面属性到Ob-ChartCollection
- */
- public void updateBean(ChartCollection ob) {
- if (this.getSelectedIndex() == 0) {
- nameFieldValuePane.updateBean(ob);
- } else {
- nameFieldNamePane.updateBean(ob);
- }
- }
-
-}
diff --git a/src/main/java/com/fr/solution/plugin/chart/echarts/pie/EChartsPie.java b/src/main/java/com/fr/solution/plugin/chart/echarts/pie/EChartsPie.java
index a3a14ac..7a620bd 100644
--- a/src/main/java/com/fr/solution/plugin/chart/echarts/pie/EChartsPie.java
+++ b/src/main/java/com/fr/solution/plugin/chart/echarts/pie/EChartsPie.java
@@ -1,40 +1,155 @@
package com.fr.solution.plugin.chart.echarts.pie;
-import com.fr.chart.chartattr.Chart;
-import com.fr.solution.plugin.chart.echarts.common.base.AbstractIndependentEChartsProvider;
-import com.fr.solution.plugin.chart.echarts.common.base.ECharts;
-import com.fr.solution.plugin.chart.echarts.pie.plot.EChartsPiePlot;
+import com.fr.chart.ChartWebParaProvider;
+import com.fr.chartx.TwoTuple;
+import com.fr.general.ComparatorUtils;
+import com.fr.general.GeneralUtils;
+import com.fr.json.JSONArray;
+import com.fr.json.JSONException;
+import com.fr.json.JSONObject;
+import com.fr.solution.plugin.chart.echarts.common.base.AbstractECharts;
+import com.fr.solution.plugin.chart.echarts.common.data.NormalEChartsColumnFieldCollection;
+import com.fr.solution.plugin.chart.echarts.common.legend.EChartsLegend;
import com.fr.solution.plugin.chart.echarts.pie.plot.RoseType;
+import com.fr.stable.AssistUtils;
+import com.fr.stable.StringUtils;
+import com.fr.stable.xml.XMLPrintWriter;
+import com.fr.stable.xml.XMLableReader;
+
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
/**
- * Created by richie on 16/2/18.
+ * @author shine
+ * @version 10.0
+ * Created by shine on 2019/10/23
*/
-public class EChartsPie extends AbstractIndependentEChartsProvider {
+public class EChartsPie extends AbstractECharts {
+ private static final NumberFormat format = new DecimalFormat("##%");
+
+ private RoseType roseType = RoseType.NONE;
+
+ public EChartsPie() {
+ }
+
+ public EChartsPie(RoseType roseType) {
+ this.roseType = roseType;
+ }
+
+ public RoseType getRoseType() {
+ return roseType;
+ }
+
+ public void setRoseType(RoseType roseType) {
+ this.roseType = roseType;
+ }
+
+ @Override
+ public String getID() {
+ return "EChartsPiePlot";
+ }
+
+ @Override
+ public JSONObject createAttributeConfig(ChartWebParaProvider chartWebPara) throws JSONException {
+ JSONObject jo = super.createAttributeConfig(chartWebPara);
+
+ jo.put("series", toSeriesData());
- private static ECharts createPie(RoseType type) {
- EChartsPiePlot plot = new EChartsPiePlot(type);
- return new ECharts(plot);
+ NormalEChartsColumnFieldCollection fieldCollection = getFieldCollection(NormalEChartsColumnFieldCollection.class);
+ List