From 9391e36c98d529b61c06c46adc444f7bf930075c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B2=B3?= <445798420@qq.com> Date: Fri, 18 Sep 2020 10:10:35 +0800 Subject: [PATCH 01/17] =?UTF-8?q?CHART-15840=20=E5=9B=BE=E8=A1=A8=E7=AC=AC?= =?UTF-8?q?=E4=B8=80=E6=AC=A1=E5=8A=A0=E8=BD=BD=E6=85=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/fr/design/chart/ChartDesignerActivator.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/designer-chart/src/main/java/com/fr/design/chart/ChartDesignerActivator.java b/designer-chart/src/main/java/com/fr/design/chart/ChartDesignerActivator.java index 0cd81f783..8a5e0e7d8 100644 --- a/designer-chart/src/main/java/com/fr/design/chart/ChartDesignerActivator.java +++ b/designer-chart/src/main/java/com/fr/design/chart/ChartDesignerActivator.java @@ -15,6 +15,7 @@ import com.fr.locale.LocaleScope; import com.fr.module.Activator; import com.fr.module.extension.Prepare; import com.fr.plugin.chart.vanchart.export.ImagePainter; +import com.fr.plugin.chart.vanchart.export.PainterDispatcher; import com.fr.stable.bridge.StableFactory; import com.fr.stable.plugin.ExtraChartDesignClassManagerProvider; import com.fr.van.chart.DownloadOnlineSourcesHelper; @@ -46,6 +47,7 @@ public class ChartDesignerActivator extends Activator implements Prepare { ImagePainter.registerDownloadSourcesEvent(new DownloadOnlineSourcesHelper()); ImagePainter.registerDefaultCallbackEvent(HistoryTemplateListCache.getInstance()); + PainterDispatcher.getInstance().distributeDesignPainter(); ChartTypeInterfaceManager.addPluginChangedListener(); } From d1cce51256d5339b30b9a3458048ee41f7abb682 Mon Sep 17 00:00:00 2001 From: "Qinghui.Liu" Date: Fri, 18 Sep 2020 16:22:37 +0800 Subject: [PATCH 02/17] =?UTF-8?q?CHART-15510=20=E8=B0=83=E6=95=B4=E5=AF=8C?= =?UTF-8?q?=E6=96=87=E6=9C=AC=E6=A0=87=E7=AD=BE=E5=92=8C=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=82=B9=E6=8F=90=E7=A4=BA=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../box/VanChartBoxTooltipContentPane.java | 2 +- .../VanChartRefreshTooltipContentPane.java | 21 + .../component/VanChartRichEditorPane.java | 20 - .../component/VanChartTooltipContentPane.java | 406 ++++++++----- ...CategoryNameFormatPaneWithoutCheckBox.java | 17 + ...angedPercentFormatPaneWithoutCheckBox.java | 21 + ...ChangedValueFormatPaneWithoutCheckBox.java | 17 + .../MapAreaNameFormatPaneWithoutCheckBox.java | 17 + .../PercentFormatPaneWithoutCheckBox.java | 21 + .../SeriesNameFormatPaneWithoutCheckBox.java | 17 + .../ValueFormatPaneWithoutCheckBox.java | 17 + .../VanChartFormatPaneWithCheckBox.java | 57 +- .../VanChartFormatPaneWithoutCheckBox.java | 16 + .../format/XFormatPaneWithoutCheckBox.java | 16 + .../format/YFormatPaneWithoutCheckBox.java | 16 + ...efreshTooltipContentPaneWithOutSeries.java | 20 + .../TooltipContentPaneWithOutSeries.java | 8 + .../label/VanChartGaugeLabelDetailPane.java | 24 +- .../label/VanChartPlotLabelDetailPane.java | 50 +- .../VanChartPlotRefreshTooltipPane.java | 1 - .../tooltip/VanChartPlotTooltipPane.java | 49 -- ...unnelPercentFormatPaneWithoutCheckBox.java | 18 + .../style/VanChartFunnelLabelContentPane.java | 19 + ...nChartFunnelRefreshTooltipContentPane.java | 20 + .../VanChartFunnelTooltipContentPane.java | 19 + .../label/VanChartMapLabelContentPane.java | 12 + .../VanChartMapRefreshTooltipContentPane.java | 22 + .../VanChartMapTooltipContentPane.java | 12 + ...rtAndEndNameFormatPaneWithoutCheckBox.java | 17 + .../VanChartLineMapTooltipContentPane.java | 12 + ...PieLevelNameFormatPaneWithoutCheckBox.java | 18 + ...ieSeriesNameFormatPaneWithoutCheckBox.java | 18 + .../VanChartMultiPieLabelContentPane.java | 9 + .../VanChartMultiPieTooltipContentPane.java | 9 + ...ChartMutiPieRefreshTooltipContentPane.java | 21 + ...ChartScatterRefreshTooltipContentPane.java | 26 +- .../VanChartScatterTooltipContentPane.java | 42 +- ...artStructureRefreshTooltipContentPane.java | 20 + .../VanChartStructureTooltipContentPane.java | 33 +- ...hartWordCloudRefreshTootipContentPane.java | 28 +- .../VanChartWordCloudTooltipContentPane.java | 30 +- .../com/fr/design/editor/rich_editor.html | 103 ++++ .../design/editor/script/editor.constant.js | 6 + .../com/fr/design/editor/script/editor.js | 241 ++++++++ .../fr/design/editor/script/editor.model.js | 53 ++ .../fr/design/editor/script/editor.service.js | 562 ++++++++++++++++++ .../script/insertcombo/combo.insert_param.js | 114 ++++ .../insertcombo/combo.insert_param.model.js | 40 ++ .../editor/script/insertcombo/item/item.js | 38 ++ .../script/toolbar/disabled_bar_wrapper.js | 22 + .../design/editor/script/toolbar/toolbar.js | 124 ++++ .../editor/script/toolbar/toolbar.model.js | 12 + 52 files changed, 2261 insertions(+), 292 deletions(-) create mode 100644 designer-chart/src/main/java/com/fr/van/chart/designer/component/format/CategoryNameFormatPaneWithoutCheckBox.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/designer/component/format/ChangedPercentFormatPaneWithoutCheckBox.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/designer/component/format/ChangedValueFormatPaneWithoutCheckBox.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/designer/component/format/MapAreaNameFormatPaneWithoutCheckBox.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/designer/component/format/PercentFormatPaneWithoutCheckBox.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/designer/component/format/SeriesNameFormatPaneWithoutCheckBox.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/designer/component/format/ValueFormatPaneWithoutCheckBox.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/designer/component/format/VanChartFormatPaneWithoutCheckBox.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/designer/component/format/XFormatPaneWithoutCheckBox.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/designer/component/format/YFormatPaneWithoutCheckBox.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/funnel/designer/style/FunnelPercentFormatPaneWithoutCheckBox.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/map/line/StartAndEndNameFormatPaneWithoutCheckBox.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/multilayer/style/MultiPieLevelNameFormatPaneWithoutCheckBox.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/multilayer/style/MultiPieSeriesNameFormatPaneWithoutCheckBox.java create mode 100644 designer-chart/src/main/resources/com/fr/design/editor/rich_editor.html create mode 100644 designer-chart/src/main/resources/com/fr/design/editor/script/editor.constant.js create mode 100644 designer-chart/src/main/resources/com/fr/design/editor/script/editor.js create mode 100644 designer-chart/src/main/resources/com/fr/design/editor/script/editor.model.js create mode 100644 designer-chart/src/main/resources/com/fr/design/editor/script/editor.service.js create mode 100644 designer-chart/src/main/resources/com/fr/design/editor/script/insertcombo/combo.insert_param.js create mode 100644 designer-chart/src/main/resources/com/fr/design/editor/script/insertcombo/combo.insert_param.model.js create mode 100644 designer-chart/src/main/resources/com/fr/design/editor/script/insertcombo/item/item.js create mode 100644 designer-chart/src/main/resources/com/fr/design/editor/script/toolbar/disabled_bar_wrapper.js create mode 100644 designer-chart/src/main/resources/com/fr/design/editor/script/toolbar/toolbar.js create mode 100644 designer-chart/src/main/resources/com/fr/design/editor/script/toolbar/toolbar.model.js diff --git a/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java index 77b16b499..98dbbbb6e 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java @@ -76,7 +76,7 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { }; } - protected JPanel createCommonPanel() { + protected JPanel createCommonFormatPanel() { JPanel commonPanel = new JPanel(new BorderLayout()); commonPanel.add(createCateAndSeriesPane(), BorderLayout.NORTH); diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRefreshTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRefreshTooltipContentPane.java index 0c3b5a454..18f50e143 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRefreshTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRefreshTooltipContentPane.java @@ -1,7 +1,9 @@ package com.fr.van.chart.designer.component; import com.fr.van.chart.designer.component.format.ChangedPercentFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ChangedPercentFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ChangedValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ChangedValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; @@ -28,6 +30,14 @@ public class VanChartRefreshTooltipContentPane extends VanChartTooltipContentPan changedPercentFormatPane = new ChangedPercentFormatPaneWithCheckBox(parent, showOnPane); } + @Override + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + super.initRichTextFormatPane(parent, showOnPane); + + richTextChangedValueFormatPane = new ChangedValueFormatPaneWithoutCheckBox(parent, showOnPane); + richTextChangedPercentFormatPane = new ChangedPercentFormatPaneWithoutCheckBox(parent, showOnPane); + } + protected Component[][] getPaneComponents(){ return new Component[][]{ new Component[]{categoryNameFormatPane,null}, @@ -39,4 +49,15 @@ public class VanChartRefreshTooltipContentPane extends VanChartTooltipContentPan }; } + protected Component[][] getRichTextComponents() { + return new Component[][]{ + new Component[]{richTextCategoryNameFormatPane, null}, + new Component[]{richTextSeriesNameFormatPane, null}, + new Component[]{richTextValueFormatPane, null}, + new Component[]{richTextChangedValueFormatPane, null}, + new Component[]{richTextPercentFormatPane, null}, + new Component[]{richTextChangedPercentFormatPane, null} + }; + } + } diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRichEditorPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRichEditorPane.java index 4dfd250a1..d1f294e41 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRichEditorPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRichEditorPane.java @@ -8,9 +8,6 @@ import com.teamdev.jxbrowser.chromium.JSValue; import com.teamdev.jxbrowser.chromium.events.ScriptContextAdapter; import com.teamdev.jxbrowser.chromium.events.ScriptContextEvent; -import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.List; import java.util.Map; public class VanChartRichEditorPane { @@ -75,23 +72,6 @@ public class VanChartRichEditorPane { return new RichEditorModel(richText.getContent(), richText.isAuto(), paramsStr.toString()); } - public static List richParamsParser(String content, Map paramsMap) { - if (content == null || paramsMap == null) { - return null; - } - - List result = new ArrayList<>(); - - for (Map.Entry entry : paramsMap.entrySet()) { - String param = entry.getValue(); - if (content.contains(URLEncoder.encode(param))) { - result.add(param); - } - } - - return result; - } - public static class RichEditorModel { private String content; private boolean auto; diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java index a5aafc79a..e8825f246 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java @@ -9,19 +9,26 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.mainframe.chart.gui.style.ChartTextAttrPane; import com.fr.design.ui.ModernUIPane; -import com.fr.general.ComparatorUtils; import com.fr.plugin.chart.base.AttrTooltipContent; import com.fr.plugin.chart.base.AttrTooltipRichText; import com.fr.plugin.chart.base.format.AttrTooltipFormat; import com.fr.van.chart.designer.TableLayout4VanChartHelper; import com.fr.van.chart.designer.component.format.CategoryNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.CategoryNameFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ChangedPercentFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ChangedPercentFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ChangedValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ChangedValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.PercentFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.PercentFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.VanChartFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.VanChartFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JComponent; @@ -36,28 +43,38 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; -import java.util.List; /** - * 内容界面 。数据点提示 + * 数据点提示内容界面,含有通用设置、富文本编辑器、自定义JS界面 */ public class VanChartTooltipContentPane extends BasicBeanPane { private static final long serialVersionUID = 8825929000117843641L; protected UIButtonGroup content; - protected ValueFormatPaneWithCheckBox valueFormatPane; - protected PercentFormatPaneWithCheckBox percentFormatPane; + protected CategoryNameFormatPaneWithCheckBox categoryNameFormatPane; protected SeriesNameFormatPaneWithCheckBox seriesNameFormatPane; + protected ValueFormatPaneWithCheckBox valueFormatPane; + protected PercentFormatPaneWithCheckBox percentFormatPane; //监控刷新时,自动数据点提示使用 protected ChangedValueFormatPaneWithCheckBox changedValueFormatPane; protected ChangedPercentFormatPaneWithCheckBox changedPercentFormatPane; - private JPanel centerPane; + protected CategoryNameFormatPaneWithoutCheckBox richTextCategoryNameFormatPane; + protected SeriesNameFormatPaneWithoutCheckBox richTextSeriesNameFormatPane; + protected ValueFormatPaneWithoutCheckBox richTextValueFormatPane; + protected PercentFormatPaneWithoutCheckBox richTextPercentFormatPane; + protected ChangedValueFormatPaneWithoutCheckBox richTextChangedValueFormatPane; + protected ChangedPercentFormatPaneWithoutCheckBox richTextChangedPercentFormatPane; + + private JPanel centerPanel; private JPanel commonPanel; - private JPanel editorPane; + private JPanel editorPanel; + private JPanel htmlPanel; + private UIButtonGroup styleButton; + private ChartTextAttrPane textAttrPane; private VanChartHtmlLabelPane htmlLabelPane; private VanChartStylePane parent; @@ -75,55 +92,44 @@ public class VanChartTooltipContentPane extends BasicBeanPane(new String[]{ - Toolkit.i18nText("Fine-Design_Chart_Common"), - Toolkit.i18nText("Fine-Design_Chart_Custom") - }); - initFormatPane(parent, showOnPane); + initRichTextFormatPane(parent, showOnPane); - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH; + initDetailPane(); + initCenterPane(); + + JPanel content = new JPanel(new BorderLayout()); + + content.add(createButtonPane(), BorderLayout.NORTH); + content.add(centerPanel, BorderLayout.CENTER); + + initContentListener(); + + return getLabelContentPane(content); + } + private void initDetailPane() { commonPanel = createCommonPanel(); - htmlLabelPane = createHtmlLabelPane(); - htmlLabelPane.setParent(parent); + editorPanel = createRichEditorPanel(); + htmlPanel = createHtmlPane(); + } - centerPane = new JPanel(new CardLayout()){ - @Override + private void initCenterPane() { + centerPanel = new JPanel(new CardLayout()) { public Dimension getPreferredSize() { - if(content.getSelectedIndex() == 0){ + if (content.getSelectedIndex() == 0) { return commonPanel.getPreferredSize(); + } else if (content.getSelectedIndex() == 1) { + return editorPanel.getPreferredSize(); } else { - return new Dimension(commonPanel.getPreferredSize().width,htmlLabelPane.getPreferredSize().height); + return htmlPanel.getPreferredSize(); } } }; - centerPane.add(htmlLabelPane, Toolkit.i18nText("Fine-Design_Chart_Custom")); - centerPane.add(commonPanel, Toolkit.i18nText("Fine-Design_Chart_Common")); - - double[] column = {f, e}; - double[] row = {p,p,p}; - Component[][] components = new Component[][]{ - new Component[]{null,null}, - new Component[]{new UILabel(getLabelContentTitle()),content}, - new Component[]{null,centerPane}, - }; - - JPanel contentPane = TableLayout4VanChartHelper.createGapTableLayoutPane(components, row, column); - - // editorPane = createRichEditorPanel(); - - JPanel panel = new JPanel(); - panel.setLayout(new BorderLayout()); - panel.add(contentPane, BorderLayout.CENTER); - // panel.add(editorPane, BorderLayout.SOUTH); - - initContentListener(); - - return getLabelContentPane(panel); + centerPanel.add(commonPanel, Toolkit.i18nText("Fine-Design_Chart_Common")); + centerPanel.add(editorPanel, Toolkit.i18nText("Fine-Design_Chart_Rich_Text")); + centerPanel.add(htmlPanel, Toolkit.i18nText("Fine-Design_Chart_Custom")); } protected String getLabelContentTitle () { @@ -134,18 +140,88 @@ public class VanChartTooltipContentPane extends BasicBeanPane(new String[]{ + Toolkit.i18nText("Fine-Design_Chart_Common"), + Toolkit.i18nText("Fine-Design_Chart_Rich_Text"), + Toolkit.i18nText("Fine-Design_Chart_Custom") + }); + + Component[][] components = new Component[][]{ + new Component[]{null, null}, + new Component[]{content, null} + }; + + return TableLayout4VanChartHelper.createGapTableLayoutPane(components, row, column); + } + + private JPanel createCommonPanel() { + JPanel common = new JPanel(new BorderLayout()); + + common.add(createCommonFormatPanel(), BorderLayout.CENTER); + common.add(createCommonStylePane(), BorderLayout.SOUTH); + + return common; } - protected JPanel createCommonPanel() { + protected JPanel createCommonFormatPanel() { double p = TableLayout.PREFERRED; double f = TableLayout.FILL; + double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH; - double[] columnSize = {f, p}; - double[] rowSize = getRowSize(p); + JPanel formatContent = TableLayoutHelper.createTableLayoutPane(getPaneComponents(), getRowSize(p), new double[]{f, p}); + + Component[][] components = new Component[][]{ + new Component[]{null, null}, + new Component[]{new UILabel(getLabelContentTitle()), formatContent} + }; - return TableLayoutHelper.createTableLayoutPane(getPaneComponents(), rowSize, columnSize); + return TableLayoutHelper.createTableLayoutPane(components, new double[]{p, p}, new double[]{f, e}); + } + + private JPanel createCommonStylePane() { + styleButton = new UIButtonGroup<>(new String[]{ + Toolkit.i18nText("Fine-Design_Chart_Automatic"), + Toolkit.i18nText("Fine-Design_Chart_Custom") + }); + + textAttrPane = new ChartTextAttrPane() { + protected Component[][] getComponents(JPanel buttonPane) { + return new Component[][]{ + new Component[]{null, null}, + new Component[]{null, getFontNameComboBox()}, + new Component[]{null, buttonPane} + }; + } + }; + + JPanel buttonPane = TableLayout4VanChartHelper.createGapTableLayoutPane(Toolkit.i18nText("Fine-Design_Chart_Widget_Style"), styleButton); + + JPanel stylePanel = new JPanel(new BorderLayout()); + stylePanel.add(buttonPane, BorderLayout.CENTER); + stylePanel.add(textAttrPane, BorderLayout.SOUTH); + + initStyleButtonListener(); + + return stylePanel; + } + + private void initStyleButtonListener() { + styleButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + checkStylePane(); + } + }); + } + + private void checkStylePane() { + textAttrPane.setVisible(styleButton.getSelectedIndex() == 1); } private JPanel createRichEditorPanel() { @@ -154,18 +230,21 @@ public class VanChartTooltipContentPane extends BasicBeanPane params = VanChartRichEditorPane.richParamsParser(content, richText.getParams()); - populateFormatParams(params); updateLocalRichText(content, model.isAuto()); SwingUtilities.getWindowAncestor(pane).setVisible(false); @@ -207,6 +284,28 @@ public class VanChartTooltipContentPane extends BasicBeanPane", - "\"%24%7BSERIES%7D\"", - "\"%24%7BVALUE%7D\"", - "\"%24%7BPERCENT%7D\"", - "\"%24%7BCHANGEDVALUE%7D\"", - "\"%24%7BCHANGEDPERCENT%7D\"" + return new VanChartFormatPaneWithoutCheckBox[]{ + richTextCategoryNameFormatPane, + richTextSeriesNameFormatPane, + richTextValueFormatPane, + richTextPercentFormatPane, + richTextChangedValueFormatPane, + richTextChangedPercentFormatPane }; - - StringBuilder result = new StringBuilder("

"); - - for (int i = 0, len = formatPaneGroup.length; i < len; i++) { - VanChartFormatPaneWithCheckBox formatPane = formatPaneGroup[i]; - String paramRichText = richTextGroup[i]; - - if (formatPane != null && formatPane.isSelected()) { - result.append(paramRichText); - } - } - - result.append("

"); - - return result.toString(); } @Override @@ -346,19 +435,36 @@ public class VanChartTooltipContentPane extends BasicBeanPane params) { - if (params == null) { - return; - } + for (int i = 0, len = formatPaneGroup.length; i < len; i++) { + VanChartFormatPaneWithCheckBox formatPane = formatPaneGroup[i]; + AttrTooltipFormat format = formatGroup[i]; - VanChartFormatPaneWithCheckBox[] formatPaneGroup = getFormatPaneGroup(); + if (formatPane != null && format != null) { + formatPane.populate(format); - for (VanChartFormatPaneWithCheckBox formatPane : formatPaneGroup) { - if (formatPane != null) { - formatPane.setSelected(false); + // 填充面板时,更新富文本编辑器参数 + formatPane.updateFormatParams(richText.getParams(), format.getJs()); } } - for (String param : params) { - VanChartFormatPaneWithCheckBox formatPane = getTargetFormatPane(param); + AttrTooltipRichText tooltipRichText = attrTooltipContent.getRichTextAttr(); - if (formatPane != null) { - formatPane.setSelected(true); - } + if (tooltipRichText != null) { + updateLocalRichText(tooltipRichText.getContent(), tooltipRichText.isAuto()); + setDirty(false); } } public AttrTooltipContent updateBean() { AttrTooltipContent attrTooltipContent = createAttrTooltip(); - boolean isCommon = content.getSelectedIndex() == 0; - - attrTooltipContent.setCommon(isCommon); - if (isDirty() && isCommon) { - updateLocalRichText(getParamsRichText(), false); - setDirty(false); - } + attrTooltipContent.setCommon(content.getSelectedIndex() == 0); + attrTooltipContent.setRichText(content.getSelectedIndex() == 1); + attrTooltipContent.setCustom(styleButton.getSelectedIndex() == 1); + attrTooltipContent.setTextAttr(this.textAttrPane.update()); updateFormatPane(attrTooltipContent); + updateRichEditor(attrTooltipContent); updateTooltipRichText(attrTooltipContent); updateFormatsWithPaneWidth(attrTooltipContent); @@ -449,6 +553,20 @@ public class VanChartTooltipContentPane extends BasicBeanPane align; private JPanel alignPane; private Integer[] oldAlignValues; + protected UIButtonGroup style; + protected ChartTextAttrPane textFontPane; public VanChartGaugeLabelDetailPane(Plot plot, VanChartStylePane parent) { super(plot, parent); @@ -63,6 +67,15 @@ public class VanChartGaugeLabelDetailPane extends VanChartPlotLabelDetailPane { return TableLayoutHelper.createTableLayoutPane(getLabelStyleComponents(plot), row, col); } + protected void initStyleListener() { + style.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + checkStyleUse(); + } + }); + } + protected boolean isFontSizeAuto() { return false; } @@ -120,7 +133,10 @@ public class VanChartGaugeLabelDetailPane extends VanChartPlotLabelDetailPane { }; } else { - return super.getLabelPaneComponents(plot, p, columnSize); + return new Component[][]{ + new Component[]{dataLabelContentPane, null}, + new Component[]{createLabelStylePane(getLabelStyleRowSize(p), columnSize, plot), null}, + }; } } @@ -210,15 +226,21 @@ public class VanChartGaugeLabelDetailPane extends VanChartPlotLabelDetailPane { super.populate(detail); style.setSelectedIndex(1); + textFontPane.populate(detail.getTextAttr()); if (hasLabelAlign(this.getPlot()) && align != null) { align.setSelectedItem(detail.getAlign()); } + + checkStyleUse(); } public void update(AttrLabelDetail detail) { super.update(detail); detail.setCustom(true); + if (textFontPane != null) { + detail.setTextAttr(textFontPane.update()); + } if (align != null) { if (align.getSelectedItem() != null) { detail.setAlign(align.getSelectedItem()); diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelDetailPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelDetailPane.java index c506d89ea..b5d36b07a 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelDetailPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelDetailPane.java @@ -44,9 +44,6 @@ public class VanChartPlotLabelDetailPane extends BasicPane { protected UIButtonGroup autoAdjust; protected UIToggleButton tractionLine; - protected UIButtonGroup style; - protected ChartTextAttrPane textFontPane; - protected ColorSelectBox backgroundColor; private JPanel tractionLinePane; @@ -93,13 +90,11 @@ public class VanChartPlotLabelDetailPane extends BasicPane { if(hasLabelPosition(plot)){ return new Component[][]{ new Component[]{dataLabelContentPane,null}, - new Component[]{createLabelPositionPane(Toolkit.i18nText("Fine-Design_Chart_Layout_Position"), plot), null}, - new Component[]{createLabelStylePane(getLabelStyleRowSize(p), columnSize, plot),null}, + new Component[]{createLabelPositionPane(Toolkit.i18nText("Fine-Design_Chart_Layout_Position"), plot), null} }; } else { return new Component[][]{ - new Component[]{dataLabelContentPane,null}, - new Component[]{createLabelStylePane(getLabelStyleRowSize(p), columnSize, plot),null}, + new Component[]{dataLabelContentPane,null} }; } } @@ -214,17 +209,6 @@ public class VanChartPlotLabelDetailPane extends BasicPane { }); } - protected JPanel createLabelStylePane(double[] row, double[] col, Plot plot) { - style = new UIButtonGroup(new String[]{Toolkit.i18nText("Fine-Design_Chart_Automatic"), - Toolkit.i18nText("Fine-Design_Chart_Custom")}); - textFontPane =initTextFontPane(); - - initStyleListener(); - - JPanel panel = TableLayout4VanChartHelper.createGapTableLayoutPane(getLabelStyleComponents(plot),row,col); - return createTableLayoutPaneWithTitle(Toolkit.i18nText("Fine-Design_Chart_Widget_Style"), panel); - } - protected ChartTextAttrPane initTextFontPane () { return new ChartTextAttrPane(){ protected Component[][] getComponents(JPanel buttonPane) { @@ -237,24 +221,6 @@ public class VanChartPlotLabelDetailPane extends BasicPane { }; } - protected Component[][] getLabelStyleComponents(Plot plot) { - UILabel text = new UILabel(Toolkit.i18nText("Fine-Design_Chart_Character"), SwingConstants.LEFT); - return new Component[][]{ - new Component[]{null,null}, - new Component[]{text,style}, - new Component[]{textFontPane,null}, - }; - } - - protected void initStyleListener() { - style.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - checkStyleUse(); - } - }); - } - protected JPanel createBackgroundColorPane() { backgroundColor = new ColorSelectBox(100); return createTableLayoutPaneWithTitle(Toolkit.i18nText("Fine-Design_Chart_Background"), backgroundColor); @@ -265,18 +231,12 @@ public class VanChartPlotLabelDetailPane extends BasicPane { } private void checkAllUse() { - checkStyleUse(); if(tractionLine == null){ return; } checkPositionEnabled(); } - protected void checkStyleUse() { - textFontPane.setVisible(style.getSelectedIndex() == 1); - textFontPane.setPreferredSize(style.getSelectedIndex() == 1 ? new Dimension(0, 60) : new Dimension(0, 0)); - } - private void checkPosition() { tractionLine.setSelected(position.getSelectedItem() == Constants.OUTSIDE); checkPositionEnabled(); @@ -301,8 +261,6 @@ public class VanChartPlotLabelDetailPane extends BasicPane { if(autoAdjust != null){ autoAdjust.setSelectedIndex(detail.isAutoAdjust() == true ? 0 : 1); } - style.setSelectedIndex(detail.isCustom() ? 1 : 0); - textFontPane.populate(detail.getTextAttr()); if(backgroundColor != null){ backgroundColor.setSelectObject(detail.getBackgroundColor()); @@ -327,10 +285,6 @@ public class VanChartPlotLabelDetailPane extends BasicPane { if(tractionLine != null){ detail.setShowGuidLine(tractionLine.isSelected() && detail.getPosition() == Constants.OUTSIDE); } - detail.setCustom(style.getSelectedIndex() == 1); - if(textFontPane != null){ - detail.setTextAttr(textFontPane.update()); - } if(backgroundColor != null){ detail.setBackgroundColor(backgroundColor.getSelectObject()); } diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/tooltip/VanChartPlotRefreshTooltipPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/tooltip/VanChartPlotRefreshTooltipPane.java index ade1d85bd..0f71c9de6 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/tooltip/VanChartPlotRefreshTooltipPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/tooltip/VanChartPlotRefreshTooltipPane.java @@ -72,7 +72,6 @@ public class VanChartPlotRefreshTooltipPane extends VanChartPlotTooltipNoCheckPa Component[][] components = new Component[][]{ new Component[]{refreshTooltipContentPane,null}, new Component[]{initDurationPane(),null}, - new Component[]{createLabelStylePane(),null}, new Component[]{TableLayout4VanChartHelper.createExpandablePaneWithTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Border"),borderPane),null}, new Component[]{TableLayout4VanChartHelper.createExpandablePaneWithTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Background"), backgroundPane),null}, diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/tooltip/VanChartPlotTooltipPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/tooltip/VanChartPlotTooltipPane.java index 1c3ed4aa5..bb5b46b63 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/tooltip/VanChartPlotTooltipPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/tooltip/VanChartPlotTooltipPane.java @@ -7,8 +7,6 @@ import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; -import com.fr.design.mainframe.chart.gui.style.ChartTextAttrPane; - import com.fr.design.utils.gui.UIComponentUtils; import com.fr.design.widget.FRWidgetFactory; import com.fr.plugin.chart.base.AttrTooltip; @@ -32,9 +30,6 @@ public class VanChartPlotTooltipPane extends BasicPane { protected VanChartTooltipContentPane tooltipContentPane; - protected UIButtonGroup style; - protected ChartTextAttrPane textFontPane; - protected VanChartBorderWithRadiusPane borderPane; protected VanChartBackgroundWithOutImagePane backgroundPane; @@ -95,7 +90,6 @@ public class VanChartPlotTooltipPane extends BasicPane { protected Component[][] createComponents(Plot plot) { Component[][] components = new Component[][]{ new Component[]{tooltipContentPane,null}, - new Component[]{createLabelStylePane(),null}, new Component[]{TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Fine-Design_Chart_Border"),borderPane),null}, new Component[]{TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Fine-Design_Chart_Background"), backgroundPane),null}, new Component[]{createDisplayStrategy(plot),null}, @@ -108,38 +102,6 @@ public class VanChartPlotTooltipPane extends BasicPane { tooltipContentPane = PlotFactory.createPlotTooltipContentPane(plot, parent, VanChartPlotTooltipPane.this); } - protected JPanel createLabelStylePane() { - style = new UIButtonGroup(new String[]{Toolkit.i18nText("Fine-Design_Chart_Automatic"),Toolkit.i18nText("Fine-Design_Chart_Custom")}); - textFontPane = new ChartTextAttrPane() { - protected Component[][] getComponents(JPanel buttonPane) { - return new Component[][]{ - new Component[]{null, null}, - new Component[]{null, getFontNameComboBox()}, - new Component[]{null, buttonPane} - }; - } - }; - - JPanel panel = TableLayout4VanChartHelper.createGapTableLayoutPane(Toolkit.i18nText("Fine-Design_Chart_Character"), style); - JPanel panel1 = new JPanel(new BorderLayout()); - panel1.add(panel, BorderLayout.CENTER); - panel1.add(textFontPane, BorderLayout.SOUTH); - - initStyleListener(); - - return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Fine-Design_Chart_Widget_Style"), panel1); - } - - - private void initStyleListener() { - style.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - checkStyleUse(); - } - }); - } - protected JPanel createDisplayStrategy(Plot plot) { showAllSeries = new UICheckBox(getShowAllSeriesLabelText()); followMouse = new UIButtonGroup(new String[]{Toolkit.i18nText("Fine-Design_Chart_Follow_Mouse"), @@ -175,7 +137,6 @@ public class VanChartPlotTooltipPane extends BasicPane { private void checkAllUse() { checkBoxUse(); - checkStyleUse(); } /** * 检查box使用. @@ -184,10 +145,6 @@ public class VanChartPlotTooltipPane extends BasicPane { tooltipPane.setVisible(isTooltipShow.isSelected()); } - private void checkStyleUse() { - textFontPane.setVisible(style.getSelectedIndex() == 1); - } - protected AttrTooltip getAttrTooltip() { return new AttrTooltip(); } @@ -202,8 +159,6 @@ public class VanChartPlotTooltipPane extends BasicPane { tooltipContentPane.populateBean(attr.getContent()); } - style.setSelectedIndex(attr.isCustom() ? 1 : 0); - textFontPane.populate(attr.getTextAttr()); borderPane.populate(attr.getGeneralInfo()); backgroundPane.populate(attr.getGeneralInfo()); if(showAllSeries != null) { @@ -224,10 +179,6 @@ public class VanChartPlotTooltipPane extends BasicPane { attrTooltip.setContent(tooltipContentPane.updateBean()); } - attrTooltip.setCustom(style.getSelectedIndex() == 1); - if(textFontPane != null){ - attrTooltip.setTextAttr(textFontPane.update()); - } borderPane.update(attrTooltip.getGeneralInfo()); backgroundPane.update(attrTooltip.getGeneralInfo()); if(showAllSeries != null) { diff --git a/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/style/FunnelPercentFormatPaneWithoutCheckBox.java b/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/style/FunnelPercentFormatPaneWithoutCheckBox.java new file mode 100644 index 000000000..5495131b3 --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/style/FunnelPercentFormatPaneWithoutCheckBox.java @@ -0,0 +1,18 @@ +package com.fr.van.chart.funnel.designer.style; + +import com.fr.design.i18n.Toolkit; +import com.fr.van.chart.designer.component.format.PercentFormatPaneWithoutCheckBox; +import com.fr.van.chart.designer.style.VanChartStylePane; + +import javax.swing.JPanel; + +public class FunnelPercentFormatPaneWithoutCheckBox extends PercentFormatPaneWithoutCheckBox { + + public FunnelPercentFormatPaneWithoutCheckBox(VanChartStylePane parent, JPanel showOnPane) { + super(parent, showOnPane); + } + + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Value_Conversion"); + } +} diff --git a/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/style/VanChartFunnelLabelContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/style/VanChartFunnelLabelContentPane.java index e2382c685..20451e343 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/style/VanChartFunnelLabelContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/style/VanChartFunnelLabelContentPane.java @@ -4,8 +4,12 @@ import com.fr.plugin.chart.base.AttrTooltipContent; import com.fr.plugin.chart.base.format.AttrTooltipNameFormat; import com.fr.van.chart.designer.component.VanChartLabelContentPane; import com.fr.van.chart.designer.component.format.CategoryNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.CategoryNameFormatPaneWithoutCheckBox; +import com.fr.van.chart.designer.component.format.PercentFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; @@ -31,6 +35,14 @@ public class VanChartFunnelLabelContentPane extends VanChartLabelContentPane { }; } + protected Component[][] getRichTextComponents() { + return new Component[][]{ + new Component[]{richTextSeriesNameFormatPane, null}, + new Component[]{richTextValueFormatPane, null}, + new Component[]{richTextPercentFormatPane, null} + }; + } + @Override protected void initFormatPane(VanChartStylePane parent, JPanel showOnPane) { categoryNameFormatPane = new CategoryNameFormatPaneWithCheckBox(parent, showOnPane); @@ -39,6 +51,13 @@ public class VanChartFunnelLabelContentPane extends VanChartLabelContentPane { percentFormatPane = new FunnelPercentFormatPaneWithCheckBox(parent, showOnPane); } + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + richTextCategoryNameFormatPane = new CategoryNameFormatPaneWithoutCheckBox(parent, showOnPane); + richTextSeriesNameFormatPane = new SeriesNameFormatPaneWithoutCheckBox(parent, showOnPane); + richTextValueFormatPane = new ValueFormatPaneWithoutCheckBox(parent, showOnPane); + richTextPercentFormatPane = new FunnelPercentFormatPaneWithoutCheckBox(parent, showOnPane); + } + protected AttrTooltipContent createAttrTooltip() { AttrTooltipContent attrTooltipContent = new AttrTooltipContent(); attrTooltipContent.getCategoryFormat().setEnable(false); diff --git a/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/style/VanChartFunnelRefreshTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/style/VanChartFunnelRefreshTooltipContentPane.java index c98dfcce4..c751e1731 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/style/VanChartFunnelRefreshTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/style/VanChartFunnelRefreshTooltipContentPane.java @@ -1,7 +1,9 @@ package com.fr.van.chart.funnel.designer.style; import com.fr.van.chart.designer.component.format.ChangedPercentFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ChangedPercentFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ChangedValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ChangedValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; @@ -22,6 +24,14 @@ public class VanChartFunnelRefreshTooltipContentPane extends VanChartFunnelToolt changedPercentFormatPane = new ChangedPercentFormatPaneWithCheckBox(parent, showOnPane); } + @Override + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + super.initRichTextFormatPane(parent, showOnPane); + + richTextChangedValueFormatPane = new ChangedValueFormatPaneWithoutCheckBox(parent, showOnPane); + richTextChangedPercentFormatPane = new ChangedPercentFormatPaneWithoutCheckBox(parent, showOnPane); + } + protected double[] getRowSize(double p){ return new double[]{p,p,p,p,p}; } @@ -35,4 +45,14 @@ public class VanChartFunnelRefreshTooltipContentPane extends VanChartFunnelToolt new Component[]{changedPercentFormatPane,null}, }; } + + protected Component[][] getRichTextComponents() { + return new Component[][]{ + new Component[]{richTextSeriesNameFormatPane, null}, + new Component[]{richTextValueFormatPane, null}, + new Component[]{richTextChangedValueFormatPane, null}, + new Component[]{richTextPercentFormatPane, null}, + new Component[]{richTextChangedPercentFormatPane, null} + }; + } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/style/VanChartFunnelTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/style/VanChartFunnelTooltipContentPane.java index 1a5199c09..280d7e2bc 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/style/VanChartFunnelTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/style/VanChartFunnelTooltipContentPane.java @@ -4,8 +4,11 @@ import com.fr.plugin.chart.base.AttrTooltipContent; import com.fr.plugin.chart.base.format.AttrTooltipNameFormat; import com.fr.van.chart.designer.component.VanChartTooltipContentPane; import com.fr.van.chart.designer.component.format.CategoryNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.CategoryNameFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; @@ -31,6 +34,14 @@ public class VanChartFunnelTooltipContentPane extends VanChartTooltipContentPane }; } + protected Component[][] getRichTextComponents() { + return new Component[][]{ + new Component[]{richTextSeriesNameFormatPane, null}, + new Component[]{richTextValueFormatPane, null}, + new Component[]{richTextPercentFormatPane, null} + }; + } + @Override protected void initFormatPane(VanChartStylePane parent, JPanel showOnPane) { categoryNameFormatPane = new CategoryNameFormatPaneWithCheckBox(parent, showOnPane); @@ -39,6 +50,14 @@ public class VanChartFunnelTooltipContentPane extends VanChartTooltipContentPane percentFormatPane = new FunnelPercentFormatPaneWithCheckBox(parent, showOnPane); } + @Override + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + richTextCategoryNameFormatPane = new CategoryNameFormatPaneWithoutCheckBox(parent, showOnPane); + richTextSeriesNameFormatPane = new SeriesNameFormatPaneWithoutCheckBox(parent, showOnPane); + richTextValueFormatPane = new ValueFormatPaneWithoutCheckBox(parent, showOnPane); + richTextPercentFormatPane = new FunnelPercentFormatPaneWithoutCheckBox(parent, showOnPane); + } + protected AttrTooltipContent createAttrTooltip() { AttrTooltipContent attrTooltipContent = new AttrTooltipContent(); attrTooltipContent.getCategoryFormat().setEnable(false); diff --git a/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/label/VanChartMapLabelContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/label/VanChartMapLabelContentPane.java index c918088ca..c257c8ffd 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/label/VanChartMapLabelContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/label/VanChartMapLabelContentPane.java @@ -5,9 +5,13 @@ import com.fr.plugin.chart.base.format.AttrTooltipAreaNameFormat; import com.fr.plugin.chart.base.format.AttrTooltipMapValueFormat; import com.fr.van.chart.designer.component.VanChartLabelContentPane; import com.fr.van.chart.designer.component.format.MapAreaNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.MapAreaNameFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.PercentFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.PercentFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; @@ -28,6 +32,14 @@ public class VanChartMapLabelContentPane extends VanChartLabelContentPane { percentFormatPane = new PercentFormatPaneWithCheckBox(parent, showOnPane); } + @Override + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + richTextCategoryNameFormatPane = new MapAreaNameFormatPaneWithoutCheckBox(parent, showOnPane); + richTextSeriesNameFormatPane = new SeriesNameFormatPaneWithoutCheckBox(parent, showOnPane); + richTextValueFormatPane = new ValueFormatPaneWithoutCheckBox(parent, showOnPane); + richTextPercentFormatPane = new PercentFormatPaneWithoutCheckBox(parent, showOnPane); + } + @Override protected AttrTooltipContent createAttrTooltip() { AttrTooltipContent content = new AttrTooltipContent(); diff --git a/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/tooltip/VanChartMapRefreshTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/tooltip/VanChartMapRefreshTooltipContentPane.java index 76bd33f59..9b9b3aac4 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/tooltip/VanChartMapRefreshTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/tooltip/VanChartMapRefreshTooltipContentPane.java @@ -3,7 +3,9 @@ package com.fr.van.chart.map.designer.style.tooltip; import com.fr.plugin.chart.base.AttrTooltipContent; import com.fr.plugin.chart.base.format.AttrTooltipAreaNameFormat; import com.fr.van.chart.designer.component.format.ChangedPercentFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ChangedPercentFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ChangedValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ChangedValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; @@ -20,10 +22,19 @@ public class VanChartMapRefreshTooltipContentPane extends VanChartMapTooltipCont @Override protected void initFormatPane(VanChartStylePane parent, JPanel showOnPane) { super.initFormatPane(parent, showOnPane); + changedValueFormatPane = new ChangedValueFormatPaneWithCheckBox(parent, showOnPane); changedPercentFormatPane = new ChangedPercentFormatPaneWithCheckBox(parent, showOnPane); + } + @Override + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + super.initRichTextFormatPane(parent, showOnPane); + + richTextChangedValueFormatPane = new ChangedValueFormatPaneWithoutCheckBox(parent, showOnPane); + richTextChangedPercentFormatPane = new ChangedPercentFormatPaneWithoutCheckBox(parent, showOnPane); } + protected double[] getRowSize(double p){ return new double[]{p,p,p,p,p,p}; } @@ -39,6 +50,17 @@ public class VanChartMapRefreshTooltipContentPane extends VanChartMapTooltipCont }; } + protected Component[][] getRichTextComponents() { + return new Component[][]{ + new Component[]{richTextCategoryNameFormatPane, null}, + new Component[]{richTextSeriesNameFormatPane, null}, + new Component[]{richTextValueFormatPane, null}, + new Component[]{richTextChangedValueFormatPane, null}, + new Component[]{richTextPercentFormatPane, null}, + new Component[]{richTextChangedPercentFormatPane, null} + }; + } + @Override protected AttrTooltipContent createAttrTooltip() { AttrTooltipContent content = new AttrTooltipContent(); diff --git a/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/tooltip/VanChartMapTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/tooltip/VanChartMapTooltipContentPane.java index 1a2b593a3..f39107d6d 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/tooltip/VanChartMapTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/tooltip/VanChartMapTooltipContentPane.java @@ -5,9 +5,13 @@ import com.fr.plugin.chart.base.format.AttrTooltipAreaNameFormat; import com.fr.plugin.chart.base.format.AttrTooltipMapValueFormat; import com.fr.van.chart.designer.component.VanChartTooltipContentPane; import com.fr.van.chart.designer.component.format.MapAreaNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.MapAreaNameFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.PercentFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.PercentFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; @@ -28,6 +32,14 @@ public class VanChartMapTooltipContentPane extends VanChartTooltipContentPane { percentFormatPane = new PercentFormatPaneWithCheckBox(parent, showOnPane); } + @Override + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + richTextCategoryNameFormatPane = new MapAreaNameFormatPaneWithoutCheckBox(parent, showOnPane); + richTextSeriesNameFormatPane = new SeriesNameFormatPaneWithoutCheckBox(parent, showOnPane); + richTextValueFormatPane = new ValueFormatPaneWithoutCheckBox(parent, showOnPane); + richTextPercentFormatPane = new PercentFormatPaneWithoutCheckBox(parent, showOnPane); + } + @Override protected AttrTooltipContent createAttrTooltip() { AttrTooltipContent content = new AttrTooltipContent(); diff --git a/designer-chart/src/main/java/com/fr/van/chart/map/line/StartAndEndNameFormatPaneWithoutCheckBox.java b/designer-chart/src/main/java/com/fr/van/chart/map/line/StartAndEndNameFormatPaneWithoutCheckBox.java new file mode 100644 index 000000000..9630f9b12 --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/map/line/StartAndEndNameFormatPaneWithoutCheckBox.java @@ -0,0 +1,17 @@ +package com.fr.van.chart.map.line; + +import com.fr.design.i18n.Toolkit; +import com.fr.van.chart.designer.component.format.CategoryNameFormatPaneWithoutCheckBox; +import com.fr.van.chart.designer.style.VanChartStylePane; + +import javax.swing.JPanel; + +public class StartAndEndNameFormatPaneWithoutCheckBox extends CategoryNameFormatPaneWithoutCheckBox { + public StartAndEndNameFormatPaneWithoutCheckBox(VanChartStylePane parent, JPanel showOnPane) { + super(parent, showOnPane); + } + + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Start_And_End"); + } +} diff --git a/designer-chart/src/main/java/com/fr/van/chart/map/line/VanChartLineMapTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/map/line/VanChartLineMapTooltipContentPane.java index 66566c6bf..9c46c351b 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/map/line/VanChartLineMapTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/map/line/VanChartLineMapTooltipContentPane.java @@ -4,9 +4,13 @@ import com.fr.plugin.chart.base.AttrTooltipContent; import com.fr.plugin.chart.base.format.AttrTooltipStartAndEndNameFormat; import com.fr.plugin.chart.base.format.AttrTooltipValueFormat; import com.fr.van.chart.designer.component.VanChartTooltipContentPane; +import com.fr.van.chart.designer.component.format.CategoryNameFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.PercentFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.PercentFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; @@ -27,6 +31,14 @@ public class VanChartLineMapTooltipContentPane extends VanChartTooltipContentPan percentFormatPane = new PercentFormatPaneWithCheckBox(parent, showOnPane); } + + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + richTextCategoryNameFormatPane = new StartAndEndNameFormatPaneWithoutCheckBox(parent, showOnPane); + richTextSeriesNameFormatPane = new SeriesNameFormatPaneWithoutCheckBox(parent, showOnPane); + richTextValueFormatPane = new ValueFormatPaneWithoutCheckBox(parent, showOnPane); + richTextPercentFormatPane = new PercentFormatPaneWithoutCheckBox(parent, showOnPane); + } + @Override protected AttrTooltipContent createAttrTooltip() { AttrTooltipContent content = new AttrTooltipContent(); diff --git a/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/MultiPieLevelNameFormatPaneWithoutCheckBox.java b/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/MultiPieLevelNameFormatPaneWithoutCheckBox.java new file mode 100644 index 000000000..71789e63a --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/MultiPieLevelNameFormatPaneWithoutCheckBox.java @@ -0,0 +1,18 @@ +package com.fr.van.chart.multilayer.style; + +import com.fr.design.i18n.Toolkit; +import com.fr.van.chart.designer.component.format.CategoryNameFormatPaneWithoutCheckBox; +import com.fr.van.chart.designer.style.VanChartStylePane; + +import javax.swing.JPanel; + +public class MultiPieLevelNameFormatPaneWithoutCheckBox extends CategoryNameFormatPaneWithoutCheckBox { + + public MultiPieLevelNameFormatPaneWithoutCheckBox(VanChartStylePane parent, JPanel showOnPane) { + super(parent, showOnPane); + } + + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Level_Name"); + } +} diff --git a/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/MultiPieSeriesNameFormatPaneWithoutCheckBox.java b/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/MultiPieSeriesNameFormatPaneWithoutCheckBox.java new file mode 100644 index 000000000..95cf23f2e --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/MultiPieSeriesNameFormatPaneWithoutCheckBox.java @@ -0,0 +1,18 @@ +package com.fr.van.chart.multilayer.style; + +import com.fr.design.i18n.Toolkit; +import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithoutCheckBox; +import com.fr.van.chart.designer.style.VanChartStylePane; + +import javax.swing.JPanel; + +public class MultiPieSeriesNameFormatPaneWithoutCheckBox extends SeriesNameFormatPaneWithoutCheckBox { + + public MultiPieSeriesNameFormatPaneWithoutCheckBox(VanChartStylePane parent, JPanel showOnPane) { + super(parent, showOnPane); + } + + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_MultiPie_Series_Name"); + } +} diff --git a/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/VanChartMultiPieLabelContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/VanChartMultiPieLabelContentPane.java index 637279d13..8b755a18c 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/VanChartMultiPieLabelContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/VanChartMultiPieLabelContentPane.java @@ -4,7 +4,9 @@ import com.fr.plugin.chart.base.AttrTooltipContent; import com.fr.plugin.chart.multilayer.style.AttrTooltipMultiLevelNameFormat; import com.fr.van.chart.designer.component.VanChartLabelContentPane; import com.fr.van.chart.designer.component.format.PercentFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.PercentFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; @@ -25,6 +27,13 @@ public class VanChartMultiPieLabelContentPane extends VanChartLabelContentPane { percentFormatPane = new PercentFormatPaneWithCheckBox(parent, showOnPane); } + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + richTextCategoryNameFormatPane = new MultiPieLevelNameFormatPaneWithoutCheckBox(parent, showOnPane); + richTextSeriesNameFormatPane = new MultiPieSeriesNameFormatPaneWithoutCheckBox(parent, showOnPane); + richTextValueFormatPane = new ValueFormatPaneWithoutCheckBox(parent, showOnPane); + richTextPercentFormatPane = new PercentFormatPaneWithoutCheckBox(parent, showOnPane); + } + protected AttrTooltipContent createAttrTooltip() { AttrTooltipContent content = new AttrTooltipContent(); content.setCategoryFormat(new AttrTooltipMultiLevelNameFormat()); diff --git a/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/VanChartMultiPieTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/VanChartMultiPieTooltipContentPane.java index 3c500d3bf..7e94fb8cb 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/VanChartMultiPieTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/VanChartMultiPieTooltipContentPane.java @@ -4,7 +4,9 @@ import com.fr.plugin.chart.base.AttrTooltipContent; import com.fr.plugin.chart.multilayer.style.AttrTooltipMultiLevelNameFormat; import com.fr.van.chart.designer.component.VanChartTooltipContentPane; import com.fr.van.chart.designer.component.format.PercentFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.PercentFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; @@ -25,6 +27,13 @@ public class VanChartMultiPieTooltipContentPane extends VanChartTooltipContentPa percentFormatPane = new PercentFormatPaneWithCheckBox(parent, showOnPane); } + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + richTextCategoryNameFormatPane = new MultiPieLevelNameFormatPaneWithoutCheckBox(parent, showOnPane); + richTextSeriesNameFormatPane = new MultiPieSeriesNameFormatPaneWithoutCheckBox(parent, showOnPane); + richTextValueFormatPane = new ValueFormatPaneWithoutCheckBox(parent, showOnPane); + richTextPercentFormatPane = new PercentFormatPaneWithoutCheckBox(parent, showOnPane); + } + @Override protected AttrTooltipContent createAttrTooltip() { AttrTooltipContent content = new AttrTooltipContent(); diff --git a/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/VanChartMutiPieRefreshTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/VanChartMutiPieRefreshTooltipContentPane.java index 56893ec66..1cd5a6e84 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/VanChartMutiPieRefreshTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/VanChartMutiPieRefreshTooltipContentPane.java @@ -1,7 +1,9 @@ package com.fr.van.chart.multilayer.style; import com.fr.van.chart.designer.component.format.ChangedPercentFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ChangedPercentFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ChangedValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ChangedValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; @@ -25,6 +27,14 @@ public class VanChartMutiPieRefreshTooltipContentPane extends VanChartMultiPieTo changedPercentFormatPane = new ChangedPercentFormatPaneWithCheckBox(parent, showOnPane); } + @Override + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + super.initRichTextFormatPane(parent, showOnPane); + + richTextChangedValueFormatPane = new ChangedValueFormatPaneWithoutCheckBox(parent, showOnPane); + richTextChangedPercentFormatPane = new ChangedPercentFormatPaneWithoutCheckBox(parent, showOnPane); + } + protected double[] getRowSize(double p){ return new double[]{p,p,p,p,p,p}; } @@ -40,4 +50,15 @@ public class VanChartMutiPieRefreshTooltipContentPane extends VanChartMultiPieTo }; } + protected Component[][] getRichTextComponents() { + return new Component[][]{ + new Component[]{richTextCategoryNameFormatPane, null}, + new Component[]{richTextSeriesNameFormatPane, null}, + new Component[]{richTextValueFormatPane, null}, + new Component[]{richTextChangedValueFormatPane, null}, + new Component[]{richTextPercentFormatPane, null}, + new Component[]{richTextChangedPercentFormatPane, null} + }; + } + } diff --git a/designer-chart/src/main/java/com/fr/van/chart/scatter/VanChartScatterRefreshTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/scatter/VanChartScatterRefreshTooltipContentPane.java index 902f65517..37a846076 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/scatter/VanChartScatterRefreshTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/scatter/VanChartScatterRefreshTooltipContentPane.java @@ -3,7 +3,9 @@ package com.fr.van.chart.scatter; import com.fr.plugin.chart.base.AttrTooltipContent; import com.fr.plugin.chart.scatter.attr.ScatterAttrTooltipContent; import com.fr.van.chart.designer.component.format.ChangedPercentFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ChangedPercentFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ChangedValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ChangedValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; @@ -15,7 +17,7 @@ import java.awt.Component; public class VanChartScatterRefreshTooltipContentPane extends VanChartScatterTooltipContentPane { private ChangedValueFormatPaneWithCheckBox changedSizeFormatPane; - + private ChangedValueFormatPaneWithoutCheckBox richTextChangedSizeFormatPane; public VanChartScatterRefreshTooltipContentPane(VanChartStylePane parent, JPanel showOnPane) { super(null, showOnPane); @@ -28,6 +30,12 @@ public class VanChartScatterRefreshTooltipContentPane extends VanChartScatterToo changedPercentFormatPane = new ChangedPercentFormatPaneWithCheckBox(parent, showOnPane); } + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + super.initRichTextFormatPane(parent, showOnPane); + + richTextChangedSizeFormatPane = new ChangedValueFormatPaneWithoutCheckBox(parent, showOnPane); + richTextChangedPercentFormatPane = new ChangedPercentFormatPaneWithoutCheckBox(parent, showOnPane); + } protected double[] getRowSize(double p) { return new double[]{p, p, p, p, p, p}; @@ -36,14 +44,26 @@ public class VanChartScatterRefreshTooltipContentPane extends VanChartScatterToo protected Component[][] getPaneComponents() { return new Component[][]{ new Component[]{seriesNameFormatPane, null}, - new Component[]{getxFormatPane(), null}, - new Component[]{getyFormatPane(), null}, + new Component[]{getXFormatPane(), null}, + new Component[]{getYFormatPane(), null}, new Component[]{getSizeFormatPane(), null}, new Component[]{changedSizeFormatPane, null}, new Component[]{changedPercentFormatPane, null}, }; } + @Override + protected Component[][] getRichTextComponents() { + return new Component[][]{ + new Component[]{richTextSeriesNameFormatPane, null}, + new Component[]{getRichTextXFormatPane(), null}, + new Component[]{getRichTextYFormatPane(), null}, + new Component[]{getRichTextSizeFormatPane(), null}, + new Component[]{richTextChangedSizeFormatPane, null}, + new Component[]{richTextChangedPercentFormatPane, null} + }; + } + @Override protected void populateFormatPane(AttrTooltipContent attrTooltipContent) { diff --git a/designer-chart/src/main/java/com/fr/van/chart/scatter/VanChartScatterTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/scatter/VanChartScatterTooltipContentPane.java index 705ea1a0f..f1a13d8cf 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/scatter/VanChartScatterTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/scatter/VanChartScatterTooltipContentPane.java @@ -4,8 +4,11 @@ import com.fr.plugin.chart.base.AttrTooltipContent; import com.fr.plugin.chart.scatter.attr.ScatterAttrTooltipContent; import com.fr.van.chart.designer.component.VanChartTooltipContentPane; import com.fr.van.chart.designer.component.format.ValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.XFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.XFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.YFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.YFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; @@ -20,11 +23,15 @@ public class VanChartScatterTooltipContentPane extends VanChartTooltipContentPa private YFormatPaneWithCheckBox yFormatPane; private ValueFormatPaneWithCheckBox sizeFormatPane; - public XFormatPaneWithCheckBox getxFormatPane() { + private XFormatPaneWithoutCheckBox richTextXFormatPane; + private YFormatPaneWithoutCheckBox richTextYFormatPane; + private ValueFormatPaneWithoutCheckBox richTextSizeFormatPane; + + public XFormatPaneWithCheckBox getXFormatPane() { return xFormatPane; } - public YFormatPaneWithCheckBox getyFormatPane() { + public YFormatPaneWithCheckBox getYFormatPane() { return yFormatPane; } @@ -32,6 +39,18 @@ public class VanChartScatterTooltipContentPane extends VanChartTooltipContentPa return sizeFormatPane; } + public XFormatPaneWithoutCheckBox getRichTextXFormatPane() { + return richTextXFormatPane; + } + + public YFormatPaneWithoutCheckBox getRichTextYFormatPane() { + return richTextYFormatPane; + } + + public ValueFormatPaneWithoutCheckBox getRichTextSizeFormatPane() { + return richTextSizeFormatPane; + } + public VanChartScatterTooltipContentPane(VanChartStylePane parent, JPanel showOnPane){ super(parent, showOnPane); } @@ -45,6 +64,15 @@ public class VanChartScatterTooltipContentPane extends VanChartTooltipContentPa sizeFormatPane = new ValueFormatPaneWithCheckBox(parent, showOnPane); } + @Override + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + super.initRichTextFormatPane(parent, showOnPane); + + richTextXFormatPane = new XFormatPaneWithoutCheckBox(parent, showOnPane); + richTextYFormatPane = new YFormatPaneWithoutCheckBox(parent, showOnPane); + richTextSizeFormatPane = new ValueFormatPaneWithoutCheckBox(parent, showOnPane); + } + @Override protected Component[][] getPaneComponents(){ return new Component[][]{ @@ -55,6 +83,16 @@ public class VanChartScatterTooltipContentPane extends VanChartTooltipContentPa }; } + @Override + protected Component[][] getRichTextComponents() { + return new Component[][]{ + new Component[]{richTextSeriesNameFormatPane, null}, + new Component[]{richTextXFormatPane, null}, + new Component[]{richTextYFormatPane, null}, + new Component[]{richTextSizeFormatPane, null} + }; + } + @Override protected void populateFormatPane(AttrTooltipContent attrTooltipContent) { super.populateFormatPane(attrTooltipContent); diff --git a/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructureRefreshTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructureRefreshTooltipContentPane.java index 5fa83be5b..f5dd6fbd5 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructureRefreshTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructureRefreshTooltipContentPane.java @@ -1,7 +1,9 @@ package com.fr.van.chart.structure.desinger.style; import com.fr.van.chart.designer.component.format.ChangedPercentFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ChangedPercentFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ChangedValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ChangedValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; @@ -23,6 +25,13 @@ public class VanChartStructureRefreshTooltipContentPane extends VanChartStructur changedPercentFormatPane = new ChangedPercentFormatPaneWithCheckBox(parent, showOnPane); } + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + super.initRichTextFormatPane(parent, showOnPane); + + richTextChangedValueFormatPane = new ChangedValueFormatPaneWithoutCheckBox(parent, showOnPane); + richTextChangedPercentFormatPane = new ChangedPercentFormatPaneWithoutCheckBox(parent, showOnPane); + } + protected double[] getRowSize(double p){ return new double[]{p,p,p,p,p}; } @@ -37,4 +46,15 @@ public class VanChartStructureRefreshTooltipContentPane extends VanChartStructur new Component[]{changedPercentFormatPane,null}, }; } + + @Override + protected Component[][] getRichTextComponents() { + return new Component[][]{ + new Component[]{richTextCategoryNameFormatPane, null}, + new Component[]{richTextSeriesNameFormatPane, null}, + new Component[]{richTextValueFormatPane, null}, + new Component[]{richTextChangedValueFormatPane, null}, + new Component[]{richTextChangedPercentFormatPane, null} + }; + } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructureTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructureTooltipContentPane.java index 63490eaff..29fd61739 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructureTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructureTooltipContentPane.java @@ -1,13 +1,18 @@ package com.fr.van.chart.structure.desinger.style; +import com.fr.design.i18n.Toolkit; import com.fr.plugin.chart.base.AttrTooltipContent; import com.fr.plugin.chart.multilayer.style.AttrTooltipMultiLevelNameFormat; import com.fr.van.chart.designer.component.VanChartTooltipContentPane; import com.fr.van.chart.designer.component.format.CategoryNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.CategoryNameFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.PercentFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.PercentFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; @@ -30,24 +35,48 @@ public class VanChartStructureTooltipContentPane extends VanChartTooltipContentP }; } + @Override + protected Component[][] getRichTextComponents() { + return new Component[][]{ + new Component[]{richTextCategoryNameFormatPane, null}, + new Component[]{richTextSeriesNameFormatPane, null}, + new Component[]{richTextValueFormatPane, null} + }; + } + @Override protected void initFormatPane(VanChartStylePane parent, JPanel showOnPane){ categoryNameFormatPane = new CategoryNameFormatPaneWithCheckBox(parent, showOnPane){ @Override protected String getCheckBoxText() { - return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Node_Name"); + return Toolkit.i18nText("Fine-Design_Chart_Node_Name"); } }; seriesNameFormatPane = new SeriesNameFormatPaneWithCheckBox(parent, showOnPane){ @Override protected String getCheckBoxText() { - return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_MultiPie_Series_Name"); + return Toolkit.i18nText("Fine-Design_Chart_MultiPie_Series_Name"); } }; valueFormatPane = new ValueFormatPaneWithCheckBox(parent, showOnPane); percentFormatPane = new PercentFormatPaneWithCheckBox(parent, showOnPane); } + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + richTextCategoryNameFormatPane = new CategoryNameFormatPaneWithoutCheckBox(parent, showOnPane) { + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Node_Name"); + } + }; + richTextSeriesNameFormatPane = new SeriesNameFormatPaneWithoutCheckBox(parent, showOnPane) { + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_MultiPie_Series_Name"); + } + }; + richTextValueFormatPane = new ValueFormatPaneWithoutCheckBox(parent, showOnPane); + richTextPercentFormatPane = new PercentFormatPaneWithoutCheckBox(parent, showOnPane); + } + @Override protected AttrTooltipContent createAttrTooltip() { AttrTooltipContent attrTooltipContent = new AttrTooltipContent(); diff --git a/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/style/VanChartWordCloudRefreshTootipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/style/VanChartWordCloudRefreshTootipContentPane.java index 4f748214f..513f9f386 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/style/VanChartWordCloudRefreshTootipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/style/VanChartWordCloudRefreshTootipContentPane.java @@ -1,8 +1,11 @@ package com.fr.van.chart.wordcloud.designer.style; +import com.fr.design.i18n.Toolkit; import com.fr.van.chart.designer.component.format.ChangedPercentFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ChangedPercentFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ChangedValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ChangedValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; @@ -23,13 +26,25 @@ public class VanChartWordCloudRefreshTootipContentPane extends VanChartWordCloud changedValueFormatPane = new ChangedValueFormatPaneWithCheckBox(parent, showOnPane){ @Override protected String getCheckBoxText() { - return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Change_Word_Value"); + return Toolkit.i18nText("Fine-Design_Chart_Change_Word_Value"); } }; changedPercentFormatPane = new ChangedPercentFormatPaneWithCheckBox(parent, showOnPane); } + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + super.initRichTextFormatPane(parent, showOnPane); + + richTextChangedValueFormatPane = new ChangedValueFormatPaneWithoutCheckBox(parent, showOnPane) { + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Change_Word_Value"); + } + }; + + richTextChangedPercentFormatPane = new ChangedPercentFormatPaneWithoutCheckBox(parent, showOnPane); + } + protected double[] getRowSize(double p){ return new double[]{p,p,p,p,p,p}; } @@ -44,4 +59,15 @@ public class VanChartWordCloudRefreshTootipContentPane extends VanChartWordCloud new Component[]{changedPercentFormatPane,null}, }; } + + protected Component[][] getRichTextComponents() { + return new Component[][]{ + new Component[]{richTextCategoryNameFormatPane, null}, + new Component[]{richTextSeriesNameFormatPane, null}, + new Component[]{richTextValueFormatPane, null}, + new Component[]{richTextChangedValueFormatPane, null}, + new Component[]{richTextPercentFormatPane, null}, + new Component[]{richTextChangedPercentFormatPane, null} + }; + } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/style/VanChartWordCloudTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/style/VanChartWordCloudTooltipContentPane.java index 08845b2b7..90c017b82 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/style/VanChartWordCloudTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/style/VanChartWordCloudTooltipContentPane.java @@ -1,13 +1,18 @@ package com.fr.van.chart.wordcloud.designer.style; +import com.fr.design.i18n.Toolkit; import com.fr.plugin.chart.base.AttrTooltipContent; import com.fr.plugin.chart.base.format.AttrTooltipNameFormat; import com.fr.van.chart.designer.component.VanChartTooltipContentPane; import com.fr.van.chart.designer.component.format.CategoryNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.CategoryNameFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.PercentFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.PercentFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.ValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ValueFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; @@ -25,24 +30,43 @@ public class VanChartWordCloudTooltipContentPane extends VanChartTooltipContentP categoryNameFormatPane = new CategoryNameFormatPaneWithCheckBox(parent, showOnPane){ @Override protected String getCheckBoxText() { - return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_MultiPie_Series_Name"); + return Toolkit.i18nText("Fine-Design_Chart_MultiPie_Series_Name"); } }; seriesNameFormatPane = new SeriesNameFormatPaneWithCheckBox(parent, showOnPane){ @Override protected String getCheckBoxText() { - return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Word_Name"); + return Toolkit.i18nText("Fine-Design_Chart_Word_Name"); } }; valueFormatPane = new ValueFormatPaneWithCheckBox(parent, showOnPane){ @Override protected String getCheckBoxText() { - return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Word_Value"); + return Toolkit.i18nText("Fine-Design_Chart_Word_Value"); } }; percentFormatPane = new PercentFormatPaneWithCheckBox(parent, showOnPane); } + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + richTextCategoryNameFormatPane = new CategoryNameFormatPaneWithoutCheckBox(parent, showOnPane){ + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_MultiPie_Series_Name"); + } + }; + richTextSeriesNameFormatPane = new SeriesNameFormatPaneWithoutCheckBox(parent, showOnPane){ + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Word_Name"); + } + }; + richTextValueFormatPane = new ValueFormatPaneWithoutCheckBox(parent, showOnPane){ + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Word_Value"); + } + }; + richTextPercentFormatPane = new PercentFormatPaneWithoutCheckBox(parent, showOnPane); + } + @Override protected AttrTooltipContent createAttrTooltip() { AttrTooltipContent attrTooltipContent = new AttrTooltipContent(); diff --git a/designer-chart/src/main/resources/com/fr/design/editor/rich_editor.html b/designer-chart/src/main/resources/com/fr/design/editor/rich_editor.html new file mode 100644 index 000000000..3189374da --- /dev/null +++ b/designer-chart/src/main/resources/com/fr/design/editor/rich_editor.html @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/designer-chart/src/main/resources/com/fr/design/editor/script/editor.constant.js b/designer-chart/src/main/resources/com/fr/design/editor/script/editor.constant.js new file mode 100644 index 000000000..3642aed28 --- /dev/null +++ b/designer-chart/src/main/resources/com/fr/design/editor/script/editor.constant.js @@ -0,0 +1,6 @@ +!(function () { + + BI.constant("bi.constant.design.chart.common.editor.placeholder_style", { + fontColor: "#c4c9d1" + }); +}()); \ No newline at end of file diff --git a/designer-chart/src/main/resources/com/fr/design/editor/script/editor.js b/designer-chart/src/main/resources/com/fr/design/editor/script/editor.js new file mode 100644 index 000000000..216243069 --- /dev/null +++ b/designer-chart/src/main/resources/com/fr/design/editor/script/editor.js @@ -0,0 +1,241 @@ +!(function () { + var Widget = BI.inherit(BI.Widget, { + props: { + baseCls: "bi-design-chart-common-editor", + isAuto: true, + content: "", + placeholder: "", + fontStyle: {}, + dimensionIds: [], + toolbar: { + buttons: [] + }, + textAlign: "center" + }, + + _store: function () { + var o = this.options; + + return BI.Models.getModel("bi.model.design.chart.common.editor", { + dimensionIds: o.dimensionIds, + isAuto: o.isAuto + }); + }, + + render: function () { + var self = this, o = this.options; + this.editor = BI.createWidget({ + type: "bi.nic_editor", + $value: "chart-common-editor", + height: 365, + cls: "editor bi-border bi-focus-shadow " + (o.textAlign === "center" ? "editor-center-text" : ""), + listeners: [{ + eventName: BI.NicEditor.EVENT_FOCUS, + action: function () { + self.clearPlaceholder(); + self.store.setEditorBlurState(false); + } + }, { + eventName: BI.NicEditor.EVENT_BLUR, + action: function () { + self.setPlaceholder(); + self.store.setEditorBlurState(true); + } + }] + }); + + return { + type: "bi.vtape", + ref: function (_ref) { + self.bar = _ref; + }, + items: [{ + type: "bi.htape", + items: [{ + type: "bi.label", + text: "字体样式: ", + textAlign: "left", + width: 70 + }, { + type: "bi.button_group", + items: this.model.fontStyleItems, + ref: function (_ref) { + self.fontStyleGroup = _ref; + }, + listeners: [{ + eventName: BI.ButtonGroup.EVENT_CHANGE, + action: function () { + var isAuto = this.getValue()[0]; + self.store.changeIsAuto(isAuto); + self.changeFontStyleMode(isAuto); + } + }], + layouts: [{ + type: "bi.left", + rgap: 5 + }], + value: this.model.mode, + width: 125 + }, this._getToolBar()], + height: 24 + }, { + el: this.editor, + tgap: 10 + }] + }; + }, + + _getToolBar: function () { + var self = this; + return { + type: "bi.design.chart.common.editor.toolbar", + cls: "toolbar-region", + wId: this.options.wId, + editor: this.editor, + buttons: this.options.toolbar.buttons, + ref: function (_ref) { + self.toolbar = _ref; + } + }; + }, + + mounted: function () { + this.editor.bindToolbar(this.bar); + this.editor.setValue(this._formatContent(this.options.content)); + this.setFocus(); + }, + + _cleanHtml: function (value) { + var editorService = BI.Services.getService("bi.service.design.chart.common.editor"); + var result = BI.replaceAll(value, "

", ""); + // 去掉image的src属性,因为数据太大了 + result = value.replaceAll("", function (imageStr) { + var attrs = editorService.getImageAttr(imageStr); + var str = ""; + }); + + return result; + }, + + getValue: function () { + var editorService = BI.Services.getService("bi.service.design.chart.common.editor"); + var value = this._cleanHtml(this.editor.getValue(BI.NicEditor.FormatType.ESCAPE)); + // BI.each(this.model.dimensionIds, function (idx, dId) { + // var fullName = BI.Utils.getNotGeoDimensionFullName(dId); + // value = editorService.appendImageAttr(value, fullName, BICst.RICH_TEXT_INFO.DATA_ID, dId); + // }); + + if (editorService.isEmptyRichText(value)) { + value = ""; + } + + if (BI.isNotEmptyString(this.options.placeholder) && editorService.isRichTextEqual(value, this.options.placeholder)) { + value = null; + } + + return { + isAuto: this.model.isAuto, + content: value + }; + }, + + setValue: function (obj) { + var keys = BI.keys(obj); + if (BI.contains(keys, "content")) { + this.editor.setValue(this._formatContent(obj.content)); + } + if (BI.contains(keys, "isAuto")) { + this.store.changeIsAuto(obj.isAuto); + this.fontStyleGroup.setValue(obj.isAuto); + } + }, + + _formatContent: function (content) { + var editorService = BI.Services.getService("bi.service.design.chart.common.editor"); + + content = editorService.setImageSrc(content); + + if (editorService.isBlankRichText(content) + || editorService.isRichTextEqual(content, this.options.placeholder)) { + content = this.options.placeholder || ""; + } + + return content; + }, + + // 切换到“自动”时的处理方法 + _switchToAutoStyle: function () { + var editorService = BI.Services.getService("bi.service.design.chart.common.editor"), + content = this.editor.getValue(BI.NicEditor.FormatType.ESCAPE), + isEqualToPlaceholder = editorService.isRichTextEqual(content, this.options.placeholder); + + var HTML_ONLY_STYLE_TAG = "||||||||||||||||||||

"; + + if (!isEqualToPlaceholder) { + content = content.replaceAll(HTML_ONLY_STYLE_TAG, ""); + } + + return content; + }, + + clearPlaceholder: function () { + var editorService = BI.Services.getService("bi.service.design.chart.common.editor"); + var content = this.editor.getValue(BI.NicEditor.FormatType.ESCAPE); + var isSameContent = editorService.isRichTextEqual(content, this.options.placeholder); + + if (isSameContent) { + content = editorService.convertText2RichText("", this.options.fontStyle); + this.editor.setValue(content); + this.setFocus(); + } + }, + + setPlaceholder: function () { + var editorService = BI.Services.getService("bi.service.design.chart.common.editor"); + var content = this.editor.getValue(BI.NicEditor.FormatType.ESCAPE); + var isSameContent = editorService.isBlankRichText(content); + + if (isSameContent) { + this.editor.setValue(this.options.placeholder); + } + }, + + // 字体样式切换 + changeFontStyleMode: function (isAuto) { + var editorService = BI.Services.getService("bi.service.design.chart.common.editor"); + var switchFn = this.options.switchFn, + content = this.editor.getValue(BI.NicEditor.FormatType.ESCAPE), + origin = content; + if (isAuto) { + content = this._switchToAutoStyle(); + this.setFocus(); + } else if (editorService.isRichTextEqual(content, this.options.placeholder)) { + content = ""; + } + if (BI.isFunction(switchFn)) { + content = switchFn(isAuto, content); + } + if (content !== origin) { + this.editor.setValue(content); + } + }, + + setFocus: function () { + var instance = this.editor.instance; + instance && instance.initSelection(); + } + }); + + Widget.EVENT_CHANGE = "EVENT_CHANGE"; + + BI.shortcut("bi.design.chart.common.editor", Widget); + +}()); diff --git a/designer-chart/src/main/resources/com/fr/design/editor/script/editor.model.js b/designer-chart/src/main/resources/com/fr/design/editor/script/editor.model.js new file mode 100644 index 000000000..dbe278446 --- /dev/null +++ b/designer-chart/src/main/resources/com/fr/design/editor/script/editor.model.js @@ -0,0 +1,53 @@ +!(function () { + + var Model = BI.inherit(Fix.Model, { + childContext: ["isAuto", "dimensionIds"], + + state: function () { + var o = this.options; + + return { + isAuto: o.isAuto, + dimensionIds: o.dimensionIds, + isEditorBlur: true + }; + }, + + computed: { + fontStyleItems: function () { + return [{ + type: "bi.single_select_radio_item", + text: "自动", + hgap: 5, + logic: { + dynamic: true + }, + value: true, + selected: this.options.isAuto + }, { + type: "bi.single_select_radio_item", + text: "自定义", + hgap: 5, + logic: { + dynamic: true + }, + value: false, + selected: !this.options.isAuto + }]; + } + }, + + actions: { + changeIsAuto: function (isAuto) { + this.model.isAuto = isAuto; + }, + + setEditorBlurState: function (isBlur) { + this.model.isEditorBlur = isBlur; + } + } + }); + + BI.model("bi.model.design.chart.common.editor", Model); + +}()); diff --git a/designer-chart/src/main/resources/com/fr/design/editor/script/editor.service.js b/designer-chart/src/main/resources/com/fr/design/editor/script/editor.service.js new file mode 100644 index 000000000..87fa2bdf6 --- /dev/null +++ b/designer-chart/src/main/resources/com/fr/design/editor/script/editor.service.js @@ -0,0 +1,562 @@ +!(function () { + + /** + * HTML解析类,使用方法: + * new HTMLParser().parse(htmlText, { + * startTag: function (tagName, attrs) {}, + * endTag: function (tagName) {}, + * text: function (text) {} + * }) + */ + function HTMLParser () { + + } + + HTMLParser.prototype = { + constructor: HTMLParser, + + startTagPattern: /<([-\w\d_]+)\s*([^>]*)\s*(\/?)>/, + endTagPattern: /^<\/([-\w\d_]+)[^>]*>/, + attrPattern: /([-\w\d_]+)\s*=\s*["']([^"']*)["']/g, + // 特殊的字符 + specialCharsPatterns: [{ + pattern: / /g, + subStr: " " + }, { + pattern: /</g, + subStr: "<" + }, { + pattern: />/g, + subStr: ">" + }, { + pattern: /&/g, + subStr: "&" + }], + + handle: { + // 以下为处理开始标签和文本的时候触发的函数,可以自定义 + startTag: function () { + }, + endTag: function () { + }, + text: function () { + } + }, + + /** + * + * @param html + * @param handle + * @param isReplaceSpecialChars 是否需要替换HTML中的特殊字符 + */ + parse: function (html, handle, isReplaceSpecialChars) { + var index, isText = false, + match, last = html, + me = this; + + isReplaceSpecialChars = isReplaceSpecialChars !== null ? isReplaceSpecialChars : true; + + if (BI.isPlainObject(handle)) { + BI.isFunction(handle.startTag) && (this.handle.startTag = handle.startTag); + BI.isFunction(handle.endTag) && (this.handle.endTag = handle.endTag); + BI.isFunction(handle.text) && (this.handle.text = handle.text); + } + + while (html) { + isText = true; + + // 结束标签 + if (html.indexOf("'$%{}"]/.test(params)) { + return window.encodeURIComponent(params).replace(/'/g, escape); + } + return params; + }, + + decode: function (params) { + try { + var result = window.decodeURIComponent(params); + if (/[<>'$%{}"]/.test(result)) { + return result; + } + return params; + } catch (e) { + return params; + } + }, + + HTMLParser: HTMLParser, + + getImageAttr: getImageAttr, + + /** + * 构造一个富文本中的参数图片 + */ + getEditorParamImage: function (param, fillStyle) { + var attr = BI.DOM.getImage(param, fillStyle); + return "" + this.encode(attr.param)
+                + ""; + }, + + /** + * 给image设置属性 + */ + appendImageAttr: function (html, altValue, attrName, attrValue, isCovered) { + altValue = this.encode(altValue); + attrName = this.encode(attrName); + attrValue = this.encode(attrValue); + isCovered = isCovered || false; // 属性是否可以覆盖 + + return html.replaceAll("", function (imageStr) { + var attrs = getImageAttr(imageStr); + + if (attrs && attrs["alt"] === altValue && (BI.isNull(attrs[attrName]) || isCovered)) { + attrs[attrName] = attrValue; + imageStr = ""; + }); + + return { + startHtml: startHtml, + endHtml: endHtml + }; + }, + + /** + * 将富文本HTML转化成普通的文本,不需要记录fontStyle + */ + convertRichText2Text: function (html) { + var content = "", + line = "", + htmlFragments = []; + + new HTMLParser().parse(html, { + startTag: function (tagName, attrs) { + // 只关心br、img + switch (tagName) { + case "br": + line += "\n"; + htmlFragments.push(tagName); + break; + case "img": + BI.each(attrs, function (idx, obj) { + if (obj.name === "alt") { + line += "${" + obj.value + "}"; + } + }); + break; + default: + break; + } + }, + endTag: function (tagName) { + if (tagName === "div") { + //

这样的情况下应该只代表一个回车符 + htmlFragments[htmlFragments.length - 1] !== "br" && (line += "\n"); + htmlFragments = []; + } + + content += line; + line = ""; + }, + text: function (text) { + htmlFragments.push(text); + line += text; + } + }); + + // 去掉最后的换行符 + content = content.replace(/\n$/, ""); + + return content; + }, + + convertImage2Text: function (html) { + if (BI.isNull(html)) { + return html; + } + return html.replaceAll("", function (imageStr) { + var matched = imageStr.match(/alt="(.*?)"/); + var startHtml = ""; + var endHtml = ""; + return startHtml + (matched ? matched[1] : imageStr) + endHtml; + }); + }, + + isRichTextEqual: function (html1, html2) { + if (BI.isNotNull(html1)) { + html1 = this.convertImage2Text(html1); + } + if (BI.isNotNull(html2)) { + html2 = this.convertImage2Text(html2); + } + + return html1 === html2; + }, + + isRichTextNotEqual: function (html1, html2) { + return !this.isRichTextEqual(html1, html2); + }, + + isBlankRichText: function (html) { + html = html || ""; + html = this.convertRichText2Text(html); + return BI.trim(html).length === 0; + }, + + // 显示整个富文本中缺失的字段 + showMissingFields: function (html, validDimensionIds) { + var self = this; + + return html.replaceAll("", function (imageStr) { + var attrs = getImageAttr(imageStr); + return attrs && BI.contains(validDimensionIds, attrs[BICst.RICH_TEXT_INFO.DATA_ID]) + ? imageStr + : self.getMissingFieldImage( + attrs[BICst.RICH_TEXT_INFO.DATA_ID], + attrs[BICst.RICH_TEXT_INFO.DATA_NAME], + attrs[BICst.RICH_TEXT_INFO.ALT] + ); + }); + }, + + // 获取缺失元素的图片 + getMissingFieldImage: function (dId, name, fullName) { + var missingText = ""; + var missingImage = BI.DOM.getImage(missingText, "#ff0000"); + var html = this.getEditorParamImage(fullName, "#ff0000"); + + // 将原来的dId、name、fullName保存起来 + html = this.appendImageAttr(html, fullName, BICst.RICH_TEXT_INFO.DATA_ORIGIN_ID, dId); + html = this.appendImageAttr(html, fullName, BICst.RICH_TEXT_INFO.DATA_ORIGIN_NAME, name); + html = this.appendImageAttr(html, fullName, BICst.RICH_TEXT_INFO.DATA_ORIGIN_FULL_NAME, fullName); + html = this.appendImageAttr(html, fullName, BICst.RICH_TEXT_INFO.SRC, missingImage.src, true); + // 标记出这个参数是一个“缺失元素” + html = this.appendImageAttr(html, fullName, BICst.RICH_TEXT_INFO.DATA_IS_MISSING_FIELD, "true", true); + html = this.appendImageAttr(html, fullName, "style", missingImage.style, true); + return html; + }, + + // 将“缺失元素”替换成原来的字段 + restoreMissingField: function (html) { + var self = this; + + return html.replaceAll("", function (imageStr) { + var attrs = getImageAttr(imageStr); + + if (attrs && attrs[BICst.RICH_TEXT_INFO.DATA_ORIGIN_ID]) { + var fullName = attrs[BICst.RICH_TEXT_INFO.DATA_ORIGIN_FULL_NAME]; + var image = self.getEditorParamImage(fullName); + + image = self.appendImageAttr(image, fullName, BICst.RICH_TEXT_INFO.DATA_ID, attrs[BICst.RICH_TEXT_INFO.DATA_ORIGIN_ID]); + image = self.appendImageAttr(image, fullName, BICst.RICH_TEXT_INFO.DATA_NAME, attrs[BICst.RICH_TEXT_INFO.DATA_ORIGIN_NAME]); + return image; + } + + if (attrs + && attrs[BICst.RICH_TEXT_INFO.DATA_IS_INSERT_PARAM] + && !attrs[BICst.RICH_TEXT_INFO.DATA_ID] + ) { + imageStr = self.appendImageAttr( + imageStr, + attrs[BICst.RICH_TEXT_INFO.ALT], + BICst.RICH_TEXT_INFO.DATA_UN_VALID, + "true", + true + ); + } + + return imageStr; + }); + }, + + // 将富文本字符串中由用户主动插入的字段参数标记出来 + markTheInsertParamImages: function (html) { + return html.replaceAll("", function (imageStr) { + var attrs = getImageAttr(imageStr); + + // "缺失元素"和普通的字段参数直接过滤(从富文本编辑器中插入的参数只有data-id属性) + if (BI.has(attrs, BICst.RICH_TEXT_INFO.DATA_NAME) + || BI.has(attrs, BICst.RICH_TEXT_INFO.DATA_ORIGIN_ID)) { + return imageStr; + } + + attrs[BICst.RICH_TEXT_INFO.DATA_IS_INSERT_PARAM] = "true"; + imageStr = "", function (imageStr) { + var attrs = self.getImageAttr(imageStr); + // 已有src + if (BI.has(attrs, BICst.RICH_TEXT_INFO.SRC) && attrs[BICst.RICH_TEXT_INFO.SRC]) { + return imageStr; + } + var alt = self.decode(attrs[BICst.RICH_TEXT_INFO.ALT]); + var image = BI.DOM.getImage(alt); + imageStr = self.appendImageAttr(imageStr, alt, BICst.RICH_TEXT_INFO.SRC, image.src, true); + imageStr = self.appendImageAttr(imageStr, alt, "style", image.style, true); + return imageStr; + }); + }, + + isEmptyRichText: function (html) { + return "" === html.replaceAll("|

|
", ""); + }, + + // BI-23091 设置显示名之后更新参数名称 + getNewParamNameRichText: function (content) { + if (!content) { + return content; + } + var self = this; + return content.replaceAll("", function (imageStr) { + var attrs = self.getImageAttr(imageStr); + // 缺失元素 + if (attrs[BICst.RICH_TEXT_INFO.DATA_IS_MISSING_FIELD]) { + return imageStr; + } + var alt = attrs[BICst.RICH_TEXT_INFO.ALT], + dId = attrs[BICst.RICH_TEXT_INFO.DATA_ID], + name = BI.Utils.getNotGeoDimensionFullName(dId); + + if (name !== alt) { + imageStr = self.appendImageAttr(imageStr, alt, BICst.RICH_TEXT_INFO.ALT, name, true); + } + return imageStr; + }); + } + }); + + BI.service("bi.service.design.chart.common.editor", Service); + +}()); diff --git a/designer-chart/src/main/resources/com/fr/design/editor/script/insertcombo/combo.insert_param.js b/designer-chart/src/main/resources/com/fr/design/editor/script/insertcombo/combo.insert_param.js new file mode 100644 index 000000000..841860fc0 --- /dev/null +++ b/designer-chart/src/main/resources/com/fr/design/editor/script/insertcombo/combo.insert_param.js @@ -0,0 +1,114 @@ +!(function () { + var Widget = BI.inherit(BI.RichEditorParamAction, { + props: { + baseCls: "bi-design-chart-common-editor-insert-param", + dimensionIds: [], + editor: null + }, + + _store: function () { + return BI.Models.getModel("bi.model.design.chart.common.editor.insert_param"); + }, + + watch: { + isSelectedParam: function () { + var editorService = BI.Services.getService("bi.service.design.chart.common.editor"); + this.addParam(this.model.param, editorService.encode); + this.combo.hideView(); + // this._restorePosition(); + } + }, + + render: function () { + var self = this; + + var adapter = BI.createWidget({ + type: "bi.button_group", + items: this.model.items, + chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE, + behaviors: {}, + layouts: [{ + type: "bi.vertical" + }], + listeners: [{ + eventName: BI.ButtonGroup.EVENT_CHANGE, + action: function () { + self._savePosition(); + self.store.changeParam(this.getValue()[0]); + } + }] + }); + + var searchPopup = { + type: "bi.vertical", + cls: "bi-border", + hgap: 15, + tgap: 5, + bgap: 10, + items: [{ + type: "bi.searcher", + adapter: adapter, + width: 210, + height: 24, + listeners: [{ + eventName: BI.Searcher.EVENT_CHANGE, + action: function () { + self.store.changeParam(this.getValue()[0]); + } + }] + }, adapter] + }; + + return { + type: "bi.combo", + direction: "bottom,left", + isNeedAdjustWidth: false, + el: { + type: "bi.vertical_adapt", + items: [{ + type: "bi.icon_change_button", + iconCls: "editor-insert-param-inactivated-font", + iconWidth: 24, + iconHeight: 24, + ref: function (_ref) { + self.iconButtonTrigger = _ref; + } + }] + }, + popup: { + el: searchPopup + }, + ref: function (_ref) { + self.combo = _ref; + }, + listeners: [{ + eventName: BI.Combo.EVENT_AFTER_POPUPVIEW, + action: function () { + self.iconButtonTrigger.setIcon("editor-insert-param-active-font"); + } + }, { + eventName: BI.Combo.EVENT_BEFORE_HIDEVIEW, + action: function () { + self.iconButtonTrigger.setIcon("editor-insert-param-inactivated-font"); + } + }] + }; + }, + + _savePosition: function () { + var instance = this._getInstance(); + instance.saveRng(); + }, + + _restorePosition: function () { + var instance = this._getInstance(); + instance.initSelection(); + }, + + _getInstance: function () { + return this.options.editor.selectedInstance || this.options.editor.getInstance(); + } + }); + + BI.shortcut("bi.design.chart.common.editor.insert_param", Widget); +}()); \ No newline at end of file diff --git a/designer-chart/src/main/resources/com/fr/design/editor/script/insertcombo/combo.insert_param.model.js b/designer-chart/src/main/resources/com/fr/design/editor/script/insertcombo/combo.insert_param.model.js new file mode 100644 index 000000000..d0a8f084e --- /dev/null +++ b/designer-chart/src/main/resources/com/fr/design/editor/script/insertcombo/combo.insert_param.model.js @@ -0,0 +1,40 @@ +/* + * @Maintainers: xiaofu.qin + */ +!(function () { + + var Model = BI.inherit(Fix.Model, { + context: ["dimensionIds"], + + state: function () { + return { + param: "", + isSelectedParam: false + }; + }, + + computed: { + items: function () { + return BI.map(this.model.dimensionIds, function (idx, dId) { + var key = BI.keys(dId)[0]; + + return { + type: "bi.design.chart.common.editor.search", + text: key, + value: dId[key] + }; + }); + } + }, + + actions: { + changeParam: function (param) { + this.model.isSelectedParam = !this.model.isSelectedParam; + this.model.param = param; + } + } + }); + + BI.model("bi.model.design.chart.common.editor.insert_param", Model); + +} ()); diff --git a/designer-chart/src/main/resources/com/fr/design/editor/script/insertcombo/item/item.js b/designer-chart/src/main/resources/com/fr/design/editor/script/insertcombo/item/item.js new file mode 100644 index 000000000..bfd564441 --- /dev/null +++ b/designer-chart/src/main/resources/com/fr/design/editor/script/insertcombo/item/item.js @@ -0,0 +1,38 @@ +!(function () { + + var Widget = BI.inherit(BI.BasicButton, { + props: { + text: "", + iconCls: "", + extraCls: "bi-list-item-active" + }, + + render: function () { + var o = this.options; + return { + type: "bi.vertical_adapt", + height: 25, + items: [{ + type: "bi.center_adapt", + cls: o.iconCls, + items: [{ + type: "bi.icon", + width: 16, + height: 16 + }], + width: 16, + height: 16 + }, { + type: "bi.label", + textAlign: "left", + lgap: 5, + text: o.text, + value: o.text + }] + }; + } + }); + + BI.shortcut("bi.design.chart.common.editor.search", Widget); + +}()); \ No newline at end of file diff --git a/designer-chart/src/main/resources/com/fr/design/editor/script/toolbar/disabled_bar_wrapper.js b/designer-chart/src/main/resources/com/fr/design/editor/script/toolbar/disabled_bar_wrapper.js new file mode 100644 index 000000000..5b07ea39f --- /dev/null +++ b/designer-chart/src/main/resources/com/fr/design/editor/script/toolbar/disabled_bar_wrapper.js @@ -0,0 +1,22 @@ +/** + * 灰化toolbar的item + */ +!(function () { + + var Widget = BI.inherit(BI.Single, { + props: { + button: null + }, + + render: function () { + return { + type: "bi.vertical_adapt", + disabled: true, + items: [this.options.button] + }; + } + }); + + BI.shortcut("bi.design.chart.common.editor.toolbar.disabled_item_wrapper", Widget); + +}()); \ No newline at end of file diff --git a/designer-chart/src/main/resources/com/fr/design/editor/script/toolbar/toolbar.js b/designer-chart/src/main/resources/com/fr/design/editor/script/toolbar/toolbar.js new file mode 100644 index 000000000..4246ec9bc --- /dev/null +++ b/designer-chart/src/main/resources/com/fr/design/editor/script/toolbar/toolbar.js @@ -0,0 +1,124 @@ +!(function () { + var RichEditorTextToolbar = BI.inherit(BI.Widget, { + + props: { + baseCls: "bi-rich-editor-text-toolbar", + height: 25, + editor: null, + buttons: [ + {type: "bi.rich_editor_font_chooser"}, + {type: "bi.rich_editor_size_chooser"}, + {type: "bi.rich_editor_bold_button"}, + {type: "bi.rich_editor_italic_button"}, + {type: "bi.rich_editor_underline_button"}, + {type: "bi.rich_editor_color_chooser"}, + {type: "bi.rich_editor_align_left_button"}, + {type: "bi.rich_editor_align_center_button"}, + {type: "bi.rich_editor_align_right_button"}, + {type: "bi.design.chart.common.editor.insert_param"} + ] + }, + + _store: function () { + return BI.Models.getModel("bi.model.design.chart.common.editor.toolbar"); + }, + + watch: { + isAuto: function (isAuto) { + this[isAuto ? "hideCustomFontTool" : "showCustomFontTool"](); + } + }, + + render: function () { + var self = this, + o = this.options; + + this.hasInsertCombo = o.buttons[o.buttons.length - 1].type === "bi.design.chart.common.editor.insert_param"; + + this.buttons = BI.createWidgets(BI.map(o.buttons, function (i, btn) { + return BI.extend(btn, { + editor: o.editor + }); + })); + + if (this.hasInsertCombo) { + var leftItems = BI.filter(this.buttons, function (idx) { + return idx !== self.buttons.length - 1; + }); + return { + type: "bi.left_right_vertical_adapt", + lrgap: 10, + items: { + left: this._getButtons(leftItems), + right: [this.buttons[this.buttons.length - 1]] + } + }; + } + + return { + type: "bi.vertical_adapt", + rgap: 10, + items: this._getButtons(this.buttons) + }; + }, + + mounted: function () { + var self = this; + if (BI.isIE9Below()) {// IE8下必须要设置unselectable才能不blur输入框 + this.element.mousedown(function () { + self._noSelect(self.element[0]); + }); + this._noSelect(this.element[0]); + } + + this.model.isAuto && this.hideCustomFontTool(); + }, + + _noSelect: function (element) { + if (element.setAttribute && element.nodeName.toLowerCase() !== "input" && element.nodeName.toLowerCase() !== "textarea") { + element.setAttribute("unselectable", "on"); + } + for (var i = 0; i < element.childNodes.length; i++) { + this._noSelect(element.childNodes[i]); + } + }, + + hideCustomFontTool: function () { + var self = this; + BI.each(this.buttons, function (idx, button) { + if (self.hasInsertCombo) { + idx !== self.buttons.length - 1 && button.setVisible(false); + } else { + button.setVisible(false); + } + }); + }, + + showCustomFontTool: function () { + var self = this; + BI.each(this.buttons, function (idx, button) { + if (self.hasInsertCombo) { + idx !== self.buttons.length - 1 && button.setVisible(true); + } else { + button.setVisible(true); + } + }); + }, + + _getButtons: function (buttons) { + return BI.map(buttons, function (idx, button) { + if (button.options.used === false) { + return { + type: "bi.design.chart.common.editor.toolbar.disabled_item_wrapper", + button: button, + title: button.options.title + }; + } + + return button; + }); + } + }); + + BI.shortcut("bi.design.chart.common.editor.toolbar", RichEditorTextToolbar); +})(); \ No newline at end of file diff --git a/designer-chart/src/main/resources/com/fr/design/editor/script/toolbar/toolbar.model.js b/designer-chart/src/main/resources/com/fr/design/editor/script/toolbar/toolbar.model.js new file mode 100644 index 000000000..96e30eee4 --- /dev/null +++ b/designer-chart/src/main/resources/com/fr/design/editor/script/toolbar/toolbar.model.js @@ -0,0 +1,12 @@ +/* + * @Maintainers: xiaofu.qin + */ +!(function () { + + var Model = BI.inherit(Fix.Model, { + context: ["isAuto", "wId", "dimensionIds"] + }); + + BI.model("bi.model.design.chart.common.editor.toolbar", Model); + +} ()); \ No newline at end of file From d24aee2fa946497c7e4f56f334171cd4d4963730 Mon Sep 17 00:00:00 2001 From: "Qinghui.Liu" Date: Sat, 19 Sep 2020 19:46:27 +0800 Subject: [PATCH 03/17] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../box/VanChartBoxTooltipContentPane.java | 24 ++-- .../fr/van/chart/designer/PlotFactory.java | 4 +- .../VanChartRefreshTooltipContentPane.java | 32 ++--- .../component/VanChartTooltipContentPane.java | 122 ++++++++++++++++-- .../label/GaugeLabelContentPane.java | 3 +- .../label/LabelContentPaneWithCate.java | 2 +- .../label/LabelContentPaneWithCateValue.java | 4 +- .../label/LabelContentPaneWithOutCate.java | 6 +- .../label/LabelContentPaneWithPercent.java | 2 +- ...efreshTooltipContentPaneWithOutSeries.java | 28 ++-- .../TooltipContentPaneWithOutSeries.java | 12 +- .../style/VanChartFunnelLabelContentPane.java | 29 +++-- ...nChartFunnelRefreshTooltipContentPane.java | 28 ++-- .../VanChartFunnelTooltipContentPane.java | 28 ++-- .../VanChartGanttTooltipContentPane.java | 23 ++-- .../label/VanChartMapLabelContentPane.java | 16 +-- .../VanChartMapRefreshTooltipContentPane.java | 40 +++--- .../VanChartMapTooltipContentPane.java | 16 +-- .../VanChartLineMapTooltipContentPane.java | 19 ++- .../VanChartMultiPieLabelContentPane.java | 17 +-- .../VanChartMultiPieTooltipContentPane.java | 17 +-- ...ChartMutiPieRefreshTooltipContentPane.java | 32 ++--- ...ChartScatterRefreshTooltipContentPane.java | 22 ++-- .../VanChartScatterTooltipContentPane.java | 8 +- .../VanChartStructureLabelContentPane.java | 24 ++-- ...artStructureRefreshTooltipContentPane.java | 44 ++++--- .../VanChartStructureTooltipContentPane.java | 42 +++--- ...artWordCloudRefreshTooltipContentPane.java | 79 ++++++++++++ ...hartWordCloudRefreshTootipContentPane.java | 73 ----------- .../VanChartWordCloudTooltipContentPane.java | 26 ++-- 30 files changed, 480 insertions(+), 342 deletions(-) create mode 100644 designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/style/VanChartWordCloudRefreshTooltipContentPane.java delete mode 100644 designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/style/VanChartWordCloudRefreshTootipContentPane.java diff --git a/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java index 98dbbbb6e..d0dd67529 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java @@ -36,8 +36,8 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { } protected void initFormatPane(VanChartStylePane parent, JPanel showOnPane) { - categoryNameFormatPane = new CategoryNameFormatPaneWithCheckBox(parent, showOnPane); - seriesNameFormatPane = new SeriesNameFormatPaneWithCheckBox(parent, showOnPane); + setCategoryNameFormatPane(new CategoryNameFormatPaneWithCheckBox(parent, showOnPane)); + setSeriesNameFormatPane(new SeriesNameFormatPaneWithCheckBox(parent, showOnPane)); number = new VanChartFormatPaneWithCheckBox(parent, showOnPane) { protected String getCheckBoxText() { @@ -98,8 +98,8 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { double[] rowSize = {p, p}; Component[][] cateAndSeries = new Component[][]{ - new Component[]{categoryNameFormatPane, null}, - new Component[]{seriesNameFormatPane, null} + new Component[]{getCategoryNameFormatPane(), null}, + new Component[]{getSeriesNameFormatPane(), null} }; return TableLayoutHelper.createTableLayoutPane(cateAndSeries, rowSize, columnSize); @@ -152,8 +152,8 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { } public boolean isDirty() { - return categoryNameFormatPane.isDirty() - || seriesNameFormatPane.isDirty() + return getCategoryNameFormatPane().isDirty() + || getSeriesNameFormatPane().isDirty() || number.isDirty() || max.isDirty() || q3.isDirty() @@ -164,8 +164,8 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { } public void setDirty(boolean isDirty) { - categoryNameFormatPane.setDirty(isDirty); - seriesNameFormatPane.setDirty(isDirty); + getCategoryNameFormatPane().setDirty(isDirty); + getSeriesNameFormatPane().setDirty(isDirty); number.setDirty(isDirty); max.setDirty(isDirty); q3.setDirty(isDirty); @@ -180,8 +180,8 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { } protected void populateFormatPane(AttrTooltipContent attrTooltipContent) { - categoryNameFormatPane.populate(attrTooltipContent.getCategoryFormat()); - seriesNameFormatPane.populate(attrTooltipContent.getSeriesFormat()); + getCategoryNameFormatPane().populate(attrTooltipContent.getCategoryFormat()); + getSeriesNameFormatPane().populate(attrTooltipContent.getSeriesFormat()); if (attrTooltipContent instanceof AttrBoxTooltipContent) { AttrBoxTooltipContent boxTooltipContent = (AttrBoxTooltipContent) attrTooltipContent; @@ -199,8 +199,8 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { } protected void updateFormatPane(AttrTooltipContent attrTooltipContent) { - categoryNameFormatPane.update(attrTooltipContent.getCategoryFormat()); - seriesNameFormatPane.update(attrTooltipContent.getSeriesFormat()); + getCategoryNameFormatPane().update(attrTooltipContent.getCategoryFormat()); + getSeriesNameFormatPane().update(attrTooltipContent.getSeriesFormat()); if (attrTooltipContent instanceof AttrBoxTooltipContent) { AttrBoxTooltipContent boxTooltipContent = (AttrBoxTooltipContent) attrTooltipContent; 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 d3e1adbb9..3bddc1aed 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 @@ -56,7 +56,7 @@ import com.fr.van.chart.scatter.component.label.VanChartScatterPlotLabelPane; import com.fr.van.chart.structure.desinger.style.VanChartStructureLabelContentPane; import com.fr.van.chart.structure.desinger.style.VanChartStructureRefreshTooltipContentPane; import com.fr.van.chart.structure.desinger.style.VanChartStructureTooltipContentPane; -import com.fr.van.chart.wordcloud.designer.style.VanChartWordCloudRefreshTootipContentPane; +import com.fr.van.chart.wordcloud.designer.style.VanChartWordCloudRefreshTooltipContentPane; import com.fr.van.chart.wordcloud.designer.style.VanChartWordCloudTooltipContentPane; import javax.swing.BorderFactory; @@ -182,7 +182,7 @@ public class PlotFactory { refreshTooltipContentMap.put(VanChartMultiPiePlot.class, VanChartMutiPieRefreshTooltipContentPane.class); refreshTooltipContentMap.put(VanChartTreeMapPlot.class, VanChartMutiPieRefreshTooltipContentPane.class); refreshTooltipContentMap.put(VanChartFunnelPlot.class, VanChartFunnelRefreshTooltipContentPane.class); - refreshTooltipContentMap.put(VanChartWordCloudPlot.class, VanChartWordCloudRefreshTootipContentPane.class); + refreshTooltipContentMap.put(VanChartWordCloudPlot.class, VanChartWordCloudRefreshTooltipContentPane.class); refreshTooltipContentMap.put(VanChartStructurePlot.class, VanChartStructureRefreshTooltipContentPane.class); } diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRefreshTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRefreshTooltipContentPane.java index 18f50e143..09e208cc1 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRefreshTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRefreshTooltipContentPane.java @@ -26,37 +26,37 @@ public class VanChartRefreshTooltipContentPane extends VanChartTooltipContentPan protected void initFormatPane(VanChartStylePane parent, JPanel showOnPane) { super.initFormatPane(parent, showOnPane); - changedValueFormatPane = new ChangedValueFormatPaneWithCheckBox(parent, showOnPane); - changedPercentFormatPane = new ChangedPercentFormatPaneWithCheckBox(parent, showOnPane); + setChangedValueFormatPane(new ChangedValueFormatPaneWithCheckBox(parent, showOnPane)); + setChangedPercentFormatPane(new ChangedPercentFormatPaneWithCheckBox(parent, showOnPane)); } @Override protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { super.initRichTextFormatPane(parent, showOnPane); - richTextChangedValueFormatPane = new ChangedValueFormatPaneWithoutCheckBox(parent, showOnPane); - richTextChangedPercentFormatPane = new ChangedPercentFormatPaneWithoutCheckBox(parent, showOnPane); + setRichTextChangedValueFormatPane(new ChangedValueFormatPaneWithoutCheckBox(parent, showOnPane)); + setRichTextChangedPercentFormatPane(new ChangedPercentFormatPaneWithoutCheckBox(parent, showOnPane)); } protected Component[][] getPaneComponents(){ return new Component[][]{ - new Component[]{categoryNameFormatPane,null}, - new Component[]{seriesNameFormatPane,null}, - new Component[]{valueFormatPane,null}, - new Component[]{changedValueFormatPane,null}, - new Component[]{percentFormatPane,null}, - new Component[]{changedPercentFormatPane,null}, + new Component[]{getCategoryNameFormatPane(), null}, + new Component[]{getSeriesNameFormatPane(), null}, + new Component[]{getValueFormatPane(), null}, + new Component[]{getChangedValueFormatPane(), null}, + new Component[]{getPercentFormatPane(), null}, + new Component[]{getChangedPercentFormatPane(), null}, }; } protected Component[][] getRichTextComponents() { return new Component[][]{ - new Component[]{richTextCategoryNameFormatPane, null}, - new Component[]{richTextSeriesNameFormatPane, null}, - new Component[]{richTextValueFormatPane, null}, - new Component[]{richTextChangedValueFormatPane, null}, - new Component[]{richTextPercentFormatPane, null}, - new Component[]{richTextChangedPercentFormatPane, null} + new Component[]{getRichTextCategoryNameFormatPane(), null}, + new Component[]{getRichTextSeriesNameFormatPane(), null}, + new Component[]{getRichTextValueFormatPane(), null}, + new Component[]{getRichTextChangedValueFormatPane(), null}, + new Component[]{getRichTextPercentFormatPane(), null}, + new Component[]{getRichTextChangedPercentFormatPane(), null} }; } diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java index e8825f246..9889ee64a 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java @@ -51,23 +51,23 @@ public class VanChartTooltipContentPane extends BasicBeanPane content; + private UIButtonGroup content; - protected CategoryNameFormatPaneWithCheckBox categoryNameFormatPane; - protected SeriesNameFormatPaneWithCheckBox seriesNameFormatPane; - protected ValueFormatPaneWithCheckBox valueFormatPane; - protected PercentFormatPaneWithCheckBox percentFormatPane; + private CategoryNameFormatPaneWithCheckBox categoryNameFormatPane; + private SeriesNameFormatPaneWithCheckBox seriesNameFormatPane; + private ValueFormatPaneWithCheckBox valueFormatPane; + private PercentFormatPaneWithCheckBox percentFormatPane; //监控刷新时,自动数据点提示使用 - protected ChangedValueFormatPaneWithCheckBox changedValueFormatPane; - protected ChangedPercentFormatPaneWithCheckBox changedPercentFormatPane; + private ChangedValueFormatPaneWithCheckBox changedValueFormatPane; + private ChangedPercentFormatPaneWithCheckBox changedPercentFormatPane; - protected CategoryNameFormatPaneWithoutCheckBox richTextCategoryNameFormatPane; - protected SeriesNameFormatPaneWithoutCheckBox richTextSeriesNameFormatPane; - protected ValueFormatPaneWithoutCheckBox richTextValueFormatPane; - protected PercentFormatPaneWithoutCheckBox richTextPercentFormatPane; - protected ChangedValueFormatPaneWithoutCheckBox richTextChangedValueFormatPane; - protected ChangedPercentFormatPaneWithoutCheckBox richTextChangedPercentFormatPane; + private CategoryNameFormatPaneWithoutCheckBox richTextCategoryNameFormatPane; + private SeriesNameFormatPaneWithoutCheckBox richTextSeriesNameFormatPane; + private ValueFormatPaneWithoutCheckBox richTextValueFormatPane; + private PercentFormatPaneWithoutCheckBox richTextPercentFormatPane; + private ChangedValueFormatPaneWithoutCheckBox richTextChangedValueFormatPane; + private ChangedPercentFormatPaneWithoutCheckBox richTextChangedPercentFormatPane; private JPanel centerPanel; private JPanel commonPanel; @@ -82,6 +82,102 @@ public class VanChartTooltipContentPane extends BasicBeanPane Date: Sun, 20 Sep 2020 23:31:33 +0800 Subject: [PATCH 04/17] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/van/chart/designer/PlotFactory.java | 8 +- ...nChartLabelContentPaneWithoutRichText.java | 295 ++++++++++++++++++ .../component/VanChartTooltipContentPane.java | 24 +- .../label/GaugeLabelContentPane.java | 4 +- ...hartGaugeCateOrPercentLabelDetailPane.java | 4 +- .../label/VanChartGaugeLabelDetailPane.java | 8 +- .../label/VanChartGaugePlotLabelPane.java | 14 +- .../VanChartGaugeValueLabelDetailPane.java | 6 +- .../label/VanChartPlotLabelDetailPane.java | 24 +- .../label/VanChartPlotLabelNoCheckPane.java | 6 +- .../style/label/VanChartPlotLabelPane.java | 41 ++- .../style/VanChartGanttLabelContentPane.java | 20 -- .../label/VanChartGanttLabelContentPane.java | 121 +++++++ .../VanChartGanttPlotLabelDetailPane.java | 16 + .../label/VanChartGanttPlotLabelPane.java | 20 ++ .../VanChartDateFormatPaneWithCheckBox.java | 18 ++ ...VanChartDateFormatPaneWithoutCheckBox.java | 18 ++ .../VanChartFormatComBoxWithCheckBox.java | 100 ++++++ .../VanChartFormatComBoxWithoutCheckBox.java | 8 + .../VanChartGanttTooltipContentPane.java | 131 +++----- .../VanChartScatterPlotLabelDetailPane.java | 2 +- .../VanChartScatterPlotLabelNoCheckPane.java | 6 +- .../label/VanChartScatterPlotLabelPane.java | 5 +- .../VanChartStructureLabelContentPane.java | 4 +- .../VanChartStructurePlotLabelDetailPane.java | 16 + .../style/VanChartStructurePlotLabelPane.java | 20 ++ 26 files changed, 775 insertions(+), 164 deletions(-) create mode 100644 designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartLabelContentPaneWithoutRichText.java delete mode 100644 designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/VanChartGanttLabelContentPane.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/label/VanChartGanttLabelContentPane.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/label/VanChartGanttPlotLabelDetailPane.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/label/VanChartGanttPlotLabelPane.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartDateFormatPaneWithCheckBox.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartDateFormatPaneWithoutCheckBox.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartFormatComBoxWithCheckBox.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartFormatComBoxWithoutCheckBox.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructurePlotLabelDetailPane.java create mode 100644 designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructurePlotLabelPane.java 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 3bddc1aed..aeaefa5b3 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 @@ -38,7 +38,7 @@ import com.fr.van.chart.designer.style.tooltip.VanChartPlotTooltipPane; import com.fr.van.chart.funnel.designer.style.VanChartFunnelLabelContentPane; import com.fr.van.chart.funnel.designer.style.VanChartFunnelRefreshTooltipContentPane; import com.fr.van.chart.funnel.designer.style.VanChartFunnelTooltipContentPane; -import com.fr.van.chart.gantt.designer.style.VanChartGanttLabelContentPane; +import com.fr.van.chart.gantt.designer.style.label.VanChartGanttPlotLabelPane; import com.fr.van.chart.gantt.designer.style.tooltip.VanChartGanttPlotTooltipPane; import com.fr.van.chart.gantt.designer.style.tooltip.VanChartGanttTooltipContentPane; import com.fr.van.chart.gauge.VanChartGaugePlotRefreshTooltipPane; @@ -53,7 +53,7 @@ import com.fr.van.chart.multilayer.style.VanChartMutiPieRefreshTooltipContentPan import com.fr.van.chart.scatter.VanChartScatterPlotTooltipPane; import com.fr.van.chart.scatter.VanChartScatterRefreshTooltipContentPane; import com.fr.van.chart.scatter.component.label.VanChartScatterPlotLabelPane; -import com.fr.van.chart.structure.desinger.style.VanChartStructureLabelContentPane; +import com.fr.van.chart.structure.desinger.style.VanChartStructurePlotLabelPane; import com.fr.van.chart.structure.desinger.style.VanChartStructureRefreshTooltipContentPane; import com.fr.van.chart.structure.desinger.style.VanChartStructureTooltipContentPane; import com.fr.van.chart.wordcloud.designer.style.VanChartWordCloudRefreshTooltipContentPane; @@ -98,6 +98,8 @@ public class PlotFactory { labelMap.put(VanChartGaugePlot.class, VanChartGaugePlotLabelPane.class); labelMap.put(VanChartScatterPlot.class, VanChartScatterPlotLabelPane.class); labelMap.put(VanChartBubblePlot.class, VanChartScatterPlotLabelPane.class); + labelMap.put(VanChartGanttPlot.class, VanChartGanttPlotLabelPane.class); + labelMap.put(VanChartStructurePlot.class, VanChartStructurePlotLabelPane.class); } /** @@ -139,8 +141,6 @@ public class PlotFactory { labelContentMap.put(VanChartTreeMapPlot.class, VanChartMultiPieLabelContentPane.class); labelContentMap.put(VanChartFunnelPlot.class, VanChartFunnelLabelContentPane.class); labelContentMap.put(VanChartHeatMapPlot.class, VanChartMapLabelContentPane.class); - labelContentMap.put(VanChartGanttPlot.class, VanChartGanttLabelContentPane.class); - labelContentMap.put(VanChartStructurePlot.class, VanChartStructureLabelContentPane.class); } private static Map, Class> tooltipContentMap = new HashMap, Class>(); diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartLabelContentPaneWithoutRichText.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartLabelContentPaneWithoutRichText.java new file mode 100644 index 000000000..4c1935eef --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartLabelContentPaneWithoutRichText.java @@ -0,0 +1,295 @@ +package com.fr.van.chart.designer.component; + +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.gui.ibutton.UIButtonGroup; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.i18n.Toolkit; +import com.fr.design.layout.TableLayout; +import com.fr.design.layout.TableLayoutHelper; +import com.fr.plugin.chart.base.AttrTooltipContent; +import com.fr.van.chart.designer.TableLayout4VanChartHelper; +import com.fr.van.chart.designer.component.format.CategoryNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ChangedPercentFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ChangedValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.PercentFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.ValueFormatPaneWithCheckBox; +import com.fr.van.chart.designer.style.VanChartStylePane; + +import javax.swing.JPanel; +import java.awt.BorderLayout; +import java.awt.CardLayout; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class VanChartLabelContentPaneWithoutRichText extends BasicBeanPane { + + private UIButtonGroup content; + + private ValueFormatPaneWithCheckBox valueFormatPane; + private PercentFormatPaneWithCheckBox percentFormatPane; + private CategoryNameFormatPaneWithCheckBox categoryNameFormatPane; + private SeriesNameFormatPaneWithCheckBox seriesNameFormatPane; + + //监控刷新时,自动数据点提示使用 + private ChangedValueFormatPaneWithCheckBox changedValueFormatPane; + private ChangedPercentFormatPaneWithCheckBox changedPercentFormatPane; + + private JPanel centerPane; + private JPanel commonPanel; + private VanChartHtmlLabelPane htmlLabelPane; + + private VanChartStylePane parent; + private JPanel showOnPane; + + public VanChartLabelContentPaneWithoutRichText(VanChartStylePane parent, JPanel showOnPane) { + this.parent = parent; + this.showOnPane = showOnPane; + + this.setLayout(new BorderLayout()); + this.add(createLabelContentPane(), BorderLayout.CENTER); + } + + public ValueFormatPaneWithCheckBox getValueFormatPane() { + return valueFormatPane; + } + + public void setValueFormatPane(ValueFormatPaneWithCheckBox valueFormatPane) { + this.valueFormatPane = valueFormatPane; + } + + public PercentFormatPaneWithCheckBox getPercentFormatPane() { + return percentFormatPane; + } + + public void setPercentFormatPane(PercentFormatPaneWithCheckBox percentFormatPane) { + this.percentFormatPane = percentFormatPane; + } + + public CategoryNameFormatPaneWithCheckBox getCategoryNameFormatPane() { + return categoryNameFormatPane; + } + + public void setCategoryNameFormatPane(CategoryNameFormatPaneWithCheckBox categoryNameFormatPane) { + this.categoryNameFormatPane = categoryNameFormatPane; + } + + public SeriesNameFormatPaneWithCheckBox getSeriesNameFormatPane() { + return seriesNameFormatPane; + } + + public void setSeriesNameFormatPane(SeriesNameFormatPaneWithCheckBox seriesNameFormatPane) { + this.seriesNameFormatPane = seriesNameFormatPane; + } + + private JPanel createLabelContentPane() { + content = new UIButtonGroup(new String[]{ + Toolkit.i18nText("Fine-Design_Chart_Common"), + Toolkit.i18nText("Fine-Design_Chart_Custom") + }); + + initFormatPane(parent, showOnPane); + + double p = TableLayout.PREFERRED; + double f = TableLayout.FILL; + double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH; + + commonPanel = createCommonPanel(); + htmlLabelPane = createHtmlLabelPane(); + htmlLabelPane.setParent(parent); + + centerPane = new JPanel(new CardLayout()) { + @Override + public Dimension getPreferredSize() { + if (content.getSelectedIndex() == 0) { + return commonPanel.getPreferredSize(); + } else { + return new Dimension(commonPanel.getPreferredSize().width, htmlLabelPane.getPreferredSize().height); + } + } + }; + centerPane.add(htmlLabelPane, Toolkit.i18nText("Fine-Design_Chart_Custom")); + centerPane.add(commonPanel, Toolkit.i18nText("Fine-Design_Chart_Common")); + + double[] column = {f, e}; + double[] row = {p, p, p}; + Component[][] components = new Component[][]{ + new Component[]{null, null}, + new Component[]{new UILabel(getLabelContentTitle()), content}, + new Component[]{null, centerPane}, + }; + initContentListener(); + JPanel contentPane = TableLayout4VanChartHelper.createGapTableLayoutPane(components, row, column); + return getLabelContentPane(contentPane); + } + + protected String getLabelContentTitle() { + return Toolkit.i18nText("Fine-Design_Report_Text"); + } + + protected JPanel getLabelContentPane(JPanel contentPane) { + return createTableLayoutPaneWithTitle(Toolkit.i18nText("Fine-Design_Chart_Content"), contentPane); + } + + protected VanChartHtmlLabelPane createHtmlLabelPane() { + return new VanChartHtmlLabelPane(); + } + + protected JPanel createCommonPanel() { + double p = TableLayout.PREFERRED; + double f = TableLayout.FILL; + + double[] columnSize = {f, p}; + double[] rowSize = getRowSize(p); + + return TableLayoutHelper.createTableLayoutPane(getPaneComponents(), rowSize, columnSize); + } + + protected void initFormatPane(VanChartStylePane parent, JPanel showOnPane) { + categoryNameFormatPane = new CategoryNameFormatPaneWithCheckBox(parent, showOnPane); + seriesNameFormatPane = new SeriesNameFormatPaneWithCheckBox(parent, showOnPane); + valueFormatPane = new ValueFormatPaneWithCheckBox(parent, showOnPane); + percentFormatPane = new PercentFormatPaneWithCheckBox(parent, showOnPane); + } + + protected JPanel createTableLayoutPaneWithTitle(String title, JPanel panel) { + return TableLayout4VanChartHelper.createExpandablePaneWithTitle(title, panel); + } + + protected double[] getRowSize(double p) { + return new double[]{p, p, p, p}; + } + + protected Component[][] getPaneComponents() { + return new Component[][]{ + new Component[]{categoryNameFormatPane, null}, + new Component[]{seriesNameFormatPane, null}, + new Component[]{valueFormatPane, null}, + new Component[]{percentFormatPane, null}, + }; + } + + private void initContentListener() { + content.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + checkCardPane(); + } + }); + } + + + private void checkCardPane() { + CardLayout cardLayout = (CardLayout) centerPane.getLayout(); + if (content.getSelectedIndex() == 1) { + cardLayout.show(centerPane, Toolkit.i18nText("Fine-Design_Chart_Custom")); + if (isDirty()) { + setCustomFormatterText(); + setDirty(false); + } + } else { + cardLayout.show(centerPane, Toolkit.i18nText("Fine-Design_Chart_Common")); + } + } + + protected void setCustomFormatterText() { + htmlLabelPane.setCustomFormatterText(updateBean().getFormatterTextFromCommon()); + } + + public boolean isDirty() { + return categoryNameFormatPane.isDirty() || seriesNameFormatPane.isDirty() || valueFormatPane.isDirty() || percentFormatPane.isDirty() + || (changedValueFormatPane != null && changedValueFormatPane.isDirty()) || (changedValueFormatPane != null && changedPercentFormatPane.isDirty()); + } + + public void setDirty(boolean isDirty) { + categoryNameFormatPane.setDirty(isDirty); + seriesNameFormatPane.setDirty(isDirty); + valueFormatPane.setDirty(isDirty); + percentFormatPane.setDirty(isDirty); + + if (changedValueFormatPane != null) { + changedValueFormatPane.setDirty(isDirty); + } + if (changedPercentFormatPane != null) { + changedPercentFormatPane.setDirty(isDirty); + } + } + + @Override + protected String title4PopupWindow() { + return ""; + } + + + @Override + public void populateBean(AttrTooltipContent attrTooltipContent) { + if (attrTooltipContent == null) { + return; + } + + content.setSelectedIndex(attrTooltipContent.isCommon() ? 0 : 1); + + populateFormatPane(attrTooltipContent); + + htmlLabelPane.populate(attrTooltipContent.getHtmlLabel()); + if (!attrTooltipContent.isCommon()) { + setDirty(false); + } + checkCardPane(); + } + + protected void populateFormatPane(AttrTooltipContent attrTooltipContent) { + categoryNameFormatPane.populate(attrTooltipContent.getCategoryFormat()); + seriesNameFormatPane.populate(attrTooltipContent.getSeriesFormat()); + valueFormatPane.populate(attrTooltipContent.getValueFormat()); + percentFormatPane.populate(attrTooltipContent.getPercentFormat()); + + if (changedValueFormatPane != null) { + changedValueFormatPane.populate(attrTooltipContent.getChangedValueFormat()); + } + if (changedPercentFormatPane != null) { + changedPercentFormatPane.populate(attrTooltipContent.getChangedPercentFormat()); + } + } + + public AttrTooltipContent updateBean() { + AttrTooltipContent attrTooltipContent = createAttrTooltip(); + + attrTooltipContent.setCommon(content.getSelectedIndex() == 0); + + updateFormatPane(attrTooltipContent); + + updateFormatsWithPaneWidth(attrTooltipContent); + + htmlLabelPane.update(attrTooltipContent.getHtmlLabel()); + + return attrTooltipContent; + } + + protected AttrTooltipContent createAttrTooltip() { + return new AttrTooltipContent(); + } + + protected void updateFormatPane(AttrTooltipContent attrTooltipContent) { + categoryNameFormatPane.update(attrTooltipContent.getCategoryFormat()); + seriesNameFormatPane.update(attrTooltipContent.getSeriesFormat()); + valueFormatPane.update(attrTooltipContent.getValueFormat()); + percentFormatPane.update(attrTooltipContent.getPercentFormat()); + + if (changedValueFormatPane != null) { + changedValueFormatPane.update(attrTooltipContent.getChangedValueFormat()); + } + if (changedPercentFormatPane != null) { + changedPercentFormatPane.update(attrTooltipContent.getChangedPercentFormat()); + } + } + + private void updateFormatsWithPaneWidth(AttrTooltipContent attrTooltipContent) { + int paneWidth = seriesNameFormatPane.getWidth(); + if (paneWidth == 0) { + attrTooltipContent.getSeriesFormat().setEnable(false); + } + } +} diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java index 9889ee64a..76148e649 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java @@ -82,6 +82,18 @@ public class VanChartTooltipContentPane extends BasicBeanPane dataLabelContentPane; + private BasicBeanPane dataLabelContentPane; - protected UIButtonGroup position; - protected UIButtonGroup autoAdjust; - protected UIToggleButton tractionLine; + private UIButtonGroup position; + private UIButtonGroup autoAdjust; + private UIToggleButton tractionLine; - protected ColorSelectBox backgroundColor; + private ColorSelectBox backgroundColor; private JPanel tractionLinePane; private JPanel positionPane; private Integer[] oldPositionValues; - protected VanChartStylePane parent; + private VanChartStylePane parent; private Plot plot; public VanChartPlotLabelDetailPane(Plot plot, VanChartStylePane parent) { @@ -59,6 +59,18 @@ public class VanChartPlotLabelDetailPane extends BasicPane { initLabelDetailPane(plot); } + public BasicBeanPane getDataLabelContentPane() { + return dataLabelContentPane; + } + + public void setDataLabelContentPane(BasicBeanPane dataLabelContentPane) { + this.dataLabelContentPane = dataLabelContentPane; + } + + public VanChartStylePane getParentPane() { + return parent; + } + protected void initLabelDetailPane (Plot plot) { this.setLayout(new BorderLayout()); initToolTipContentPane(plot); diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelNoCheckPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelNoCheckPane.java index 95eb30204..beb89e5d7 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelNoCheckPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelNoCheckPane.java @@ -19,12 +19,12 @@ public class VanChartPlotLabelNoCheckPane extends VanChartPlotLabelPane { protected void addComponents() { this.setLayout(new BorderLayout()); - this.add(labelPane,BorderLayout.CENTER); + this.add(getLabelPane(),BorderLayout.CENTER); } public void populate(AttrLabel attr) { super.populate(attr); - isLabelShow.setSelected(true); - labelPane.setVisible(true); + getLabelShowCheckBox().setSelected(true); + getLabelPane().setVisible(true); } } \ No newline at end of file diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelPane.java index e0a007dd2..f1fa6f0f1 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelPane.java @@ -3,6 +3,7 @@ package com.fr.van.chart.designer.style.label; import com.fr.chart.chartattr.Plot; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; @@ -19,24 +20,52 @@ import java.awt.event.ActionListener; public class VanChartPlotLabelPane extends BasicPane { private static final long serialVersionUID = -1701936672446232396L; - protected UICheckBox isLabelShow; + private UICheckBox isLabelShow; - protected VanChartPlotLabelDetailPane labelDetailPane; + private VanChartPlotLabelDetailPane labelDetailPane; - protected VanChartStylePane parent; - protected Plot plot; + private VanChartStylePane parent; + private Plot plot; - protected JPanel labelPane; + private JPanel labelPane; public VanChartPlotLabelPane(Plot plot, VanChartStylePane parent) { this.parent = parent; this.plot = plot; - isLabelShow = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Use_Label")); + isLabelShow = new UICheckBox(Toolkit.i18nText("Fine-Design_Chart_Use_Label")); labelPane = new JPanel(new BorderLayout(0, 4)); createLabelPane(); addComponents(); } + public UICheckBox getLabelShowCheckBox() { + return isLabelShow; + } + + public VanChartPlotLabelDetailPane getLabelDetailPane() { + return labelDetailPane; + } + + public void setLabelDetailPane(VanChartPlotLabelDetailPane labelDetailPane) { + this.labelDetailPane = labelDetailPane; + } + + public VanChartStylePane getParentPane() { + return parent; + } + + public Plot getPlot() { + return plot; + } + + public JPanel getLabelPane() { + return labelPane; + } + + public void setLabelPane(JPanel labelPane) { + this.labelPane = labelPane; + } + protected void createLabelPane() { labelDetailPane = new VanChartPlotLabelDetailPane(this.plot, this.parent); labelPane.add(labelDetailPane, BorderLayout.CENTER); diff --git a/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/VanChartGanttLabelContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/VanChartGanttLabelContentPane.java deleted file mode 100644 index fe4b2e80a..000000000 --- a/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/VanChartGanttLabelContentPane.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.fr.van.chart.gantt.designer.style; - -import com.fr.van.chart.designer.component.VanChartHtmlLabelPane; -import com.fr.van.chart.designer.style.VanChartStylePane; -import com.fr.van.chart.gantt.designer.style.tooltip.VanChartGanttTooltipContentPane; - -import javax.swing.JPanel; - -/** - * Created by hufan on 2017/1/13. - */ -public class VanChartGanttLabelContentPane extends VanChartGanttTooltipContentPane { - public VanChartGanttLabelContentPane(VanChartStylePane parent, JPanel showOnPane) { - super(parent, showOnPane); - } - - protected VanChartHtmlLabelPane createHtmlLabelPane() { - return new VanChartHtmlLabelPane(); - } -} diff --git a/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/label/VanChartGanttLabelContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/label/VanChartGanttLabelContentPane.java new file mode 100644 index 000000000..54ab3fd1f --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/label/VanChartGanttLabelContentPane.java @@ -0,0 +1,121 @@ +package com.fr.van.chart.gantt.designer.style.label; + +import com.fr.design.i18n.Toolkit; +import com.fr.plugin.chart.base.AttrTooltipContent; +import com.fr.plugin.chart.gantt.attr.AttrGanttTooltipContent; +import com.fr.van.chart.designer.component.VanChartLabelContentPaneWithoutRichText; +import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.VanChartFormatPaneWithCheckBox; +import com.fr.van.chart.designer.style.VanChartStylePane; +import com.fr.van.chart.gantt.designer.style.tooltip.VanChartDateFormatPaneWithCheckBox; +import com.fr.van.chart.gantt.designer.style.tooltip.VanChartFormatComBoxWithCheckBox; + +import javax.swing.JPanel; +import java.awt.Component; + +/** + * Created by hufan on 2017/1/13. + */ +public class VanChartGanttLabelContentPane extends VanChartLabelContentPaneWithoutRichText { + + private VanChartFormatPaneWithCheckBox processesFormatPane; + private VanChartDateFormatPaneWithCheckBox startTimeFormatPane; + private VanChartDateFormatPaneWithCheckBox endTimeFormatPane; + private VanChartFormatComBoxWithCheckBox durationFormatPane; + private VanChartFormatPaneWithCheckBox progressFormatPane; + + public VanChartGanttLabelContentPane(VanChartStylePane parent, JPanel showOnPane) { + super(parent, showOnPane); + } + + protected void initFormatPane(VanChartStylePane parent, JPanel showOnPane) { + processesFormatPane = new VanChartFormatPaneWithCheckBox(parent, showOnPane) { + @Override + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Project_Name"); + } + }; + setSeriesNameFormatPane(new SeriesNameFormatPaneWithCheckBox(parent, showOnPane)); + startTimeFormatPane = new VanChartDateFormatPaneWithCheckBox(parent, showOnPane) { + @Override + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Start_Time"); + } + }; + endTimeFormatPane = new VanChartDateFormatPaneWithCheckBox(parent, showOnPane) { + @Override + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_End_Time"); + } + }; + durationFormatPane = new VanChartFormatComBoxWithCheckBox(); + progressFormatPane = new VanChartFormatPaneWithCheckBox(parent, showOnPane) { + @Override + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Process"); + } + }; + } + + protected Component[][] getPaneComponents() { + return new Component[][]{ + new Component[]{processesFormatPane, null}, + new Component[]{getSeriesNameFormatPane(), null}, + new Component[]{startTimeFormatPane, null}, + new Component[]{endTimeFormatPane, null}, + new Component[]{durationFormatPane, null}, + new Component[]{progressFormatPane, null} + }; + } + + protected double[] getRowSize(double p) { + return new double[]{p, p, p, p, p, p}; + } + + @Override + protected void populateFormatPane(AttrTooltipContent attrTooltipContent) { + if (attrTooltipContent instanceof AttrGanttTooltipContent) { + AttrGanttTooltipContent ganttTooltipContent = (AttrGanttTooltipContent) attrTooltipContent; + processesFormatPane.populate(ganttTooltipContent.getProcessesFormat()); + getSeriesNameFormatPane().populate(ganttTooltipContent.getSeriesFormat()); + startTimeFormatPane.populate(ganttTooltipContent.getStartTimeFormat()); + endTimeFormatPane.populate(ganttTooltipContent.getEndTimeFormat()); + durationFormatPane.populate(ganttTooltipContent.getDurationFormat()); + progressFormatPane.populate(ganttTooltipContent.getProgressFormat()); + } + } + + protected void updateFormatPane(AttrTooltipContent attrTooltipContent) { + if (attrTooltipContent instanceof AttrGanttTooltipContent) { + AttrGanttTooltipContent ganttTooltipContent = (AttrGanttTooltipContent) attrTooltipContent; + processesFormatPane.update(ganttTooltipContent.getProcessesFormat()); + getSeriesNameFormatPane().update(ganttTooltipContent.getSeriesFormat()); + startTimeFormatPane.update(ganttTooltipContent.getStartTimeFormat()); + endTimeFormatPane.update(ganttTooltipContent.getEndTimeFormat()); + durationFormatPane.update(ganttTooltipContent.getDurationFormat()); + progressFormatPane.update(ganttTooltipContent.getProgressFormat()); + } + } + + public boolean isDirty() { + return processesFormatPane.isDirty() + || getSeriesNameFormatPane().isDirty() + || startTimeFormatPane.isDirty() + || endTimeFormatPane.isDirty() + || durationFormatPane.isDirty() + || progressFormatPane.isDirty(); + } + + public void setDirty(boolean isDirty) { + processesFormatPane.setDirty(isDirty); + getSeriesNameFormatPane().setDirty(isDirty); + startTimeFormatPane.setDirty(isDirty); + endTimeFormatPane.setDirty(isDirty); + durationFormatPane.setDirty(isDirty); + progressFormatPane.setDirty(isDirty); + } + + protected AttrTooltipContent createAttrTooltip() { + return new AttrGanttTooltipContent(); + } +} diff --git a/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/label/VanChartGanttPlotLabelDetailPane.java b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/label/VanChartGanttPlotLabelDetailPane.java new file mode 100644 index 000000000..e00e0afd4 --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/label/VanChartGanttPlotLabelDetailPane.java @@ -0,0 +1,16 @@ +package com.fr.van.chart.gantt.designer.style.label; + +import com.fr.chart.chartattr.Plot; +import com.fr.van.chart.designer.style.VanChartStylePane; +import com.fr.van.chart.designer.style.label.VanChartPlotLabelDetailPane; + +public class VanChartGanttPlotLabelDetailPane extends VanChartPlotLabelDetailPane { + + public VanChartGanttPlotLabelDetailPane(Plot plot, VanChartStylePane parent) { + super(plot, parent); + } + + protected void initToolTipContentPane(Plot plot) { + setDataLabelContentPane(new VanChartGanttLabelContentPane(getParentPane(), VanChartGanttPlotLabelDetailPane.this)); + } +} diff --git a/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/label/VanChartGanttPlotLabelPane.java b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/label/VanChartGanttPlotLabelPane.java new file mode 100644 index 000000000..546f772dd --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/label/VanChartGanttPlotLabelPane.java @@ -0,0 +1,20 @@ +package com.fr.van.chart.gantt.designer.style.label; + +import com.fr.chart.chartattr.Plot; +import com.fr.van.chart.designer.style.VanChartStylePane; +import com.fr.van.chart.designer.style.label.VanChartPlotLabelPane; + +import java.awt.BorderLayout; + +public class VanChartGanttPlotLabelPane extends VanChartPlotLabelPane { + + public VanChartGanttPlotLabelPane(Plot plot, VanChartStylePane parent) { + super(plot, parent); + } + + protected void createLabelPane() { + VanChartGanttPlotLabelDetailPane labelDetailPane = new VanChartGanttPlotLabelDetailPane(getPlot(), getParentPane()); + setLabelDetailPane(labelDetailPane); + getLabelPane().add(labelDetailPane, BorderLayout.CENTER); + } +} diff --git a/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartDateFormatPaneWithCheckBox.java b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartDateFormatPaneWithCheckBox.java new file mode 100644 index 000000000..7ed6e93bc --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartDateFormatPaneWithCheckBox.java @@ -0,0 +1,18 @@ +package com.fr.van.chart.gantt.designer.style.tooltip; + +import com.fr.design.gui.style.FormatPane; +import com.fr.van.chart.designer.PlotFactory; +import com.fr.van.chart.designer.component.format.VanChartFormatPaneWithCheckBox; +import com.fr.van.chart.designer.style.VanChartStylePane; + +import javax.swing.JPanel; + +public abstract class VanChartDateFormatPaneWithCheckBox extends VanChartFormatPaneWithCheckBox { + public VanChartDateFormatPaneWithCheckBox(VanChartStylePane parent, JPanel showOnPane) { + super(parent, showOnPane); + } + + protected FormatPane createFormatPane(){ + return PlotFactory.createAutoFormatPane(); + } +} diff --git a/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartDateFormatPaneWithoutCheckBox.java b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartDateFormatPaneWithoutCheckBox.java new file mode 100644 index 000000000..ee395284a --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartDateFormatPaneWithoutCheckBox.java @@ -0,0 +1,18 @@ +package com.fr.van.chart.gantt.designer.style.tooltip; + +import com.fr.design.gui.style.FormatPane; +import com.fr.van.chart.designer.PlotFactory; +import com.fr.van.chart.designer.component.format.VanChartFormatPaneWithoutCheckBox; +import com.fr.van.chart.designer.style.VanChartStylePane; + +import javax.swing.JPanel; + +public abstract class VanChartDateFormatPaneWithoutCheckBox extends VanChartFormatPaneWithoutCheckBox { + public VanChartDateFormatPaneWithoutCheckBox(VanChartStylePane parent, JPanel showOnPane) { + super(parent, showOnPane); + } + + protected FormatPane createFormatPane() { + return PlotFactory.createAutoFormatPane(); + } +} diff --git a/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartFormatComBoxWithCheckBox.java b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartFormatComBoxWithCheckBox.java new file mode 100644 index 000000000..95da8ea98 --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartFormatComBoxWithCheckBox.java @@ -0,0 +1,100 @@ +package com.fr.van.chart.gantt.designer.style.tooltip; + +import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.gui.icombobox.UIComboBox; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.i18n.Toolkit; +import com.fr.plugin.chart.base.format.AttrTooltipDurationFormat; +import com.fr.plugin.chart.base.format.AttrTooltipFormat; +import com.fr.plugin.chart.base.format.IntervalTimeFormat; + +import javax.swing.JPanel; +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.util.Map; + +public class VanChartFormatComBoxWithCheckBox extends JPanel { + private static final String LABEL_TEXT = Toolkit.i18nText("Fine-Design_Chart_Duration_Time"); + + private UICheckBox isSelectedBox; + private UIComboBox formatComBox; + + private boolean isDirty; + + public VanChartFormatComBoxWithCheckBox() { + this.setLayout(new BorderLayout()); + isSelectedBox = new UICheckBox(LABEL_TEXT); + formatComBox = new UIComboBox(IntervalTimeFormat.getFormats()); + isSelectedBox.addMouseListener(new MouseListener() { + @Override + public void mouseClicked(MouseEvent e) { + isDirty = true; + } + + @Override + public void mousePressed(MouseEvent e) { + + } + + @Override + public void mouseReleased(MouseEvent e) { + + } + + @Override + public void mouseEntered(MouseEvent e) { + + } + + @Override + public void mouseExited(MouseEvent e) { + + } + }); + formatComBox.setPreferredSize(new Dimension(40, 20)); + + if (showSelectBox()) { + this.add(isSelectedBox, BorderLayout.CENTER); + } else { + this.add(new UILabel(LABEL_TEXT), BorderLayout.CENTER); + } + + this.add(formatComBox, BorderLayout.EAST); + } + + protected boolean showSelectBox() { + return true; + } + + public boolean isDirty() { + return isDirty; + } + + public void setDirty(boolean isDirty) { + this.isDirty = isDirty; + } + + public void populate(AttrTooltipFormat tooltipFormat) { + if (tooltipFormat instanceof AttrTooltipDurationFormat) { + this.isSelectedBox.setSelected(tooltipFormat.isEnable()); + formatComBox.setSelectedItem(((AttrTooltipDurationFormat) tooltipFormat).getIntervalTimeFormat()); + } + } + + public void update(AttrTooltipFormat tooltipFormat) { + if (tooltipFormat instanceof AttrTooltipDurationFormat) { + tooltipFormat.setEnable(isSelectedBox.isSelected()); + ((AttrTooltipDurationFormat) tooltipFormat).setIntervalTimeFormat((IntervalTimeFormat) formatComBox.getSelectedItem()); + } + } + + public void updateFormatParams(Map paramMap, String value) { + String key = LABEL_TEXT; + + if (paramMap != null && !paramMap.containsKey(key)) { + paramMap.put(key, value); + } + } +} diff --git a/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartFormatComBoxWithoutCheckBox.java b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartFormatComBoxWithoutCheckBox.java new file mode 100644 index 000000000..20a74e376 --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartFormatComBoxWithoutCheckBox.java @@ -0,0 +1,8 @@ +package com.fr.van.chart.gantt.designer.style.tooltip; + +public class VanChartFormatComBoxWithoutCheckBox extends VanChartFormatComBoxWithCheckBox { + + protected boolean showSelectBox() { + return false; + } +} diff --git a/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartGanttTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartGanttTooltipContentPane.java index 2a35b5f4a..71b57cde8 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartGanttTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/tooltip/VanChartGanttTooltipContentPane.java @@ -1,27 +1,17 @@ package com.fr.van.chart.gantt.designer.style.tooltip; -import com.fr.design.gui.icheckbox.UICheckBox; -import com.fr.design.gui.icombobox.UIComboBox; -import com.fr.design.gui.style.FormatPane; - import com.fr.design.i18n.Toolkit; import com.fr.plugin.chart.base.AttrTooltipContent; -import com.fr.plugin.chart.base.format.AttrTooltipDurationFormat; -import com.fr.plugin.chart.base.format.AttrTooltipFormat; -import com.fr.plugin.chart.base.format.IntervalTimeFormat; import com.fr.plugin.chart.gantt.attr.AttrGanttTooltipContent; -import com.fr.van.chart.designer.PlotFactory; import com.fr.van.chart.designer.component.VanChartTooltipContentPane; import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.VanChartFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.VanChartFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; -import java.awt.BorderLayout; import java.awt.Component; -import java.awt.Dimension; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; /** * Created by hufan on 2017/1/13. @@ -33,6 +23,12 @@ public class VanChartGanttTooltipContentPane extends VanChartTooltipContentPane private VanChartFormatComBoxWithCheckBox durationFormatPane; private VanChartFormatPaneWithCheckBox progressFormatPane; + private VanChartFormatPaneWithoutCheckBox richTextProcessesFormatPane; + private VanChartDateFormatPaneWithoutCheckBox richTextStartTimeFormatPane; + private VanChartDateFormatPaneWithoutCheckBox richTextEndTimeFormatPane; + private VanChartFormatComBoxWithoutCheckBox richTextDurationFormatPane; + private VanChartFormatPaneWithoutCheckBox richTextProgressFormatPane; + public VanChartGanttTooltipContentPane(VanChartStylePane parent, JPanel showOnPane) { super(parent, showOnPane); } @@ -66,6 +62,31 @@ public class VanChartGanttTooltipContentPane extends VanChartTooltipContentPane }; } + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + richTextProcessesFormatPane = new VanChartFormatPaneWithoutCheckBox(parent, showOnPane){ + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Project_Name"); + } + }; + setRichTextSeriesNameFormatPane(new SeriesNameFormatPaneWithoutCheckBox(parent, showOnPane)); + richTextStartTimeFormatPane = new VanChartDateFormatPaneWithoutCheckBox(parent, showOnPane){ + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Start_Time"); + } + }; + richTextEndTimeFormatPane = new VanChartDateFormatPaneWithoutCheckBox(parent, showOnPane){ + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_End_Time"); + } + }; + richTextDurationFormatPane = new VanChartFormatComBoxWithoutCheckBox(); + richTextProgressFormatPane = new VanChartFormatPaneWithoutCheckBox(parent, showOnPane){ + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Process"); + } + }; + } + protected Component[][] getPaneComponents(){ return new Component[][]{ new Component[]{processesFormatPane,null}, @@ -77,6 +98,17 @@ public class VanChartGanttTooltipContentPane extends VanChartTooltipContentPane }; } + protected Component[][] getRichTextComponents() { + return new Component[][]{ + new Component[]{richTextProcessesFormatPane,null}, + new Component[]{getRichTextSeriesNameFormatPane(),null}, + new Component[]{richTextStartTimeFormatPane,null}, + new Component[]{richTextEndTimeFormatPane,null}, + new Component[]{richTextDurationFormatPane, null}, + new Component[]{richTextProgressFormatPane, null} + }; + } + protected double[] getRowSize(double p){ return new double[]{p,p,p,p,p,p}; } @@ -127,79 +159,4 @@ public class VanChartGanttTooltipContentPane extends VanChartTooltipContentPane protected AttrTooltipContent createAttrTooltip() { return new AttrGanttTooltipContent(); } - - private abstract class VanChartDateFormatPaneWithCheckBox extends VanChartFormatPaneWithCheckBox { - public VanChartDateFormatPaneWithCheckBox(VanChartStylePane parent, JPanel showOnPane) { - super(parent, showOnPane); - } - - @Override - protected FormatPane createFormatPane(){ - return PlotFactory.createAutoFormatPane(); - } - } - - private class VanChartFormatComBoxWithCheckBox extends JPanel{ - private UICheckBox isSelectedBox; - private UIComboBox formatComBox; - - private boolean isDirty; - - private VanChartFormatComBoxWithCheckBox() { - this.setLayout(new BorderLayout()); - isSelectedBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Chart_Duration_Time")); - formatComBox = new UIComboBox(IntervalTimeFormat.getFormats()); - isSelectedBox.addMouseListener(new MouseListener() { - @Override - public void mouseClicked(MouseEvent e) { - isDirty = true; - } - - @Override - public void mousePressed(MouseEvent e) { - - } - - @Override - public void mouseReleased(MouseEvent e) { - - } - - @Override - public void mouseEntered(MouseEvent e) { - - } - - @Override - public void mouseExited(MouseEvent e) { - - } - }); - formatComBox.setPreferredSize(new Dimension(40,20)); - this.add(isSelectedBox, BorderLayout.CENTER); - this.add(formatComBox, BorderLayout.EAST); - } - - private boolean isDirty() { - return isDirty; - } - - private void setDirty(boolean isDirty) { - this.isDirty = isDirty; - } - - private void populate(AttrTooltipFormat tooltipFormat) { - if(tooltipFormat instanceof AttrTooltipDurationFormat) { - this.isSelectedBox.setSelected(tooltipFormat.isEnable()); - formatComBox.setSelectedItem(((AttrTooltipDurationFormat) tooltipFormat).getIntervalTimeFormat()); - } - } - - private void update(AttrTooltipFormat tooltipFormat) { - if(tooltipFormat instanceof AttrTooltipDurationFormat) { - tooltipFormat.setEnable(isSelectedBox.isSelected()); - ((AttrTooltipDurationFormat) tooltipFormat).setIntervalTimeFormat((IntervalTimeFormat) formatComBox.getSelectedItem()); - } - } - } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/scatter/component/label/VanChartScatterPlotLabelDetailPane.java b/designer-chart/src/main/java/com/fr/van/chart/scatter/component/label/VanChartScatterPlotLabelDetailPane.java index d507934e6..a78261f65 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/scatter/component/label/VanChartScatterPlotLabelDetailPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/scatter/component/label/VanChartScatterPlotLabelDetailPane.java @@ -19,6 +19,6 @@ public class VanChartScatterPlotLabelDetailPane extends VanChartPlotLabelDetailP @Override protected void initToolTipContentPane(Plot plot) { - dataLabelContentPane = new VanChartScatterLabelContentPane(parent,VanChartScatterPlotLabelDetailPane.this); + setDataLabelContentPane(new VanChartScatterLabelContentPane(getParentPane(),VanChartScatterPlotLabelDetailPane.this)); } } \ No newline at end of file diff --git a/designer-chart/src/main/java/com/fr/van/chart/scatter/component/label/VanChartScatterPlotLabelNoCheckPane.java b/designer-chart/src/main/java/com/fr/van/chart/scatter/component/label/VanChartScatterPlotLabelNoCheckPane.java index 71e783b06..a40918073 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/scatter/component/label/VanChartScatterPlotLabelNoCheckPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/scatter/component/label/VanChartScatterPlotLabelNoCheckPane.java @@ -19,12 +19,12 @@ public class VanChartScatterPlotLabelNoCheckPane extends VanChartScatterPlotLabe protected void addComponents() { this.setLayout(new BorderLayout()); - this.add(labelPane,BorderLayout.CENTER); + this.add(getLabelPane(), BorderLayout.CENTER); } public void populate(AttrLabel attr) { super.populate(attr); - isLabelShow.setSelected(true); - labelPane.setVisible(true); + getLabelShowCheckBox().setSelected(true); + getLabelPane().setVisible(true); } } \ No newline at end of file diff --git a/designer-chart/src/main/java/com/fr/van/chart/scatter/component/label/VanChartScatterPlotLabelPane.java b/designer-chart/src/main/java/com/fr/van/chart/scatter/component/label/VanChartScatterPlotLabelPane.java index 632ce7f6f..fb8be9016 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/scatter/component/label/VanChartScatterPlotLabelPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/scatter/component/label/VanChartScatterPlotLabelPane.java @@ -18,7 +18,8 @@ public class VanChartScatterPlotLabelPane extends VanChartPlotLabelPane { @Override protected void createLabelPane() { - labelDetailPane = new VanChartScatterPlotLabelDetailPane(this.plot, this.parent); - labelPane.add(labelDetailPane, BorderLayout.CENTER); + VanChartScatterPlotLabelDetailPane labelDetailPane = new VanChartScatterPlotLabelDetailPane(getPlot(), getParentPane()); + setLabelDetailPane(labelDetailPane); + getLabelPane().add(labelDetailPane, BorderLayout.CENTER); } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructureLabelContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructureLabelContentPane.java index e5f1287b2..f380c8267 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructureLabelContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructureLabelContentPane.java @@ -4,7 +4,7 @@ package com.fr.van.chart.structure.desinger.style; import com.fr.design.i18n.Toolkit; import com.fr.plugin.chart.base.AttrTooltipContent; import com.fr.plugin.chart.multilayer.style.AttrTooltipMultiLevelNameFormat; -import com.fr.van.chart.designer.component.VanChartLabelContentPane; +import com.fr.van.chart.designer.component.VanChartLabelContentPaneWithoutRichText; import com.fr.van.chart.designer.component.format.CategoryNameFormatPaneWithCheckBox; import com.fr.van.chart.designer.component.format.PercentFormatPaneWithCheckBox; import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithCheckBox; @@ -17,7 +17,7 @@ import java.awt.Component; /** * Created by shine on 2017/2/15. */ -public class VanChartStructureLabelContentPane extends VanChartLabelContentPane { +public class VanChartStructureLabelContentPane extends VanChartLabelContentPaneWithoutRichText { public VanChartStructureLabelContentPane(VanChartStylePane parent, JPanel showOnPane) { super(parent, showOnPane); } diff --git a/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructurePlotLabelDetailPane.java b/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructurePlotLabelDetailPane.java new file mode 100644 index 000000000..20e784c52 --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructurePlotLabelDetailPane.java @@ -0,0 +1,16 @@ +package com.fr.van.chart.structure.desinger.style; + +import com.fr.chart.chartattr.Plot; +import com.fr.van.chart.designer.style.VanChartStylePane; +import com.fr.van.chart.designer.style.label.VanChartPlotLabelDetailPane; + +public class VanChartStructurePlotLabelDetailPane extends VanChartPlotLabelDetailPane { + + public VanChartStructurePlotLabelDetailPane(Plot plot, VanChartStylePane parent) { + super(plot, parent); + } + + protected void initToolTipContentPane(Plot plot) { + setDataLabelContentPane(new VanChartStructureLabelContentPane(getParentPane(), VanChartStructurePlotLabelDetailPane.this)); + } +} diff --git a/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructurePlotLabelPane.java b/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructurePlotLabelPane.java new file mode 100644 index 000000000..e4cdc99e1 --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructurePlotLabelPane.java @@ -0,0 +1,20 @@ +package com.fr.van.chart.structure.desinger.style; + +import com.fr.chart.chartattr.Plot; +import com.fr.van.chart.designer.style.VanChartStylePane; +import com.fr.van.chart.designer.style.label.VanChartPlotLabelPane; + +import java.awt.BorderLayout; + +public class VanChartStructurePlotLabelPane extends VanChartPlotLabelPane { + + public VanChartStructurePlotLabelPane(Plot plot, VanChartStylePane parent) { + super(plot, parent); + } + + protected void createLabelPane() { + VanChartStructurePlotLabelDetailPane labelDetailPane = new VanChartStructurePlotLabelDetailPane(getPlot(), getParentPane()); + setLabelDetailPane(labelDetailPane); + getLabelPane().add(labelDetailPane, BorderLayout.CENTER); + } +} From dd32c9f7113090ba576499cf673f49885441e181 Mon Sep 17 00:00:00 2001 From: "Qinghui.Liu" Date: Mon, 21 Sep 2020 10:26:33 +0800 Subject: [PATCH 05/17] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=94=98=E7=89=B9?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=E7=AD=BE=E5=92=8C=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/VanChartTooltipContentPane.java | 42 +++++++++++---- .../VanChartGanttTooltipContentPane.java | 54 +++++++++++++++++++ 2 files changed, 85 insertions(+), 11 deletions(-) diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java index 76148e649..bf7b51794 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java @@ -190,6 +190,10 @@ public class VanChartTooltipContentPane extends BasicBeanPane params = getRichTextAttr().getParams(); + + AttrTooltipProcessesFormat processesFormat = ganttTooltipContent.getRichTextProcessesFormat(); + richTextProcessesFormatPane.populate(processesFormat); + richTextProcessesFormatPane.updateFormatParams(params, processesFormat.getJs()); + + AttrTooltipSeriesFormat seriesFormat = ganttTooltipContent.getRichTextSeriesFormat(); + getRichTextSeriesNameFormatPane().populate(seriesFormat); + getRichTextSeriesNameFormatPane().updateFormatParams(params, seriesFormat.getJs()); + + AttrTooltipStartTimeFormat startTimeFormat = ganttTooltipContent.getRichTextStartTimeFormat(); + richTextStartTimeFormatPane.populate(startTimeFormat); + richTextStartTimeFormatPane.updateFormatParams(params, startTimeFormat.getJs()); + + AttrTooltipEndTimeFormat endTimeFormat = ganttTooltipContent.getRichTextEndTimeFormat(); + richTextEndTimeFormatPane.populate(endTimeFormat); + richTextEndTimeFormatPane.updateFormatParams(params, endTimeFormat.getJs()); + + AttrTooltipDurationFormat durationFormat = ganttTooltipContent.getRichTextDurationFormat(); + richTextDurationFormatPane.populate(durationFormat); + richTextDurationFormatPane.updateFormatParams(params, durationFormat.getJs()); + + AttrTooltipProgressFormat progressFormat = ganttTooltipContent.getRichTextProgressFormat(); + richTextProgressFormatPane.populate(progressFormat); + richTextProgressFormatPane.updateFormatParams(params, progressFormat.getJs()); + + populateRichText(attrTooltipContent.getRichTextAttr()); + } + } + protected void updateFormatPane(AttrTooltipContent attrTooltipContent) { if (attrTooltipContent instanceof AttrGanttTooltipContent){ AttrGanttTooltipContent ganttTooltipContent = (AttrGanttTooltipContent) attrTooltipContent; @@ -138,6 +179,19 @@ public class VanChartGanttTooltipContentPane extends VanChartTooltipContentPane } } + protected void updateRichEditor(AttrTooltipContent attrTooltipContent) { + if(attrTooltipContent instanceof AttrGanttTooltipContent) { + AttrGanttTooltipContent ganttTooltipContent = (AttrGanttTooltipContent) attrTooltipContent; + + richTextProcessesFormatPane.update(ganttTooltipContent.getRichTextProcessesFormat()); + getRichTextSeriesNameFormatPane().update(ganttTooltipContent.getRichTextSeriesFormat()); + richTextStartTimeFormatPane.update(ganttTooltipContent.getRichTextStartTimeFormat()); + richTextEndTimeFormatPane.update(ganttTooltipContent.getRichTextEndTimeFormat()); + richTextDurationFormatPane.update(ganttTooltipContent.getRichTextDurationFormat()); + richTextProgressFormatPane.update(ganttTooltipContent.getRichTextProgressFormat()); + } + } + public boolean isDirty() { return processesFormatPane.isDirty() || getSeriesNameFormatPane().isDirty() From f66826f607fd8a1e63a57361f9302df1cde1c900 Mon Sep 17 00:00:00 2001 From: Yyming Date: Mon, 21 Sep 2020 11:45:36 +0800 Subject: [PATCH 06/17] =?UTF-8?q?REPORT-39965=20=E6=96=B0=E5=BB=BA?= =?UTF-8?q?=E8=81=9A=E5=90=88=E6=8A=A5=E8=A1=A8=E4=B8=8B=E6=96=B9=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E6=B7=BB=E5=8A=A0=E6=99=AE=E9=80=9A=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E7=9A=84=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/mainframe/JWorkBook.java | 14 ++++---------- .../fr/design/mainframe/PolySheetNameTabPane.java | 13 +------------ 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java b/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java index 80c8b2d0b..a139a5428 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java @@ -208,13 +208,7 @@ public class JWorkBook extends JTemplate { } }; - reportComposite.addTargetModifiedListener(new TargetModifiedListener() { - - @Override - public void targetModified(TargetModifiedEvent e) { - JWorkBook.this.fireTargetModified(); - } - }); + reportComposite.addTargetModifiedListener(e -> JWorkBook.this.fireTargetModified()); reportComposite.setParentContainer(centerPane); return centerPane; @@ -241,11 +235,11 @@ public class JWorkBook extends JTemplate { /** * 判断sheet权限 * - * @param rolsName 角色 + * @param rolesName 角色 */ @Override - public void judgeSheetAuthority(String rolsName) { - boolean isCovered = reportComposite.getEditingTemplateReport().getWorkSheetPrivilegeControl().checkInvisible(rolsName); + public void judgeSheetAuthority(String rolesName) { + boolean isCovered = reportComposite.getEditingTemplateReport().getWorkSheetPrivilegeControl().checkInvisible(rolesName); centerPane.setSheeetCovered(isCovered); centerPane.refreshContainer(); } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/PolySheetNameTabPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/PolySheetNameTabPane.java index cd61df1b4..73f63826b 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/PolySheetNameTabPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/PolySheetNameTabPane.java @@ -11,6 +11,7 @@ import com.fr.design.menu.MenuDef; * @date 2015-2-5-上午10:19:17 * */ +@Deprecated public class PolySheetNameTabPane extends SheetNameTabPane{ /** @@ -19,17 +20,5 @@ public class PolySheetNameTabPane extends SheetNameTabPane{ public PolySheetNameTabPane(ReportComponentComposite reportCompositeX) { super(reportCompositeX); } - - protected void paintAddButton(Graphics2D g2d){ - ADD_POLY_SHEET.paintIcon(this, g2d, iconLocation, 3); - } - - - protected void firstInsertActionPerformed(){ - new PolyReportInsertAction().actionPerformed(null); - } - - protected void addInsertGridShortCut(MenuDef def){ - } } \ No newline at end of file From d99b7c3c0e5d4fd001a724b1309885e583541e32 Mon Sep 17 00:00:00 2001 From: Yvan Date: Mon, 21 Sep 2020 13:45:15 +0800 Subject: [PATCH 07/17] =?UTF-8?q?REPORT-40154=20=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E5=85=B1=E4=BA=AB=E6=95=B0=E6=8D=AE=E9=9B=86=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E5=88=B0=E7=A3=81=E7=9B=98=E8=AE=B0=E5=BD=95=E6=95=B0?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E6=A1=86=E5=A4=AA=E7=9F=AD=201.=20bug?= =?UTF-8?q?=E5=8E=9F=E5=9B=A0=EF=BC=9A=E4=B9=8B=E5=89=8D=E7=9A=84UISpinner?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E6=95=B0=E5=AD=97=E6=A1=86=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E7=9A=84columns=E5=8F=AA=E6=9C=892=EF=BC=8C=E6=89=80=E4=BB=A5?= =?UTF-8?q?=E5=BD=93=E8=BE=93=E5=85=A5=E6=95=B0=E5=AD=97=E8=B6=85=E8=BF=87?= =?UTF-8?q?=E4=B8=89=E4=BD=8D=E6=95=B0=E6=97=B6=EF=BC=8C=E4=BC=9A=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E4=B8=8D=E5=85=A8=202.=20=E4=BF=AE=E6=94=B9=E6=96=B9?= =?UTF-8?q?=E6=A1=88=EF=BC=9A=E4=B8=8E=E4=BA=A7=E5=93=81=E5=8F=8A=E4=BA=A4?= =?UTF-8?q?=E4=BA=92=E7=A1=AE=E8=AE=A4=E5=90=8E=EF=BC=8C=E4=B8=BAUISpinner?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=80=E7=A7=8D=E6=9E=84=E9=80=A0=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E5=8F=AF=E4=BB=A5=E6=8C=87=E5=AE=9A=E5=85=B6?= =?UTF-8?q?=E6=95=B0=E5=AD=97=E6=A1=86=E7=9A=84columns=EF=BC=8C=E5=B0=86Ma?= =?UTF-8?q?xMemRowCountPanel=E4=B8=AD=E7=9A=84UISpinner=E7=9A=84columns?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=B8=BA4=EF=BC=8C=E5=8D=B3=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E6=9C=80=E5=A4=9A=E5=B1=95=E7=A4=BA5=E4=BD=8D?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tabledatapane/MaxMemRowCountPanel.java | 2 +- .../com/fr/design/gui/ispinner/UISpinner.java | 26 ++++++++++++++----- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/MaxMemRowCountPanel.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/MaxMemRowCountPanel.java index d43e6bdee..2df6cda02 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/MaxMemRowCountPanel.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/MaxMemRowCountPanel.java @@ -72,7 +72,7 @@ public class MaxMemRowCountPanel extends UIToolbar { this.setBackground(UIConstants.NORMAL_BACKGROUND); switchCache = new UIComboBox(CACHE_LIST); switchCache.addActionListener(switchStateL); - numberSpinner = new UISpinner(0, Integer.MAX_VALUE, 1); + numberSpinner = new UISpinner(0, Integer.MAX_VALUE, 1, 4); } private void showAllPanel() { diff --git a/designer-base/src/main/java/com/fr/design/gui/ispinner/UISpinner.java b/designer-base/src/main/java/com/fr/design/gui/ispinner/UISpinner.java index fb6752ac1..a418a2b37 100644 --- a/designer-base/src/main/java/com/fr/design/gui/ispinner/UISpinner.java +++ b/designer-base/src/main/java/com/fr/design/gui/ispinner/UISpinner.java @@ -30,6 +30,7 @@ public class UISpinner extends JPanel implements UIObserver, GlobalNameObserver private static final int LEN = 13; private static final int WIDTH = 13; private static final int HEIGHT = 10; + private static final int DEFAULT_NUMBERFIELD_COLUMNS = 2; private UINumberField textField; private UIButton preButton; private UIButton nextButton; @@ -40,9 +41,26 @@ public class UISpinner extends JPanel implements UIObserver, GlobalNameObserver private UIObserverListener uiObserverListener; private GlobalNameListener globalNameListener = null; private boolean lessMinValue = false; + /** + * Spinner内的数字文本框长度 + */ + private int numberFieldColumns; public UISpinner(double minValue, double maxValue, double dierta) { + init(minValue, maxValue, dierta); + } + + public UISpinner(double minValue, double maxValue, double dierta, double defaultValue) { + init(minValue, maxValue, dierta); + textField.setValue(defaultValue); + } + + public UISpinner(double minValue, double maxValue, double dierta, int numberFieldColumns) { + this.numberFieldColumns = numberFieldColumns; + init(minValue, maxValue, dierta); + } + private void init(double minValue, double maxValue, double dierta) { this.minValue = minValue; this.maxValue = maxValue; this.dierta = dierta; @@ -50,11 +68,6 @@ public class UISpinner extends JPanel implements UIObserver, GlobalNameObserver iniListener(); } - public UISpinner(double minValue, double maxValue, double dierta, double defaultValue) { - this(minValue, maxValue, dierta); - textField.setValue(defaultValue); - } - private void iniListener() { if (shouldResponseChangeListener()) { this.addChangeListener(new ChangeListener() { @@ -308,7 +321,8 @@ public class UISpinner extends JPanel implements UIObserver, GlobalNameObserver } protected UINumberField initNumberField() { - return new UINumberField(2) { + int columns = this.numberFieldColumns == 0 ? DEFAULT_NUMBERFIELD_COLUMNS : this.numberFieldColumns; + return new UINumberField(columns) { public boolean shouldResponseChangeListener() { return false; } From b306fea3705407c7cf5bde824be3c43540aa5c5e Mon Sep 17 00:00:00 2001 From: Yyming Date: Mon, 21 Sep 2020 14:55:41 +0800 Subject: [PATCH 08/17] =?UTF-8?q?REPORT-39884=20=E6=8D=A2=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E6=94=B9=E5=8A=A8=E6=96=B9=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/JPolyWorkBook.java | 12 ++----- .../mainframe/PolySheetNameTabPane.java | 36 +++++++++++++------ 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/JPolyWorkBook.java b/designer-realize/src/main/java/com/fr/design/mainframe/JPolyWorkBook.java index 48ddb6a05..ec9a2ce9d 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/JPolyWorkBook.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/JPolyWorkBook.java @@ -1,6 +1,4 @@ -/** - * - */ + package com.fr.design.mainframe; import com.fr.design.mainframe.template.info.JPolyWorkBookProcessInfo; @@ -13,7 +11,6 @@ import com.fr.report.poly.PolyWorkSheet; * 聚合报表Book, 跟WorkBook区别在于不能放入WorkSheet. * * @author neil - * * @date: 2015-2-5-上午8:58:39 */ public class JPolyWorkBook extends JWorkBook { @@ -32,15 +29,12 @@ public class JPolyWorkBook extends JWorkBook { * 创建sheet名称tab面板 * * @param reportCompositeX 当前组件对象 - * * @return sheet名称tab面板 - * * @date 2015-2-5-上午11:42:12 - * */ @Override - public SheetNameTabPane createSheetNameTabPane(ReportComponentComposite reportCompositeX){ - return new PolySheetNameTabPane(reportCompositeX); + public SheetNameTabPane createSheetNameTabPane(ReportComponentComposite reportCompositeX) { + return new SheetNameTabPane(reportCompositeX); } @Override diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/PolySheetNameTabPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/PolySheetNameTabPane.java index 73f63826b..8969661bf 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/PolySheetNameTabPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/PolySheetNameTabPane.java @@ -1,24 +1,38 @@ package com.fr.design.mainframe; -import java.awt.Graphics2D; import com.fr.design.menu.MenuDef; +import java.awt.Graphics2D; + /** * 获取 - * + * * @date 2015-2-5-上午10:19:17 - * + * @deprecated 让聚合报表也可以新建普通报表sheet, 逻辑和普通报表保持一致, 弃用此个性化设置 */ @Deprecated -public class PolySheetNameTabPane extends SheetNameTabPane{ - - /** - * 构造函数 - */ - public PolySheetNameTabPane(ReportComponentComposite reportCompositeX) { - super(reportCompositeX); - } +public class PolySheetNameTabPane extends SheetNameTabPane { + + /** + * 构造函数 + */ + public PolySheetNameTabPane(ReportComponentComposite reportCompositeX) { + super(reportCompositeX); + } + + protected void paintAddButton(Graphics2D g2d) { + ADD_POLY_SHEET.paintIcon(this, g2d, iconLocation, 3); + } + + + protected void firstInsertActionPerformed() { + new PolyReportInsertAction().actionPerformed(null); + } + + + protected void addInsertGridShortCut(MenuDef def) { + } } \ No newline at end of file From 6a5b573cac13d05844a4907b0ce9c339a6111404 Mon Sep 17 00:00:00 2001 From: kerry Date: Mon, 21 Sep 2020 14:56:14 +0800 Subject: [PATCH 09/17] =?UTF-8?q?REPORT-39601=20=E5=9C=A8=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=A0=BC=E4=B8=AD=E6=8F=92=E5=85=A5=20=E5=AF=8C?= =?UTF-8?q?=E6=96=87=E6=9C=AC=E3=80=82=20=E5=AD=97=E4=BD=93=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E4=B8=BA14=E7=9A=84=E6=97=B6=E5=80=99=EF=BC=8C?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=BB=99=E6=88=91=E5=8F=98=E6=88=9013?= =?UTF-8?q?=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/cell/editor/RichTextToolBar.java | 5 +- .../cell/editor/RichTextToolBarTest.java | 69 +++++++++++++++++++ 2 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 designer-realize/src/test/java/com/fr/design/cell/editor/RichTextToolBarTest.java diff --git a/designer-realize/src/main/java/com/fr/design/cell/editor/RichTextToolBar.java b/designer-realize/src/main/java/com/fr/design/cell/editor/RichTextToolBar.java index a8f4b2ac1..fb904e219 100644 --- a/designer-realize/src/main/java/com/fr/design/cell/editor/RichTextToolBar.java +++ b/designer-realize/src/main/java/com/fr/design/cell/editor/RichTextToolBar.java @@ -502,14 +502,15 @@ public class RichTextToolBar extends BasicPane{ //pt转为px =*4/3 private int scaleUp(int fontSize) { - return (int) FontTransformUtil.pt2px(fontSize); + return roundUp(FontTransformUtil.pt2px(fontSize)); } //px转pt = *3/4 private int scaleDown(int fontSize) { - return (int) FontTransformUtil.px2pt(fontSize); + return roundUp(FontTransformUtil.px2pt(fontSize)); } + private DocumentListener inputListener = new DocumentListener() { @Override diff --git a/designer-realize/src/test/java/com/fr/design/cell/editor/RichTextToolBarTest.java b/designer-realize/src/test/java/com/fr/design/cell/editor/RichTextToolBarTest.java new file mode 100644 index 000000000..7cae136d7 --- /dev/null +++ b/designer-realize/src/test/java/com/fr/design/cell/editor/RichTextToolBarTest.java @@ -0,0 +1,69 @@ +package com.fr.design.cell.editor; + +import com.fr.invoke.Reflect; +import org.easymock.EasyMock; +import org.junit.Assert; +import org.junit.Test; + +/** + * Created by kerry on 2020-09-21 + */ +public class RichTextToolBarTest { + @Test + public void testScaleUpAndDown() { + RichTextToolBar textToolBar = EasyMock.mock(RichTextToolBar.class); + + int result = Reflect.on(textToolBar).call("scaleUp", 10).get(); + Assert.assertEquals(13, result); + result = Reflect.on(textToolBar).call("scaleDown", 13).get(); + Assert.assertEquals(10, result); + + result = Reflect.on(textToolBar).call("scaleUp", 11).get(); + Assert.assertEquals(15, result); + result = Reflect.on(textToolBar).call("scaleDown", 15).get(); + Assert.assertEquals(11, result); + + result = Reflect.on(textToolBar).call("scaleUp", 12).get(); + Assert.assertEquals(16, result); + result = Reflect.on(textToolBar).call("scaleDown", 16).get(); + Assert.assertEquals(12, result); + + + result = Reflect.on(textToolBar).call("scaleUp", 13).get(); + Assert.assertEquals(17, result); + result = Reflect.on(textToolBar).call("scaleDown", 17).get(); + Assert.assertEquals(13, result); + + result = Reflect.on(textToolBar).call("scaleUp", 14).get(); + Assert.assertEquals(19, result); + result = Reflect.on(textToolBar).call("scaleDown", 19).get(); + Assert.assertEquals(14, result); + + result = Reflect.on(textToolBar).call("scaleUp", 16).get(); + Assert.assertEquals(21, result); + result = Reflect.on(textToolBar).call("scaleDown", 21).get(); + Assert.assertEquals(16, result); + + + result = Reflect.on(textToolBar).call("scaleUp", 17).get(); + Assert.assertEquals(23, result); + result = Reflect.on(textToolBar).call("scaleDown", 23).get(); + Assert.assertEquals(17, result); + + result = Reflect.on(textToolBar).call("scaleUp", 17).get(); + Assert.assertEquals(23, result); + result = Reflect.on(textToolBar).call("scaleDown", 23).get(); + Assert.assertEquals(17, result); + + result = Reflect.on(textToolBar).call("scaleUp", 19).get(); + Assert.assertEquals(25, result); + result = Reflect.on(textToolBar).call("scaleDown", 25).get(); + Assert.assertEquals(19, result); + + result = Reflect.on(textToolBar).call("scaleUp", 20).get(); + Assert.assertEquals(27, result); + result = Reflect.on(textToolBar).call("scaleDown", 27).get(); + Assert.assertEquals(20, result); + } + +} From 2bac14ada6b3eaf947adfb4b78489fd18c1cf2e6 Mon Sep 17 00:00:00 2001 From: hades Date: Mon, 21 Sep 2020 15:05:04 +0800 Subject: [PATCH 10/17] =?UTF-8?q?REPORT-40094=20=E3=80=90=E5=9B=9E?= =?UTF-8?q?=E5=BD=92=E3=80=91=E8=BF=9C=E7=A8=8B=E5=88=87=E6=8D=A2=E5=9B=9E?= =?UTF-8?q?=E6=9C=AC=E5=9C=B0=EF=BC=8C=E7=BD=91=E9=A1=B5=E6=A1=86=E6=8E=A7?= =?UTF-8?q?=E4=BB=B6=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/EastRegionContainerPane.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java b/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java index a273828d8..c7c587563 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java @@ -511,7 +511,10 @@ public class EastRegionContainerPane extends UIEastResizableContainer { UIUtil.invokeLaterIfNeeded(new Runnable() { @Override public void run() { - propertyItemMap.get(key).replaceContentPane(pane); + PropertyItem item = propertyItemMap.get(key); + if (item != null) { + item.replaceContentPane(pane); + } } }); } From 41eee70b3495fdbe7b65958cda479275a19cbbc9 Mon Sep 17 00:00:00 2001 From: "Qinghui.Liu" Date: Mon, 21 Sep 2020 15:15:53 +0800 Subject: [PATCH 11/17] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=95=A3=E7=82=B9?= =?UTF-8?q?=E5=9B=BE=E3=80=81=E7=AE=B1=E5=9E=8B=E5=9B=BE=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=82=B9=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../box/VanChartBoxTooltipContentPane.java | 142 ++++++++++++++++-- .../component/VanChartTooltipContentPane.java | 63 ++++---- ...ChartScatterRefreshTooltipContentPane.java | 33 ++++ .../VanChartScatterTooltipContentPane.java | 34 +++++ 4 files changed, 224 insertions(+), 48 deletions(-) diff --git a/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java index d0dd67529..0ad1ee3aa 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java @@ -1,14 +1,20 @@ package com.fr.van.chart.box; +import com.fr.design.gui.ilable.UILabel; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.plugin.chart.base.AttrTooltipContent; +import com.fr.plugin.chart.base.format.AttrTooltipFormat; import com.fr.plugin.chart.box.attr.AttrBoxTooltipContent; +import com.fr.van.chart.designer.TableLayout4VanChartHelper; import com.fr.van.chart.designer.component.VanChartTooltipContentPane; import com.fr.van.chart.designer.component.format.CategoryNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.CategoryNameFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.SeriesNameFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.component.format.VanChartFormatPaneWithCheckBox; +import com.fr.van.chart.designer.component.format.VanChartFormatPaneWithoutCheckBox; import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; @@ -27,6 +33,14 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { private VanChartFormatPaneWithCheckBox min; private VanChartFormatPaneWithCheckBox outlier; + private VanChartFormatPaneWithoutCheckBox richTextNumber; + private VanChartFormatPaneWithoutCheckBox richTextMax; + private VanChartFormatPaneWithoutCheckBox richTextQ3; + private VanChartFormatPaneWithoutCheckBox richTextMedian; + private VanChartFormatPaneWithoutCheckBox richTextQ1; + private VanChartFormatPaneWithoutCheckBox richTextMin; + private VanChartFormatPaneWithoutCheckBox richTextOutlier; + private JPanel dataNumberPane; private JPanel dataOutlierPane; @@ -76,6 +90,47 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { }; } + protected void initRichTextFormatPane(VanChartStylePane parent, JPanel showOnPane) { + setRichTextCategoryNameFormatPane(new CategoryNameFormatPaneWithoutCheckBox(parent, showOnPane)); + setRichTextSeriesNameFormatPane(new SeriesNameFormatPaneWithoutCheckBox(parent, showOnPane)); + + richTextNumber = new VanChartFormatPaneWithoutCheckBox(parent, showOnPane) { + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Data_Number"); + } + }; + richTextMax = new VanChartFormatPaneWithoutCheckBox(parent, showOnPane) { + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Max_Value"); + } + }; + richTextQ3 = new VanChartFormatPaneWithoutCheckBox(parent, showOnPane) { + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Data_Q3"); + } + }; + richTextMedian = new VanChartFormatPaneWithoutCheckBox(parent, showOnPane) { + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Data_Median"); + } + }; + richTextQ1 = new VanChartFormatPaneWithoutCheckBox(parent, showOnPane) { + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Data_Q1"); + } + }; + richTextMin = new VanChartFormatPaneWithoutCheckBox(parent, showOnPane) { + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Min_Value"); + } + }; + richTextOutlier = new VanChartFormatPaneWithoutCheckBox(parent, showOnPane) { + protected String getCheckBoxText() { + return Toolkit.i18nText("Fine-Design_Chart_Outlier_Value"); + } + }; + } + protected JPanel createCommonFormatPanel() { JPanel commonPanel = new JPanel(new BorderLayout()); @@ -86,6 +141,20 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { return commonPanel; } + protected Component[][] getRichTextComponents() { + return new Component[][]{ + new Component[]{getRichTextCategoryNameFormatPane(), null}, + new Component[]{getRichTextSeriesNameFormatPane(), null}, + new Component[]{richTextNumber, null}, + new Component[]{richTextMax, null}, + new Component[]{richTextQ3, null}, + new Component[]{richTextMedian, null}, + new Component[]{richTextQ1, null}, + new Component[]{richTextMin, null}, + new Component[]{richTextOutlier, null} + }; + } + protected double[] getRowSize(double p) { return new double[]{p, p, p, p, p, p, p, p, p, p, p, p}; } @@ -93,13 +162,15 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { private JPanel createCateAndSeriesPane() { double p = TableLayout.PREFERRED; double f = TableLayout.FILL; + double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH; - double[] columnSize = {f, p}; - double[] rowSize = {p, p}; + double[] columnSize = {f, e}; + double[] rowSize = {p, p, p}; Component[][] cateAndSeries = new Component[][]{ - new Component[]{getCategoryNameFormatPane(), null}, - new Component[]{getSeriesNameFormatPane(), null} + new Component[]{null, null}, + new Component[]{null, getCategoryNameFormatPane()}, + new Component[]{null, getSeriesNameFormatPane()} }; return TableLayoutHelper.createTableLayoutPane(cateAndSeries, rowSize, columnSize); @@ -108,13 +179,14 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { private JPanel createDataNumberPane() { double p = TableLayout.PREFERRED; double f = TableLayout.FILL; + double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH; - double[] columnSize = {f, p}; + double[] columnSize = {f, e}; double[] rowSize = {p, p}; Component[][] dataNumber = new Component[][]{ new Component[]{null, null}, - new Component[]{number, null}, + new Component[]{null, number}, }; dataNumberPane = TableLayoutHelper.createTableLayoutPane(dataNumber, rowSize, columnSize); @@ -125,22 +197,24 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { private JPanel createDataDetailPane() { double p = TableLayout.PREFERRED; double f = TableLayout.FILL; - double[] columnSize = {f, p}; + double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH; + + double[] columnSize = {f, e}; JPanel detailPane = new JPanel(new BorderLayout()); Component[][] dataDetail = new Component[][]{ new Component[]{null, null}, - new Component[]{max, null}, - new Component[]{q3, null}, - new Component[]{median, null}, - new Component[]{q1, null}, - new Component[]{min, null} + new Component[]{null, max}, + new Component[]{new UILabel(getLabelContentTitle()), q3}, + new Component[]{null, median}, + new Component[]{null, q1}, + new Component[]{null, min} }; Component[][] dataOutlier = new Component[][]{ new Component[]{null, null}, - new Component[]{outlier, null}, + new Component[]{null, outlier}, }; dataOutlierPane = TableLayoutHelper.createTableLayoutPane(dataOutlier, new double[]{p, p}, columnSize); @@ -198,6 +272,31 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { } } + protected void populateRichEditor(AttrTooltipContent attrTooltipContent) { + + if (attrTooltipContent instanceof AttrBoxTooltipContent) { + AttrBoxTooltipContent boxTooltipContent = (AttrBoxTooltipContent) attrTooltipContent; + + VanChartFormatPaneWithoutCheckBox[] formatPaneGroup = new VanChartFormatPaneWithoutCheckBox[]{ + richTextNumber, richTextMax, richTextQ3, richTextMedian, + richTextQ1, richTextMin, richTextOutlier + }; + + AttrTooltipFormat[] formatGroup = new AttrTooltipFormat[]{ + boxTooltipContent.getRichTextNumber(), + boxTooltipContent.getRichTextMax(), + boxTooltipContent.getRichTextQ3(), + boxTooltipContent.getRichTextMedian(), + boxTooltipContent.getRichTextQ1(), + boxTooltipContent.getRichTextMin(), + boxTooltipContent.getRichTextOutlier() + }; + + populateRichTextFormat(formatPaneGroup, formatGroup); + populateRichText(attrTooltipContent.getRichTextAttr()); + } + } + protected void updateFormatPane(AttrTooltipContent attrTooltipContent) { getCategoryNameFormatPane().update(attrTooltipContent.getCategoryFormat()); getSeriesNameFormatPane().update(attrTooltipContent.getSeriesFormat()); @@ -217,6 +316,23 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { } } + protected void updateRichEditor(AttrTooltipContent attrTooltipContent) { + getRichTextCategoryNameFormatPane().update(attrTooltipContent.getRichTextCategoryFormat()); + getRichTextSeriesNameFormatPane().update(attrTooltipContent.getRichTextSeriesFormat()); + + if (attrTooltipContent instanceof AttrBoxTooltipContent) { + AttrBoxTooltipContent boxTooltipContent = (AttrBoxTooltipContent) attrTooltipContent; + + richTextNumber.update(boxTooltipContent.getRichTextNumber()); + richTextMax.update(boxTooltipContent.getRichTextMax()); + richTextQ3.update(boxTooltipContent.getRichTextQ3()); + richTextMedian.update(boxTooltipContent.getRichTextMedian()); + richTextQ1.update(boxTooltipContent.getRichTextQ1()); + richTextMin.update(boxTooltipContent.getRichTextMin()); + richTextOutlier.update(boxTooltipContent.getRichTextOutlier()); + } + } + public void checkFormatVisible(boolean detailed) { this.detailed = detailed; diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java index bf7b51794..608ee2e16 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java @@ -232,7 +232,7 @@ public class VanChartTooltipContentPane extends BasicBeanPane Date: Mon, 21 Sep 2020 15:50:45 +0800 Subject: [PATCH 12/17] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/style/label/VanChartGaugeLabelDetailPane.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartGaugeLabelDetailPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartGaugeLabelDetailPane.java index 943aa2746..f06e7c1c7 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartGaugeLabelDetailPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartGaugeLabelDetailPane.java @@ -37,8 +37,8 @@ public class VanChartGaugeLabelDetailPane extends VanChartPlotLabelDetailPane { private UIButtonGroup align; private JPanel alignPane; private Integer[] oldAlignValues; - protected UIButtonGroup style; - protected ChartTextAttrPane textFontPane; + private UIButtonGroup style; + private ChartTextAttrPane textFontPane; public VanChartGaugeLabelDetailPane(Plot plot, VanChartStylePane parent) { super(plot, parent); From ab4a0c756718d0e609fc4b91d11bb069632fd8ad Mon Sep 17 00:00:00 2001 From: "Qinghui.Liu" Date: Mon, 21 Sep 2020 16:04:15 +0800 Subject: [PATCH 13/17] =?UTF-8?q?=E8=A1=A5=E5=85=85=E9=81=97=E6=BC=8F?= =?UTF-8?q?=E7=9A=84=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../van/chart/box/VanChartBoxTooltipContentPane.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java index 0ad1ee3aa..4659faaa8 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java @@ -5,7 +5,9 @@ import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.plugin.chart.base.AttrTooltipContent; +import com.fr.plugin.chart.base.format.AttrTooltipCategoryFormat; import com.fr.plugin.chart.base.format.AttrTooltipFormat; +import com.fr.plugin.chart.base.format.AttrTooltipSeriesFormat; import com.fr.plugin.chart.box.attr.AttrBoxTooltipContent; import com.fr.van.chart.designer.TableLayout4VanChartHelper; import com.fr.van.chart.designer.component.VanChartTooltipContentPane; @@ -20,6 +22,7 @@ import com.fr.van.chart.designer.style.VanChartStylePane; import javax.swing.JPanel; import java.awt.BorderLayout; import java.awt.Component; +import java.util.Map; public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { @@ -273,6 +276,15 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { } protected void populateRichEditor(AttrTooltipContent attrTooltipContent) { + Map params = getRichTextAttr().getParams(); + + AttrTooltipCategoryFormat categoryFormat = attrTooltipContent.getRichTextCategoryFormat(); + getRichTextCategoryNameFormatPane().populate(categoryFormat); + getRichTextCategoryNameFormatPane().updateFormatParams(params, categoryFormat.getJs()); + + AttrTooltipSeriesFormat seriesFormat = attrTooltipContent.getRichTextSeriesFormat(); + getRichTextSeriesNameFormatPane().populate(seriesFormat); + getRichTextSeriesNameFormatPane().updateFormatParams(params, seriesFormat.getJs()); if (attrTooltipContent instanceof AttrBoxTooltipContent) { AttrBoxTooltipContent boxTooltipContent = (AttrBoxTooltipContent) attrTooltipContent; From 4baa76c6ff536a1aef6abf54b0fdcb7373cc1f24 Mon Sep 17 00:00:00 2001 From: "Qinghui.Liu" Date: Mon, 21 Sep 2020 16:34:48 +0800 Subject: [PATCH 14/17] =?UTF-8?q?=E5=A4=87=E6=B3=A8=E5=BE=85=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=9A=84=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chart/designer/style/tooltip/VanChartPlotTooltipPane.java | 1 + 1 file changed, 1 insertion(+) diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/tooltip/VanChartPlotTooltipPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/tooltip/VanChartPlotTooltipPane.java index bb5b46b63..aa86fb9a7 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/tooltip/VanChartPlotTooltipPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/tooltip/VanChartPlotTooltipPane.java @@ -26,6 +26,7 @@ import java.awt.event.ActionListener; public class VanChartPlotTooltipPane extends BasicPane { private static final long serialVersionUID = 6087381131907589370L; + // todo 使用private protected UICheckBox isTooltipShow; protected VanChartTooltipContentPane tooltipContentPane; From 50b2fcfde5e90b817e860a8d535ae56ed1333bbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B2=B3?= <445798420@qq.com> Date: Mon, 21 Sep 2020 16:36:16 +0800 Subject: [PATCH 15/17] =?UTF-8?q?CHART-15518=20=E8=BD=B4=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E5=88=B020=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/chart/ChartDesignerActivator.java | 2 - ...nChartCustomStackAndAxisConditionPane.java | 8 +- .../component/VanChartAxisButtonPane.java | 75 ++++++++++--------- 3 files changed, 46 insertions(+), 39 deletions(-) diff --git a/designer-chart/src/main/java/com/fr/design/chart/ChartDesignerActivator.java b/designer-chart/src/main/java/com/fr/design/chart/ChartDesignerActivator.java index 8a5e0e7d8..0cd81f783 100644 --- a/designer-chart/src/main/java/com/fr/design/chart/ChartDesignerActivator.java +++ b/designer-chart/src/main/java/com/fr/design/chart/ChartDesignerActivator.java @@ -15,7 +15,6 @@ import com.fr.locale.LocaleScope; import com.fr.module.Activator; import com.fr.module.extension.Prepare; import com.fr.plugin.chart.vanchart.export.ImagePainter; -import com.fr.plugin.chart.vanchart.export.PainterDispatcher; import com.fr.stable.bridge.StableFactory; import com.fr.stable.plugin.ExtraChartDesignClassManagerProvider; import com.fr.van.chart.DownloadOnlineSourcesHelper; @@ -47,7 +46,6 @@ public class ChartDesignerActivator extends Activator implements Prepare { ImagePainter.registerDownloadSourcesEvent(new DownloadOnlineSourcesHelper()); ImagePainter.registerDefaultCallbackEvent(HistoryTemplateListCache.getInstance()); - PainterDispatcher.getInstance().distributeDesignPainter(); ChartTypeInterfaceManager.addPluginChangedListener(); } diff --git a/designer-chart/src/main/java/com/fr/van/chart/column/VanChartCustomStackAndAxisConditionPane.java b/designer-chart/src/main/java/com/fr/van/chart/column/VanChartCustomStackAndAxisConditionPane.java index ceb9bf480..86766676b 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/column/VanChartCustomStackAndAxisConditionPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/column/VanChartCustomStackAndAxisConditionPane.java @@ -6,18 +6,19 @@ import com.fr.data.condition.ListCondition; import com.fr.design.beans.BasicBeanPane; import com.fr.design.condition.LiteConditionPane; import com.fr.design.gui.ibutton.UIButtonGroup; +import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.utils.gui.GUICoreUtils; - import com.fr.plugin.chart.base.AttrSeriesStackAndAxis; import com.fr.van.chart.designer.style.series.VanChartSeriesConditionPane; import javax.swing.BorderFactory; import javax.swing.BoxLayout; import javax.swing.JPanel; +import javax.swing.ScrollPaneConstants; import java.awt.Component; import java.awt.Dimension; import java.awt.event.ActionEvent; @@ -46,10 +47,13 @@ public class VanChartCustomStackAndAxisConditionPane extends BasicBeanPane { private static final int B_W = 56; private static final int B_H = 21; private static final int COL_COUNT = 3; + private static final int MAX_COUNT = 20; private UIButton addButton; private UIPopupMenu popupMenu; + private UIMenuItem itemX; + private UIMenuItem itemY; private List indexList_X = new ArrayList(); private List indexList_Y = new ArrayList(); @@ -51,7 +53,7 @@ public class VanChartAxisButtonPane extends BasicBeanPane { private VanChartAxisPane parent; - public VanChartAxisButtonPane(VanChartAxisPane vanChartAxisPane){ + public VanChartAxisButtonPane(VanChartAxisPane vanChartAxisPane) { this.parent = vanChartAxisPane; this.setLayout(new BorderLayout()); @@ -66,6 +68,20 @@ public class VanChartAxisButtonPane extends BasicBeanPane { buttonPane.setBorder(BorderFactory.createEmptyBorder(0, 5, 10, 0)); this.add(buttonPane, BorderLayout.CENTER); + itemX = new UIMenuItem(VanChartAttrHelper.X_AXIS_PREFIX); + itemX.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + addXAxis(); + } + }); + itemY = new UIMenuItem(VanChartAttrHelper.Y_AXIS_PREFIX); + itemY.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + addYAxis(); + } + }); addButton.addActionListener(addListener); } @@ -92,12 +108,12 @@ public class VanChartAxisButtonPane extends BasicBeanPane { pane = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0)); buttonPane.add(pane); } - if(pane != null) { + if (pane != null) { pane.add(indexList_Y.get(i)); } } - if(popupMenu != null){ + if (popupMenu != null) { popupMenu.setVisible(false); } @@ -114,19 +130,19 @@ public class VanChartAxisButtonPane extends BasicBeanPane { indexList_X.clear(); indexList_Y.clear(); List xList = plot.getXAxisList(); - for(VanChartAxis axis : xList){ + for (VanChartAxis axis : xList) { ChartAxisButton x = new ChartAxisButton(plot.getXAxisName(axis)); x.setToolTipText(plot.getXAxisName(axis)); indexList_X.add(x); } List yList = plot.getYAxisList(); - for(VanChartAxis axis : yList){ + for (VanChartAxis axis : yList) { ChartAxisButton y = new ChartAxisButton(plot.getYAxisName(axis)); y.setToolTipText(plot.getYAxisName(axis)); indexList_Y.add(y); } - if(indexList_X.isEmpty()){ + if (indexList_X.isEmpty()) { this.removeAll(); } else { indexList_X.get(0).setSelected(true); @@ -143,7 +159,7 @@ public class VanChartAxisButtonPane extends BasicBeanPane { return null; } - public String getNewChartName(List existList, String prefix){ + public String getNewChartName(List existList, String prefix) { int count = existList.size() + 1; while (true) { String name_test = prefix + count; @@ -165,31 +181,19 @@ public class VanChartAxisButtonPane extends BasicBeanPane { ActionListener addListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - if(popupMenu == null){ - popupMenu = new UIPopupMenu(); - UIMenuItem item_x = new UIMenuItem(VanChartAttrHelper.X_AXIS_PREFIX); - item_x.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - addXAxis(); - } - }); - UIMenuItem item_y = new UIMenuItem(VanChartAttrHelper.Y_AXIS_PREFIX); - item_y.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - addYAxis(); - } - }); - popupMenu.add(item_x); - popupMenu.add(item_y); + popupMenu = new UIPopupMenu(); + if (indexList_X.size() < MAX_COUNT) { + popupMenu.add(itemX); + } + if (indexList_Y.size() < MAX_COUNT) { + popupMenu.add(itemY); } popupMenu.setVisible(true); GUICoreUtils.showPopupMenu(popupMenu, addButton, addButton.getWidth() - popupMenu.getPreferredSize().width, addButton.getY() - 1 + addButton.getHeight()); } }; - private void addXAxis(){ + private void addXAxis() { String name = getNewChartName(indexList_X, VanChartAttrHelper.X_AXIS_PREFIX); ChartAxisButton button = new ChartAxisButton(name); @@ -199,7 +203,7 @@ public class VanChartAxisButtonPane extends BasicBeanPane { layoutPane(); } - private void addYAxis(){ + private void addYAxis() { String name = getNewChartName(indexList_Y, VanChartAttrHelper.Y_AXIS_PREFIX); ChartAxisButton button = new ChartAxisButton(name); @@ -216,9 +220,10 @@ public class VanChartAxisButtonPane extends BasicBeanPane { private class AddButton extends UIButton { - public AddButton(Icon icon){ + public AddButton(Icon icon) { super(icon); } + /** * 组件是否需要响应添加的观察者事件 * @@ -277,19 +282,19 @@ public class VanChartAxisButtonPane extends BasicBeanPane { } private void noSelected() { - for(ChartAxisButton button : indexList_X){ + for (ChartAxisButton button : indexList_X) { button.setSelected(false); } - for(ChartAxisButton button : indexList_Y){ + for (ChartAxisButton button : indexList_Y) { button.setSelected(false); } } private void checkMoveOn(boolean moveOn) { - for(ChartAxisButton button : indexList_X){ + for (ChartAxisButton button : indexList_X) { button.isMoveOn = false; } - for(ChartAxisButton button : indexList_Y){ + for (ChartAxisButton button : indexList_Y) { button.isMoveOn = false; } From c147fec30298c1c7bc0673af4bdfcdc5b16bb812 Mon Sep 17 00:00:00 2001 From: "Yuan.Wang" <1536296691@qq.com> Date: Tue, 22 Sep 2020 09:22:10 +0800 Subject: [PATCH 16/17] =?UTF-8?q?REPORT-40025=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=9C=A8=E5=B7=B2=E9=80=89=E6=8B=A9=E7=BB=84=E4=BB=B6=E4=B8=AD?= =?UTF-8?q?=E6=8C=89=E5=9D=90=E6=A0=87=E8=8E=B7=E5=8F=96=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/creator/XCreatorUtils.java | 7 +-- .../com/fr/design/mainframe/FormDesigner.java | 57 +++++++++++++++---- 2 files changed, 48 insertions(+), 16 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/XCreatorUtils.java b/designer-form/src/main/java/com/fr/design/designer/creator/XCreatorUtils.java index 0c4ea6313..260318023 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/XCreatorUtils.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/XCreatorUtils.java @@ -345,17 +345,16 @@ public class XCreatorUtils { } /** - * 获取组件的最顶层XMainBorderLayout,没有则返回null + * 获取组件的上一层的XMainBorderLayout,没有则返回null * */ @Nullable public static XWCardMainBorderLayout getTopXMainBorderLayout(Container creator) { - XWCardMainBorderLayout result = null; while (creator != null) { if (creator instanceof XWCardMainBorderLayout) { - result = (XWCardMainBorderLayout) creator; + return (XWCardMainBorderLayout) creator; } creator = creator.getParent(); } - return result; + return null; } } \ No newline at end of file diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java b/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java index 55c2106b0..ef7760cdb 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java @@ -842,26 +842,59 @@ public class FormDesigner extends TargetComponent
implements TreeSelection if (shouldContinue) { continue; } - //如果组件为XWCardMainBorderLayout的子组件,直接从XWCardMainBorderLayout中去找 - XWCardMainBorderLayout borderLayout = XCreatorUtils.getTopXMainBorderLayout(creator); - if (borderLayout != null) { - return xCreatorAt(x, y, borderLayout, null); + //获取当前组件父组件相对于rootComponent或者paraComponent的距离 + int relativeParentX = getRelativeParentX(creator.getParent()); + int relativeParentY = getRelativeParentY(creator.getParent()); + + //如果不是布局容器,直接进行对比 + if (!(creator instanceof XLayoutContainer)) { + x -= relativeParentX + creator.getX(); + y -= relativeParentY + creator.getY(); + Rectangle rect = ComponentUtils.computeVisibleRect(creator); + // 判断是否处于交叉区域 + if (isIntersectArea(x, y, rect)) { + return creator; + } } + + //如果是布局容器,从布局容器向下找 if (creator instanceof XLayoutContainer) { - return xCreatorAt(x, y, creator, null); + XCreator result = xCreatorAt(x - relativeParentX, y - relativeParentY, creator, null); + if (result != null) return result; } - x -= creator.getX(); - y -= creator.getY(); - Rectangle rect = ComponentUtils.computeVisibleRect(creator); - // 判断是否处于交叉区域 - if (!isIntersectArea(x, y, rect)) { - continue; + + //最后,如果组件为Tab容器中的子组件,再从Tab容器中去找 + XWCardMainBorderLayout borderLayout = XCreatorUtils.getTopXMainBorderLayout(creator); + if (borderLayout != null) { + relativeParentX = getRelativeParentX(borderLayout.getParent()); + relativeParentY = getRelativeParentY(borderLayout.getParent()); + return xCreatorAt(x - relativeParentX, y - relativeParentY, borderLayout, null); } - return creator; } return null; } + /** + * 获取当前组件相对于rootComponent或者paraComponent的横向距离 + */ + private int getRelativeParentX(Container container) { + return returnZero(container) ? 0 : container.getX() + getRelativeParentX(container.getParent()); + } + + /** + * 获取当前组件相对于rootComponent或者paraComponent的纵向距离 + */ + private int getRelativeParentY(Container container) { + return returnZero(container) ? 0 : container.getY() + getRelativeParentY(container.getParent()); + } + + private boolean returnZero(Container container) { + return !(container instanceof XLayoutContainer) + || container == rootComponent + || (paraComponent != null && container == paraComponent); + } + + /** * 刷新顶层组件 * */ From 28cde5e899b3a9151f191d315a82006ca53eed89 Mon Sep 17 00:00:00 2001 From: "Yuan.Wang" <1536296691@qq.com> Date: Tue, 22 Sep 2020 09:44:47 +0800 Subject: [PATCH 17/17] =?UTF-8?q?REPORT-40025=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=9C=A8=E5=B7=B2=E9=80=89=E6=8B=A9=E7=BB=84=E4=BB=B6=E4=B8=AD?= =?UTF-8?q?=E6=8C=89=E5=9D=90=E6=A0=87=E8=8E=B7=E5=8F=96=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/mainframe/FormDesigner.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java b/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java index ef7760cdb..c4fa2df8a 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java @@ -848,11 +848,11 @@ public class FormDesigner extends TargetComponent implements TreeSelection //如果不是布局容器,直接进行对比 if (!(creator instanceof XLayoutContainer)) { - x -= relativeParentX + creator.getX(); - y -= relativeParentY + creator.getY(); + int newX = x - relativeParentX - creator.getX(); + int newY = y - relativeParentY - creator.getY(); Rectangle rect = ComponentUtils.computeVisibleRect(creator); // 判断是否处于交叉区域 - if (isIntersectArea(x, y, rect)) { + if (isIntersectArea(newX, newY, rect)) { return creator; } } @@ -860,7 +860,9 @@ public class FormDesigner extends TargetComponent implements TreeSelection //如果是布局容器,从布局容器向下找 if (creator instanceof XLayoutContainer) { XCreator result = xCreatorAt(x - relativeParentX, y - relativeParentY, creator, null); - if (result != null) return result; + if (result != null) { + return result; + } } //最后,如果组件为Tab容器中的子组件,再从Tab容器中去找