diff --git a/designer-base/src/main/java/com/fr/design/formula/DefaultTinyFormulaPane.java b/designer-base/src/main/java/com/fr/design/formula/DefaultTinyFormulaPane.java new file mode 100644 index 000000000..05053eec4 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/formula/DefaultTinyFormulaPane.java @@ -0,0 +1,17 @@ +package com.fr.design.formula; + +import com.fr.base.BaseFormula; + +/** + * @author Carlson + * @version 11.0 + * Created by Carlson on 2023/8/14 17:15 + * @description 默认的公式输入面板(包含一个输入框和一个F(x)按钮),清空公式内容后不会显示“$$$”,主要在图表配置面板里使用 + **/ +public class DefaultTinyFormulaPane extends TinyFormulaPane{ + + @Override + protected void populateTextField(BaseFormula fm) { + formulaTextField.setText(fm.getContent()); + } +} diff --git a/designer-base/src/main/java/com/fr/design/formula/TinyFormulaPane.java b/designer-base/src/main/java/com/fr/design/formula/TinyFormulaPane.java index d3060b42b..e5594ddd1 100644 --- a/designer-base/src/main/java/com/fr/design/formula/TinyFormulaPane.java +++ b/designer-base/src/main/java/com/fr/design/formula/TinyFormulaPane.java @@ -11,9 +11,11 @@ import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.TableLayout; import com.fr.design.mainframe.DesignerContext; - -import javax.swing.*; -import java.awt.*; +import javax.swing.BorderFactory; +import javax.swing.JPanel; +import java.awt.BorderLayout; +import java.awt.Cursor; +import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; diff --git a/designer-base/src/main/java/com/fr/design/gui/itree/filetree/FileNodeConstants.java b/designer-base/src/main/java/com/fr/design/gui/itree/filetree/FileNodeConstants.java index f5da5302c..60d727fda 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itree/filetree/FileNodeConstants.java +++ b/designer-base/src/main/java/com/fr/design/gui/itree/filetree/FileNodeConstants.java @@ -11,9 +11,8 @@ import com.fr.plugin.observer.PluginEventListener; import com.fr.report.ExtraReportClassManager; import com.fr.report.fun.ReportSupportedFileProvider; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; +import java.util.LinkedHashSet; import java.util.Set; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; @@ -23,7 +22,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; */ public class FileNodeConstants { - private static List supportFileType; + private static Set supportFileType; private static ReadWriteLock rwl = new ReentrantReadWriteLock(); private FileNodeConstants() { @@ -47,16 +46,14 @@ public class FileNodeConstants { private static void addAppExtensions(FileExtension[] extensions) { for (int i = 0, size = extensions.length; i < size; i++) { - if (!supportFileType.contains(extensions[i].getExtension())) { - supportFileType.add(extensions[i].getExtension()); - } + supportFileType.add(extensions[i].getExtension()); } } private static void initSupportedTypes() { try { rwl.writeLock().lock(); - supportFileType = new ArrayList(); + supportFileType = new LinkedHashSet<>(); //通过插件扩展的 Set providers = ExtraReportClassManager.getInstance().getArray(ReportSupportedFileProvider.XML_TAG); for (ReportSupportedFileProvider provider : providers) { 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 51fe2f816..30ff6c891 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 @@ -3,6 +3,9 @@ package com.fr.design.mainframe.chart.mode; import com.fr.common.annotations.Open; import com.fr.design.base.mode.DesignModeContext; +import java.util.HashSet; +import java.util.Set; + /** * @author shine * @version 10.0 @@ -13,6 +16,19 @@ public class ChartEditContext { private static ChartEditMode current = ChartEditMode.NORMAL; + private static final Set features = new HashSet<>(); + + /** + * 功能点枚举 + */ + public enum DuchampFeature { + SUPPORT_REPORT_DATA + } + + /** + * 切换图表编辑模式 + * @param mode 图表编辑模式 + */ public static void switchTo(ChartEditMode mode) { current = mode; } @@ -33,4 +49,28 @@ public class ChartEditContext { public static boolean supportTheme() { return !DesignModeContext.isDuchampMode(); } + + /** + * 注册功能点 + */ + public static void addDuchampFeature(DuchampFeature feature) { + features.add(feature); + } + + /** + * 移除功能点 + */ + public static void removeDuchampFeature(DuchampFeature feature) { + features.remove(feature); + } + + /** + * 当前模式下是否支持单元格数据来源 + */ + public static boolean supportReportData() { + if (normalMode()) { + return true; + } + return features.contains(DuchampFeature.SUPPORT_REPORT_DATA); + } } diff --git a/designer-chart/src/main/java/com/fr/design/chart/report/GisMapReportDataContentPane.java b/designer-chart/src/main/java/com/fr/design/chart/report/GisMapReportDataContentPane.java index 6b646ce83..583b0a54f 100644 --- a/designer-chart/src/main/java/com/fr/design/chart/report/GisMapReportDataContentPane.java +++ b/designer-chart/src/main/java/com/fr/design/chart/report/GisMapReportDataContentPane.java @@ -10,6 +10,7 @@ import com.fr.design.constants.LayoutConstants; import com.fr.design.constants.UIConstants; import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserverListener; +import com.fr.design.formula.DefaultTinyFormulaPane; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.frpane.UICorrelationPane; import com.fr.design.gui.ibutton.UIButtonGroup; @@ -18,14 +19,18 @@ import com.fr.design.gui.itable.UITableEditor; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; - import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; -import javax.swing.*; +import javax.swing.JComponent; +import javax.swing.JPanel; +import javax.swing.JTable; +import javax.swing.SwingConstants; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.Component; +import java.awt.Dimension; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; import java.util.ArrayList; @@ -53,8 +58,8 @@ public class GisMapReportDataContentPane extends FurtherBasicBeanPane(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Address"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_LatLng")}); lnglatOrder = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Longitude_First"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Latitude_First")}); - addressPane = new TinyFormulaPane(); - addressNamePane = new TinyFormulaPane(); + addressPane = new DefaultTinyFormulaPane(); + addressNamePane = new DefaultTinyFormulaPane(); double p = TableLayout.PREFERRED; double f = TableLayout.FILL; double[] columnSize = new double[]{p, f}; @@ -259,7 +264,7 @@ public class GisMapReportDataContentPane extends FurtherBasicBeanPane { @Override protected TinyFormulaPane createJComponent() { - return new TinyFormulaPane(); + return new DefaultTinyFormulaPane(); } @Override diff --git a/designer-chart/src/main/java/com/fr/design/chartx/component/correlation/TinyFormulaPaneEditorComponent.java b/designer-chart/src/main/java/com/fr/design/chartx/component/correlation/TinyFormulaPaneEditorComponent.java index 7470ef62d..5f18eb254 100644 --- a/designer-chart/src/main/java/com/fr/design/chartx/component/correlation/TinyFormulaPaneEditorComponent.java +++ b/designer-chart/src/main/java/com/fr/design/chartx/component/correlation/TinyFormulaPaneEditorComponent.java @@ -1,9 +1,9 @@ package com.fr.design.chartx.component.correlation; -import com.fr.base.BaseFormula; import com.fr.base.Utils; import com.fr.design.constants.UIConstants; import com.fr.design.event.UIObserverListener; +import com.fr.design.formula.DefaultTinyFormulaPane; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.frpane.UICorrelationPane; @@ -20,17 +20,12 @@ public class TinyFormulaPaneEditorComponent extends AbstractEditorComponent { result = Utils.objectToString(content); } } - TinyFormulaPane title = new TinyFormulaPane(); + TinyFormulaPane title = new DefaultTinyFormulaPane(); title.populateBean(result); switchTitles.add(title); switchTitlePane.add(title, collection.getChartName(chartIndex)); 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 86f7e4da8..8ea385864 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 @@ -2,6 +2,7 @@ package com.fr.design.mainframe.chart.gui.data; import com.fr.chart.chartattr.ChartCollection; import com.fr.design.beans.FurtherBasicBeanPane; +import com.fr.design.chartx.data.DataLayoutHelper; import com.fr.design.constants.LayoutConstants; import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.UIComboBoxPane; @@ -61,14 +62,20 @@ public class NormalChartDataPane extends DataContentsPane { JPanel contentPane = new JPanel(new BorderLayout()); dataPane = new UIComboBoxPane() { protected void initLayout() { - this.setLayout(new BorderLayout(LayoutConstants.HGAP_LARGE,6)); - JPanel northPane = new JPanel(new BorderLayout(LayoutConstants.HGAP_LARGE,0)); - northPane.add(jcb, BorderLayout.CENTER); - UILabel label1 = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Data_Source")); - 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)); - if (ChartEditContext.normalMode()) { + this.setLayout(new BorderLayout(ChartEditContext.normalMode() ? LayoutConstants.HGAP_LARGE : 0,6)); + if (ChartEditContext.supportReportData()) { + JPanel northPane; + if (ChartEditContext.normalMode()) { + northPane = new JPanel(new BorderLayout(LayoutConstants.HGAP_LARGE, 0)); + northPane.add(jcb, BorderLayout.CENTER); + UILabel label1 = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Data_Source")); + 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)); + } else { + northPane = DataLayoutHelper.createDataLayoutPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Data_Source"), jcb); + northPane.setBorder(BorderFactory.createEmptyBorder(0, DataLayoutHelper.LEFT_GAP, 0, DataLayoutHelper.RIGHT_GAP)); + } this.add(northPane, BorderLayout.NORTH); } this.add(cardPane, BorderLayout.CENTER); diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/report/AbstractReportDataContentPane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/report/AbstractReportDataContentPane.java index 7a6a1f38d..1073f0e41 100644 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/report/AbstractReportDataContentPane.java +++ b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/report/AbstractReportDataContentPane.java @@ -8,6 +8,7 @@ import com.fr.chart.chartdata.SeriesDefinition; import com.fr.design.beans.BasicBeanPane; import com.fr.design.constants.UIConstants; import com.fr.design.event.UIObserverListener; +import com.fr.design.formula.DefaultTinyFormulaPane; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.frpane.UICorrelationPane; import com.fr.design.gui.itable.UITable; @@ -15,10 +16,15 @@ import com.fr.design.gui.itable.UITableEditor; import com.fr.design.layout.TableLayout; import com.fr.stable.StableUtils; -import javax.swing.*; +import javax.swing.BorderFactory; +import javax.swing.JPanel; +import javax.swing.JSeparator; +import javax.swing.JTable; import javax.swing.border.Border; import javax.swing.event.ChangeEvent; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.Component; +import java.awt.Dimension; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -171,17 +177,12 @@ public abstract class AbstractReportDataContentPane extends BasicBeanPane { } private JPanel createDefaultAttrPane(){ - titleContent = new TinyFormulaPane(); + titleContent = new DefaultTinyFormulaPane(); textAttrPane = new ChartTextAttrPane(); Icon[] alignmentIconArray = {BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_left_normal.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_center_normal.png"), diff --git a/designer-chart/src/main/java/com/fr/extended/chart/AbstractExtendedChartReportDataPane.java b/designer-chart/src/main/java/com/fr/extended/chart/AbstractExtendedChartReportDataPane.java index b8758b9f5..e11fec903 100644 --- a/designer-chart/src/main/java/com/fr/extended/chart/AbstractExtendedChartReportDataPane.java +++ b/designer-chart/src/main/java/com/fr/extended/chart/AbstractExtendedChartReportDataPane.java @@ -2,6 +2,7 @@ package com.fr.extended.chart; import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.ChartCollection; +import com.fr.design.formula.DefaultTinyFormulaPane; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.TableLayout; @@ -42,8 +43,8 @@ public abstract class AbstractExtendedChartReportDataPane { private JPanel createScaleAxisPane() { zoomResize = new UIButtonGroup(new String[]{Toolkit.i18nText("Fine-Design_Chart_Change"), Toolkit.i18nText("Fine-Design_Chart_Non_Adjustment")}); - from = new TinyFormulaPane(); - to = new TinyFormulaPane(); + from = new DefaultTinyFormulaPane(); + to = new DefaultTinyFormulaPane(); Component[][] components = new Component[][]{ new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_Widget_Boundary")), zoomResize}, new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_From")), from}, @@ -497,7 +498,7 @@ public class VanChartInteractivePane extends AbstractVanChartScrollPane { protected JPanel createAnimationPane() { isChartAnimation = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Open"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Close")}); - chartAnimationLabel = new UILabel(Toolkit.i18nText("Fine-Design_Chart_Animation_Effects")); + chartAnimationLabel = FRWidgetFactory.createLineWrapLabel(Toolkit.i18nText("Fine-Design_Chart_Animation_Effects")); double p = TableLayout.PREFERRED; double f = TableLayout.FILL; double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH; diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/other/zoom/ZoomPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/other/zoom/ZoomPane.java index dfbf2d640..3fa7f5ff4 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/other/zoom/ZoomPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/other/zoom/ZoomPane.java @@ -4,6 +4,7 @@ import com.fr.chartx.attr.ZoomAttribute; import com.fr.chartx.attr.ZoomInitialDisplayType; import com.fr.chartx.attr.ZoomModeType; import com.fr.design.beans.BasicBeanPane; +import com.fr.design.formula.DefaultTinyFormulaPane; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.icombobox.UIComboBox; @@ -140,8 +141,8 @@ public class ZoomPane extends BasicBeanPane { final JPanel topPane = TableLayout4VanChartHelper.createGapTableLayoutPane(components1, new double[]{p}, columnSize); - leftFormulaPane = new TinyFormulaPane(); - rightFormulaPane = new TinyFormulaPane(); + leftFormulaPane = new DefaultTinyFormulaPane(); + rightFormulaPane = new DefaultTinyFormulaPane(); Component[][] components2 = new Component[][]{ new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_Left_Boundary")), leftFormulaPane}, new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_Right_Boundary")), rightFormulaPane} diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/VanChartTitlePane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/VanChartTitlePane.java index 87d6fbfda..3469e2624 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/VanChartTitlePane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/VanChartTitlePane.java @@ -5,6 +5,7 @@ import com.fr.base.BaseUtils; import com.fr.base.Utils; import com.fr.chart.base.TextAttr; import com.fr.chartx.config.info.constant.ConfigType; +import com.fr.design.formula.DefaultTinyFormulaPane; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.frpane.UIBubbleFloatPane; import com.fr.design.gui.frpane.UINumberDragPane; @@ -152,7 +153,7 @@ public class VanChartTitlePane extends AbstractVanChartScrollPane { } private JPanel createTitleContentPane(double[] row, double[] col) { - titleContent = new TinyFormulaPane(); + titleContent = new DefaultTinyFormulaPane(); useHtml = new UIToggleButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Html")); UIComponentUtils.setLineWrap(useHtml); Component[][] components = new Component[][]{ diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartBaseAxisPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartBaseAxisPane.java index 1197d16b7..fed96db68 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartBaseAxisPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartBaseAxisPane.java @@ -8,6 +8,7 @@ import com.fr.chart.base.TextAttr; import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Title; import com.fr.design.beans.FurtherBasicBeanPane; +import com.fr.design.formula.DefaultTinyFormulaPane; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.frpane.UINumberDragPane; import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; @@ -157,7 +158,7 @@ public class VanChartBaseAxisPane extends FurtherBasicBeanPane { showTitle = new UIButtonGroup(new String[]{Toolkit.i18nText("Fine-Design_Chart_Use_Show"), Toolkit.i18nText("Fine-Design_Chart_Hidden")}); titleAlignPane = isXAxis ? getXAxisTitleAlignPane() : getYAxisTitleAlignPane(); titleAlignPane.setSelectedItem(Constants.CENTER); - titleContent = new TinyFormulaPane(); + titleContent = new DefaultTinyFormulaPane(); titleUseHtml = new UIToggleButton(Toolkit.i18nText("Fine-Design_Chart_Html")); UIComponentUtils.setLineWrap(titleUseHtml); titleTextAttrPane = getChartTextAttrPane(); diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/background/VanChartAlertValuePane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/background/VanChartAlertValuePane.java index 49e7f3fa9..e4ceae7fa 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/background/VanChartAlertValuePane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/background/VanChartAlertValuePane.java @@ -5,14 +5,15 @@ import com.fr.base.Utils; import com.fr.chart.base.AttrColor; import com.fr.chart.base.AttrLineStyle; import com.fr.design.beans.BasicBeanPane; +import com.fr.design.formula.DefaultTinyFormulaPane; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; import com.fr.design.gui.ispinner.chart.UISpinnerWithPx; -import com.fr.design.i18n.Toolkit; import com.fr.design.gui.style.FRFontPane; +import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; @@ -86,7 +87,7 @@ public class VanChartAlertValuePane extends BasicBeanPane { } private void initComponents() { - alertValue = new TinyFormulaPane(); + alertValue = new DefaultTinyFormulaPane(); //設置大小,防止文本過長導致界面“變形” alertValue.setPreferredSize(new Dimension(VALUE_WD, HT)); @@ -95,7 +96,7 @@ public class VanChartAlertValuePane extends BasicBeanPane { lineWidthSpinner = new UISpinnerWithPx(LINE_WIDTH_MIN_VALUE, Integer.MAX_VALUE, LINE_WIDTH_DIERTA_VALUE, LINE_WIDTH_DEFAULT_VALUE); alertLineColor = new ColorSelectBox(PREFERRED_WIDTH); alertTextPosition = new UIButtonGroup(new String[]{Toolkit.i18nText("Fine-Design_Chart_Axis_Top"), Toolkit.i18nText("Fine-Design_Chart_Axis_Bottom")}); - alertText = new TinyFormulaPane(); + alertText = new DefaultTinyFormulaPane(); //設置大小,防止文本過長導致界面“變形” alertText.setPreferredSize(new Dimension(TEXT_WD, HT)); diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/background/VanChartCustomIntervalBackgroundPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/background/VanChartCustomIntervalBackgroundPane.java index ef6dc0e11..42fcdad8e 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/background/VanChartCustomIntervalBackgroundPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/background/VanChartCustomIntervalBackgroundPane.java @@ -3,6 +3,7 @@ package com.fr.van.chart.designer.style.background; import com.fr.base.BaseFormula; import com.fr.base.Utils; import com.fr.design.beans.BasicBeanPane; +import com.fr.design.formula.DefaultTinyFormulaPane; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.frpane.UINumberDragPane; import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; @@ -13,7 +14,6 @@ import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.style.color.ColorSelectBox; import com.fr.design.utils.gui.GUICoreUtils; - import com.fr.plugin.chart.VanChartAttrHelper; import com.fr.plugin.chart.attr.axis.VanChartCustomIntervalBackground; import com.fr.van.chart.designer.TableLayout4VanChartHelper; @@ -48,8 +48,8 @@ public class VanChartCustomIntervalBackgroundPane extends BasicBeanPane { refreshZoomLevel(); checkLayerCardPane(); }); - gisGaoDeLayer.addItemListener(event -> refreshZoomLevel()); - - initCustomGISLayerPane(); + initLayer(); initLayerCardPane(); layerPaneCheckPane = new JPanel(new CardLayout()) { @@ -104,15 +113,15 @@ public class GisLayerPane extends JPanel implements UIObserver { return new Dimension(0, 0); } if (isStandardGis()) { - return gisGaoDeLayer.getPreferredSize(); + return standardLayers.getPreferredSize(); } else { - return gisLayer.getPreferredSize(); + return customLayers.getPreferredSize(); } } }; layerPaneCheckPane.add(new JPanel(), "auto"); - layerPaneCheckPane.add(gisGaoDeLayer, "standard"); - layerPaneCheckPane.add(gisLayer, "custom"); + layerPaneCheckPane.add(standardLayers, "standard"); + layerPaneCheckPane.add(customLayers, "custom"); double p = TableLayout.PREFERRED; @@ -142,7 +151,7 @@ public class GisLayerPane extends JPanel implements UIObserver { if (isStandardGis() || isAuto()) { return new Dimension(0, 0); } - String itemName = Utils.objectToString(gisLayer.getSelectedItem()); + String itemName = Utils.objectToString(customLayers.getSelectedItem()); if (MapLayerConfigManager.isCustomLayer(itemName)) { return tileLayerPane.getPreferredSize(); } else if (MapLayerConfigManager.isCustomWmsLayer(itemName)) { @@ -163,10 +172,12 @@ public class GisLayerPane extends JPanel implements UIObserver { } } - private void initCustomGISLayerPane() { - gisLayer = new UIComboBox(layers); + private void initLayer() { + standardLayers = new UIComboBox(MapLayerConfigManager.getStandardLayerItems()); + customLayers = new UIComboBox(layers); - gisLayer.addItemListener(e -> + standardLayers.addItemListener(event -> refreshZoomLevel()); + customLayers.addItemListener(e -> { if (e.getStateChange() == ItemEvent.SELECTED) { checkCustomLayerCardPane(); @@ -175,7 +186,7 @@ public class GisLayerPane extends JPanel implements UIObserver { } ); - gisLayer.addPopupMenuListener(new PopupMenuListener() { + customLayers.addPopupMenuListener(new PopupMenuListener() { public void popupMenuCanceled(PopupMenuEvent e) { } @@ -184,12 +195,12 @@ public class GisLayerPane extends JPanel implements UIObserver { public void popupMenuWillBecomeVisible(PopupMenuEvent e) { - String selected = Utils.objectToString(gisLayer.getSelectedItem()); + String selected = Utils.objectToString(customLayers.getSelectedItem()); ZoomLevel zoomSelected = (ZoomLevel) zoomLevel.getSelectedItem(); - gisLayer.setModel(new DefaultComboBoxModel(MapLayerConfigManager.getLayerItems())); + customLayers.setModel(new DefaultComboBoxModel(MapLayerConfigManager.getCustomLayerItems())); - gisLayer.setSelectedItem(selected); + customLayers.setSelectedItem(selected); zoomLevel.setSelectedItem(zoomSelected); } }); @@ -201,15 +212,15 @@ public class GisLayerPane extends JPanel implements UIObserver { if (isAuto()) { levels = MapStatusPane.ZOOM_LEVELS; } else if (isStandardGis()) { - if (gisGaoDeLayer.getSelectedIndex() == gisGaoDeLayer.getItemCount() - 1) { + if (standardLayers.getSelectedIndex() == standardLayers.getItemCount() - 1) { levels = MapStatusPane.ZOOM_LEVELS; } else { levels = MapStatusPane.GAODE_ZOOM_LEVELS; } } else { - if (ComparatorUtils.equals(gisLayer.getSelectedItem(), Toolkit.i18nText("Fine-Design_Chart_Layer_Blue"))) { + if (ComparatorUtils.equals(customLayers.getSelectedItem(), Toolkit.i18nText("Fine-Design_Chart_Layer_Blue"))) { levels = MapStatusPane.BLUE_ZOOM_LEVELS; - } else if (ComparatorUtils.equals(gisLayer.getSelectedItem(), Toolkit.i18nText("Fine-Design_Chart_Layer_GaoDe"))) { + } else if (ComparatorUtils.equals(customLayers.getSelectedItem(), Toolkit.i18nText("Fine-Design_Chart_Layer_GaoDe"))) { levels = MapStatusPane.GAODE_ZOOM_LEVELS; } else { levels = MapStatusPane.ZOOM_LEVELS; @@ -233,7 +244,7 @@ public class GisLayerPane extends JPanel implements UIObserver { private void checkCustomLayerCardPane() { CardLayout cardLayout = (CardLayout) layerCardPane.getLayout(); - cardLayout.show(layerCardPane, Utils.objectToString(gisLayer.getSelectedItem())); + cardLayout.show(layerCardPane, Utils.objectToString(customLayers.getSelectedItem())); } public void resetGisLayer(VanChartMapPlot mapPlot) { @@ -256,8 +267,12 @@ public class GisLayerPane extends JPanel implements UIObserver { switch (layer.getGisLayerType()) { case AUTO: gisButton.setSelectedIndex(0); + layer.setGisLayerType(GISLayerType.AUTO); + layer.setLayerName(GISLayerType.getLocString(GISLayerType.AUTO)); + //dealWithTemplateTheme(layer); break; case GAO_DE_API: + populateStandardGis(layer); case LAYER_NULL: populateStandardGis(layer); break; @@ -272,16 +287,22 @@ public class GisLayerPane extends JPanel implements UIObserver { private void populateStandardGis(GisLayer layer) { gisButton.setSelectedIndex(1); + String layerName = layer.getLayerName(); if (layer.getGisLayerType() == GISLayerType.LAYER_NULL) { - gisGaoDeLayer.setSelectedIndex(gisGaoDeLayer.getItemCount() - 1); + standardLayers.setSelectedIndex(standardLayers.getItemCount() - 1); } else { - gisGaoDeLayer.setSelectedItem(layer.getGaoDeGisType().getTypeName()); + if(Locale.CHINA.equals(GeneralContext.getLocale())) { + standardLayers.setSelectedItem(layerName); + layer.setGaoDeGisType(GaoDeGisType.parseByLocaleName(layerName)); + } else { + standardLayers.setSelectedItem(layerName); + } } } private void populateCustomGis(GisLayer layer) { gisButton.setSelectedIndex(2); - gisLayer.setSelectedItem(layer.getShowItemName()); + customLayers.setSelectedItem(layer.getShowItemName()); switch (layer.getGisLayerType()) { case CUSTOM_WMS_LAYER: @@ -297,6 +318,7 @@ public class GisLayerPane extends JPanel implements UIObserver { if (isAuto()) { layer.setGisLayerType(GISLayerType.AUTO); layer.setLayerName(GISLayerType.getLocString(GISLayerType.AUTO)); + adaptEditingTemplateTheme(layer); } else if (isStandardGis()) { updateStandardGis(layer); } else { @@ -305,9 +327,9 @@ public class GisLayerPane extends JPanel implements UIObserver { } private void updateStandardGis(GisLayer layer) { - String layerName = Utils.objectToString(gisGaoDeLayer.getSelectedItem()); + String layerName = Utils.objectToString(standardLayers.getSelectedItem()); layer.setLayerName(layerName); - if (gisGaoDeLayer.getSelectedIndex() == gisGaoDeLayer.getItemCount() - 1) { + if (standardLayers.getSelectedIndex() == standardLayers.getItemCount() - 1) { layer.setGisLayerType(MapLayerConfigManager.getGisLayerType(layerName)); } else { layer.setGisLayerType(GISLayerType.GAO_DE_API); @@ -316,7 +338,7 @@ public class GisLayerPane extends JPanel implements UIObserver { } private void updateCustomGis(GisLayer layer) { - String layerName = Utils.objectToString(gisLayer.getSelectedItem()); + String layerName = Utils.objectToString(customLayers.getSelectedItem()); layer.setLayerName(layerName); layer.setGisLayerType(MapLayerConfigManager.getGisLayerType(layerName)); @@ -329,4 +351,18 @@ public class GisLayerPane extends JPanel implements UIObserver { break; } } + + /** + * 切换图层时根据主题切换图层名称 + * + * @param layer 图层 + */ + private void adaptEditingTemplateTheme(GisLayer layer) { + JTemplate currentEditingTemplate = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); + if(JTemplate.isValid(currentEditingTemplate)) { + boolean dark = currentEditingTemplate.getTemplateTheme().isDark(); + String name = dark ? Toolkit.i18nText("Fine-Design_Chart_Layer_Black") : Toolkit.i18nText("Fine-Design_Chart_Layer_MapBox"); + layer.setLayerName(name); + } + } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/multilayer/data/MultiPiePlotReportDataContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/multilayer/data/MultiPiePlotReportDataContentPane.java index 217806a49..cace219db 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/multilayer/data/MultiPiePlotReportDataContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/multilayer/data/MultiPiePlotReportDataContentPane.java @@ -4,6 +4,7 @@ import com.fr.base.chart.chartdata.TopDefinitionProvider; import com.fr.chart.chartattr.ChartCollection; import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserverListener; +import com.fr.design.formula.DefaultTinyFormulaPane; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; @@ -12,7 +13,6 @@ import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.data.report.AbstractReportDataContentPane; - import com.fr.plugin.chart.multilayer.data.MultiPieReportDataDefinition; import com.fr.stable.AssistUtils; @@ -135,7 +135,7 @@ public class MultiPiePlotReportDataContentPane extends AbstractReportDataContent components_center[i] = new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Level") + String.valueOf(i+1)), levelNameList.get(i)}; } - value = new TinyFormulaPane(); + value = new DefaultTinyFormulaPane(); components_center[levelNum] = new Component[]{new JSeparator(), null}; components_center[levelNum+1] = new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Use_Value")), value}; @@ -158,7 +158,7 @@ public class MultiPiePlotReportDataContentPane extends AbstractReportDataContent private void initLevelNameList() { levelNameList = new ArrayList(); for (int i = 0; i < levelNum; i++){ - levelNameList.add(new TinyFormulaPane()); + levelNameList.add(new DefaultTinyFormulaPane()); } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/data/StructurePlotReportDataContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/data/StructurePlotReportDataContentPane.java index 1e26e2f55..11f94ef87 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/data/StructurePlotReportDataContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/data/StructurePlotReportDataContentPane.java @@ -2,6 +2,7 @@ package com.fr.van.chart.structure.desinger.data; import com.fr.base.chart.chartdata.TopDefinitionProvider; import com.fr.chart.chartattr.ChartCollection; +import com.fr.design.formula.DefaultTinyFormulaPane; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; @@ -33,11 +34,11 @@ public class StructurePlotReportDataContentPane extends AbstractReportDataConten double[] columnSize = {p, f}; double[] rowSize = {p, p, p, p, p}; - nodeName = new TinyFormulaPane(); - nodeID = new TinyFormulaPane(); - parentID = new TinyFormulaPane(); + nodeName = new DefaultTinyFormulaPane(); + nodeID = new DefaultTinyFormulaPane(); + parentID = new DefaultTinyFormulaPane(); seriesName = new UITextField(); - nodeValue = new TinyFormulaPane(); + nodeValue = new DefaultTinyFormulaPane(); Component[][] components = new Component[][]{ new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_Node_Name")), nodeName}, diff --git a/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/data/WordCloudPlotReportDataContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/data/WordCloudPlotReportDataContentPane.java index d95a9ddc1..d92400488 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/data/WordCloudPlotReportDataContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/data/WordCloudPlotReportDataContentPane.java @@ -2,13 +2,13 @@ package com.fr.van.chart.wordcloud.designer.data; import com.fr.base.chart.chartdata.TopDefinitionProvider; import com.fr.chart.chartattr.ChartCollection; +import com.fr.design.formula.DefaultTinyFormulaPane; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.chart.gui.data.report.AbstractReportDataContentPane; - import com.fr.plugin.chart.wordcloud.data.WordCloudReportDefinition; import javax.swing.BorderFactory; @@ -32,8 +32,8 @@ public class WordCloudPlotReportDataContentPane extends AbstractReportDataConten double[] rowSize = { p, p, p}; name = new UITextField(); - wordName = new TinyFormulaPane(); - wordValue = new TinyFormulaPane(); + wordName = new DefaultTinyFormulaPane(); + wordValue = new DefaultTinyFormulaPane(); Component[][] components = new Component[][]{ new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_MultiPie_Series_Name")), name}, diff --git a/designer-realize/src/main/java/com/fr/design/report/ExportUniversalPane.java b/designer-realize/src/main/java/com/fr/design/report/ExportUniversalPane.java index 4da3b89e8..9c07bd157 100644 --- a/designer-realize/src/main/java/com/fr/design/report/ExportUniversalPane.java +++ b/designer-realize/src/main/java/com/fr/design/report/ExportUniversalPane.java @@ -1,25 +1,17 @@ package com.fr.design.report; import com.fr.base.CustomConfig; -import com.fr.design.constants.UIConstants; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.icheckbox.UICheckBox; -import com.fr.design.gui.ilable.ActionLabel; -import com.fr.design.gui.ilable.UILabel; import com.fr.design.i18n.LocaleLinkProvider; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.utils.BrowseUtils; import com.fr.io.attr.ReportExportAttr; import com.fr.transaction.Configurations; import com.fr.transaction.WorkerFacade; import javax.swing.BorderFactory; import javax.swing.JPanel; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; /** * 通用 @@ -42,7 +34,6 @@ public class ExportUniversalPane extends BasicPane { private static final String HELP_URL = LocaleLinkProvider.getInstance().getLink(PROPS_LINK_KEY, PROPS_LINK_KEY_DEFAULT); - private UICheckBox specialCharacterExport; // 密码支持公式 private UICheckBox passwordSupportFormula; @@ -51,25 +42,6 @@ public class ExportUniversalPane extends BasicPane { this.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); JPanel outerNorthPane = FRGUIPaneFactory.createTitledBorderPane(Toolkit.i18nText("Fine-Design_Report_Universal_Export_Config")); JPanel northPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_M_Pane(); - JPanel specialCharacterExportPane = FRGUIPaneFactory.createNormalFlowInnerContainer_M_Pane(); - specialCharacterExport = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_Universal_Export_Special_Character")); - specialCharacterExport.setSelected(true); - specialCharacterExportPane.add(specialCharacterExport); - northPane.add(specialCharacterExportPane); - JPanel labelPane = new JPanel(new BorderLayout()); - labelPane.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 0)); - UILabel centerLabel = new UILabel(Toolkit.i18nText("Fine-Design_Report_Universal_Export_Special_Character_Tip")); - centerLabel.setForeground(Color.GRAY); - ActionLabel rightLabel = new ActionLabel(Toolkit.i18nText("Fine-Design_Report_Universal_Export_More_Alternative_Fonts"), UIConstants.FLESH_BLUE); - rightLabel.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - BrowseUtils.browser(HELP_URL); - } - }); - labelPane.add(centerLabel, BorderLayout.CENTER); - labelPane.add(rightLabel, BorderLayout.EAST); - northPane.add(labelPane); JPanel passwordSupportPane = FRGUIPaneFactory.createNormalFlowInnerContainer_M_Pane(); passwordSupportFormula = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_Universal_Export_Password_Support_Formula")); passwordSupportFormula.setSelected(false); @@ -90,7 +62,6 @@ public class ExportUniversalPane extends BasicPane { * @param reportExportAttr 报表导出属性 */ public void populate(ReportExportAttr reportExportAttr) { - this.specialCharacterExport.setSelected(CustomConfig.getInstance().isOptimizedSpecialCharacterExport()); this.passwordSupportFormula.setSelected(reportExportAttr.isPwdSupportFormula()); } @@ -103,7 +74,6 @@ public class ExportUniversalPane extends BasicPane { Configurations.modify(new WorkerFacade(CustomConfig.class) { @Override public void run() { - CustomConfig.getInstance().setOptimizedSpecialCharacterExport(specialCharacterExport.isSelected()); reportExportAttr.setPwdSupportFormula(passwordSupportFormula.isSelected()); } });