diff --git a/designer-base/src/main/java/com/fr/design/mainframe/chart/mode/ChartEditContext.java b/designer-base/src/main/java/com/fr/design/mainframe/chart/mode/ChartEditContext.java index 51fe2f816a..2aa862292f 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/chart/mode/ChartEditContext.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/chart/mode/ChartEditContext.java @@ -13,8 +13,28 @@ public class ChartEditContext { private static ChartEditMode current = ChartEditMode.NORMAL; + private static ChartEditSupportDataType supportDataType = ChartEditSupportDataType.BOTH; + + /** + * 切换图表编辑模式 + * @param mode 图表编辑模式 + */ public static void switchTo(ChartEditMode mode) { + if (mode == ChartEditMode.NORMAL) { + switchTo(mode, ChartEditSupportDataType.BOTH); + } else if (mode == ChartEditMode.DUCHAMP) { + switchTo(mode, ChartEditSupportDataType.TABLE_DATA); + } + } + + /** + * 切换图表编辑模式 + * @param mode 图表编辑模式 + * @param type 图表支持的数据来源 + */ + public static void switchTo(ChartEditMode mode, ChartEditSupportDataType type) { current = mode; + supportDataType = type; } public static boolean duchampMode() { @@ -33,4 +53,11 @@ public class ChartEditContext { public static boolean supportTheme() { return !DesignModeContext.isDuchampMode(); } + + /** + * 当前模式下是否支持单元格数据来源 + */ + public static boolean supportReportData() { + return supportDataType == ChartEditSupportDataType.REPORT || supportDataType == ChartEditSupportDataType.BOTH; + } } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/chart/mode/ChartEditSupportDataType.java b/designer-base/src/main/java/com/fr/design/mainframe/chart/mode/ChartEditSupportDataType.java new file mode 100644 index 0000000000..5c8236133a --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/mainframe/chart/mode/ChartEditSupportDataType.java @@ -0,0 +1,13 @@ +package com.fr.design.mainframe.chart.mode; + +/** + * @author Carlson + * @version 11.0 + * Created by Carlson on 2023/8/1 14:25 + * @description 图表数据来源,兼容用 + **/ +public enum ChartEditSupportDataType { + TABLE_DATA, // 数据集数据 + REPORT, // 单元格数据 + BOTH // 包含二者 +} diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java index c4b1e69b3c..ba1701710e 100644 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java +++ b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java @@ -7,6 +7,7 @@ import com.fr.design.gui.frpane.AttributeChangeListener; 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.mode.ChartEditContext; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.van.chart.designer.AbstractVanChartScrollPane; @@ -67,7 +68,9 @@ public class NormalChartDataPane extends DataContentsPane { label1.setPreferredSize(new Dimension(ChartDataPane.LABEL_WIDTH,ChartDataPane.LABEL_HEIGHT)); northPane.add(GUICoreUtils.createBorderLayoutPane(new Component[]{jcb, null, null, label1, null})); northPane.setBorder(BorderFactory.createEmptyBorder(0,5,0,8)); - this.add(northPane, BorderLayout.NORTH); + if (ChartEditContext.supportReportData()) { + this.add(northPane, BorderLayout.NORTH); + } this.add(cardPane, BorderLayout.CENTER); }