From 22a75e42c8070238c48bdcf2283360ce8e0d7438 Mon Sep 17 00:00:00 2001 From: Carlson Date: Tue, 1 Aug 2023 15:52:09 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-79271=20feat:=E8=80=83=E8=99=91=E5=85=BC?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chart/mode/ChartEditContext.java | 27 +++++++++++++++++++ .../chart/mode/ChartEditSupportDataType.java | 13 +++++++++ .../chart/gui/data/NormalChartDataPane.java | 5 +++- 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 designer-base/src/main/java/com/fr/design/mainframe/chart/mode/ChartEditSupportDataType.java 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); }