diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/PlotFactory.java b/designer-chart/src/main/java/com/fr/van/chart/designer/PlotFactory.java index 0f9db09fa..3167b5f59 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/PlotFactory.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/PlotFactory.java @@ -19,6 +19,7 @@ import com.fr.plugin.chart.heatmap.VanChartHeatMapPlot; import com.fr.plugin.chart.line.VanChartLinePlot; import com.fr.plugin.chart.map.VanChartMapPlot; import com.fr.plugin.chart.multilayer.VanChartMultiPiePlot; +import com.fr.plugin.chart.radar.VanChartRadarPlot; import com.fr.plugin.chart.scatter.VanChartScatterPlot; import com.fr.plugin.chart.structure.VanChartStructurePlot; import com.fr.plugin.chart.treemap.VanChartTreeMapPlot; @@ -94,6 +95,20 @@ public class PlotFactory { return autoAdjustLabelPlots.contains(plot.getClass()); } + private static Set> supportAddTableFieldPlots = new HashSet<>(); + + static { + supportAddTableFieldPlots.add(PiePlot4VanChart.class); + supportAddTableFieldPlots.add(VanChartColumnPlot.class); + supportAddTableFieldPlots.add(VanChartLinePlot.class); + supportAddTableFieldPlots.add(VanChartAreaPlot.class); + supportAddTableFieldPlots.add(VanChartRadarPlot.class); + } + + public static boolean plotSupportAddTableField(Plot plot) { + return supportAddTableFieldPlots.contains(plot.getClass()); + } + private static Set> borderAndBackgroundLabelPlots = new HashSet<>(); static { diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/richText/VanChartFieldListPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/richText/VanChartFieldListPane.java index 60a0b1158..6e0e587be 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/richText/VanChartFieldListPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/richText/VanChartFieldListPane.java @@ -54,7 +54,7 @@ public class VanChartFieldListPane extends JPanel { List richEditorFieldNames = VanChartRichEditorPane.getFieldNames(); - this.tableFieldNameList = richEditorFieldNames == null ? new ArrayList<>() : richEditorFieldNames; + this.tableFieldNameList = (!supportAddField() || richEditorFieldNames == null) ? new ArrayList<>() : richEditorFieldNames; this.fieldAttrPane = fieldAttrPane; this.richEditorPane = richEditorPane; @@ -133,6 +133,10 @@ public class VanChartFieldListPane extends JPanel { new AttrTooltipPercentFormat(), false, fieldListener); } + protected boolean supportAddField() { + return true; + } + protected void addDefaultFieldButton(JPanel fieldPane) { fieldPane.add(categoryNameButton); fieldPane.add(seriesNameButton); diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/richText/VanChartRichEditorPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/richText/VanChartRichEditorPane.java index dcec83deb..69c93926c 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/richText/VanChartRichEditorPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/richText/VanChartRichEditorPane.java @@ -3,6 +3,7 @@ package com.fr.van.chart.designer.component.richText; import com.fr.base.TableData; import com.fr.base.chart.chartdata.TopDefinitionProvider; import com.fr.chart.chartattr.Chart; +import com.fr.chart.chartattr.Plot; import com.fr.chart.chartdata.MoreNameCDDefinition; import com.fr.chart.chartdata.OneValueCDDefinition; import com.fr.data.TableDataSource; @@ -17,6 +18,7 @@ import com.fr.log.FineLoggerFactory; import com.fr.plugin.chart.base.AttrTooltipRichText; import com.fr.plugin.chart.type.TextAlign; import com.fr.stable.StringUtils; +import com.fr.van.chart.designer.PlotFactory; import com.teamdev.jxbrowser.chromium.Browser; import com.teamdev.jxbrowser.chromium.JSValue; import com.teamdev.jxbrowser.chromium.events.ScriptContextAdapter; @@ -51,6 +53,12 @@ public class VanChartRichEditorPane { return; } + Plot plot = chart.getPlot(); + + if (plot == null || !PlotFactory.plotSupportAddTableField(plot)) { + return; + } + TopDefinitionProvider definition = chart.getFilterDefinition(); if (definition == null) { diff --git a/designer-chart/src/main/java/com/fr/van/chart/pie/style/VanChartPieCategoryRichTextFieldListPane.java b/designer-chart/src/main/java/com/fr/van/chart/pie/style/VanChartPieCategoryRichTextFieldListPane.java index deb62c01c..15361b490 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/pie/style/VanChartPieCategoryRichTextFieldListPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/pie/style/VanChartPieCategoryRichTextFieldListPane.java @@ -32,6 +32,10 @@ public class VanChartPieCategoryRichTextFieldListPane extends VanChartFieldListP new AttrTooltipSummaryValueFormat(), false, listener); } + protected boolean supportAddField() { + return false; + } + protected void addDefaultFieldButton(JPanel fieldPane) { fieldPane.add(getCategoryNameButton()); fieldPane.add(summaryValueButton);