diff --git a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceWestPanel.java b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceWestPanel.java index 3363b7db75..a58091a06a 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceWestPanel.java +++ b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceWestPanel.java @@ -28,7 +28,7 @@ public class ITReplaceWestPanel { private JPanel leftPanel; private UILabel iconLabel; private static final Icon HELP_ICON = IconUtils.readIcon("com/fr/design/images/buttonicon/replace_help.svg"); - private static final String HELP_URL = CloudCenter.getInstance().acquireUrlByKind("design.replace.help", "https://help.fanruan.com/finereport/doc-view-4954.html"); + private static final String HELP_URL = CloudCenter.getInstance().acquireUrlByKind("design.replace.help", "https://help.fanruan.com/finereport/doc-view-4954.html?source=3"); private static final int FILL_COUNT = 13; public ITReplaceWestPanel() { diff --git a/designer-realize/src/main/java/com/fr/design/actions/replace/utils/SearchJSUtils.java b/designer-realize/src/main/java/com/fr/design/actions/replace/utils/SearchJSUtils.java index d04b02aa26..5bb27c6686 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/replace/utils/SearchJSUtils.java +++ b/designer-realize/src/main/java/com/fr/design/actions/replace/utils/SearchJSUtils.java @@ -21,6 +21,9 @@ import com.fr.plugin.chart.attr.plot.VanChartPlot; import com.fr.plugin.chart.base.AttrLabel; import com.fr.plugin.chart.base.AttrTooltip; import com.fr.plugin.chart.base.VanChartHtmlLabel; +import com.fr.plugin.chart.map.VanChartMapPlot; +import com.fr.plugin.chart.map.attr.AttrMapLabel; +import com.fr.plugin.chart.map.attr.AttrMapTooltip; import com.fr.plugin.chart.vanchart.VanChart; import com.fr.report.cell.Elem; import com.fr.stable.StringUtils; @@ -39,6 +42,21 @@ import java.util.List; */ public class SearchJSUtils { + /** + * 样式-数据点提示 + */ + public static final String STYLE_TOOLTIP_CUSTOM = ShowValueUtils.joinStr4Position(Toolkit.i18nText("Fine-Design_Basic_Style"), Toolkit.i18nText("Fine-Design_Chart_Tooltip")); + + /** + * 样式-标签 + */ + public static final String STYLE_LABEL = ShowValueUtils.joinStr4Position(Toolkit.i18nText("Fine-Design_Basic_Style"), Toolkit.i18nText("Fine-Design_Chart_Data_Label")); + + /** + * 样式-分类标签 + */ + public static final String CATEGORY_LABEL = ShowValueUtils.joinStr4Position(Toolkit.i18nText("Fine-Design_Basic_Style"), Toolkit.i18nText("Fine-Design_Chart_Data_Label"), Toolkit.i18nText("Fine-Design_Chart_Category_Label")); + /** * 从Listener中获取JS */ @@ -118,29 +136,77 @@ public class SearchJSUtils { */ private static void addAttrLabelHtmlLabel(VanChart chart, List> arrayList) { VanChartPlot plot = chart.getPlot(); - addAttrToolTipCondition2Array(plot, arrayList); - if (isAttrLabelExist(plot)) { - addAttrLabelDetail2Array(plot, arrayList); - addAttrSecondLabelDetail2Array(plot, arrayList); + //如果是地图类型要特殊处理 + if (plot instanceof VanChartMapPlot) { + addMapJS2Array((VanChartMapPlot) plot, arrayList); + } else { + addAttrToolTipCondition2Array(plot, arrayList); + if (isAttrLabelExist(plot)) { + addAttrLabelDetail2Array(plot, arrayList); + addAttrSecondLabelDetail2Array(plot, arrayList); + } + } + } + /** + * 用于处理地图类型图表中的样式中的JS(AttrMapTooltip 与 AttrMapLabel) + * + * @param plot + * @param arrayList + */ + private static void addMapJS2Array(VanChartMapPlot plot, List> arrayList) { + ConditionAttr defaultAttr = plot.getConditionCollection().getDefaultAttr(); + AttrMapTooltip attrMapTooltip = defaultAttr.getExisted(AttrMapTooltip.class); + AttrMapLabel attrMapLabel = defaultAttr.getExisted(AttrMapLabel.class); + //处理三种地图的数据点提示——点地图、流向地图、区域地图 + dealMapTooltipJS(attrMapTooltip.getAreaTooltip(), arrayList); + dealMapTooltipJS(attrMapTooltip.getLineTooltip(), arrayList); + dealMapTooltipJS(attrMapTooltip.getPointTooltip(), arrayList); + + //处理两种地图的标签——点地图、区域地图(流向地图没有标签) + dealMapLabelJS(attrMapLabel.getAreaLabel(), arrayList); + dealMapLabelJS(attrMapLabel.getPointLabel(), arrayList); + + + } + + /** + * 用于处理地图类型图表中的标签中的JS + * + * @param label 地图类型的标签(点地图、区域地图) + * @param arrayList 用于存储htmlLabel的数组 + */ + private static void dealMapLabelJS(AttrLabel label, List> arrayList) { + if (isAttrLabelValid(label)) { + arrayList.add(new Pair<>(label.getContent().getHtmlLabel(), STYLE_LABEL)); } + } + /** + * 用于处理地图类型图表中的数据点提示中的JS + * + * @param tooltip 地图类型的数据点提示(点地图、流向地图、区域地图) + * @param arrayList 用于存储htmlLabel的数组 + */ + private static void dealMapTooltipJS(AttrTooltip tooltip, List> arrayList) { + if (isToolTipValid(tooltip)) { + arrayList.add(new Pair<>(tooltip.getContent().getHtmlLabel(), STYLE_TOOLTIP_CUSTOM)); + } } private static void addAttrToolTipCondition2Array(VanChartPlot plot, List> arrayList) { - if (isToolTipValid(plot)) { - arrayList.add(new Pair<>(((AttrTooltip) plot.getAttrTooltipFromConditionCollection()).getContent().getHtmlLabel(), - Toolkit.i18nText("Fine-Design_Chart_Tooltip") + "-" + Toolkit.i18nText("Fine-Design_Basic_Custom"))); + if (isToolTipValid(plot.getAttrTooltipFromConditionCollection())) { + arrayList.add(new Pair<>(((AttrTooltip) plot.getAttrTooltipFromConditionCollection()).getContent().getHtmlLabel(), STYLE_TOOLTIP_CUSTOM)); } } - private static boolean isToolTipValid(VanChartPlot plot) { - return plot.getAttrTooltipFromConditionCollection() != null && ((AttrTooltip) plot.getAttrTooltipFromConditionCollection()).isEnable() && plot.getAttrTooltipFromConditionCollection() instanceof AttrTooltip; + private static boolean isToolTipValid(DataSeriesCondition tooltip) { + return tooltip instanceof AttrTooltip && ((AttrTooltip) tooltip).isEnable() && ((AttrTooltip) tooltip).getContent() != null && ((AttrTooltip) tooltip).getContent().getHtmlLabel() != null; } private static void addAttrLabelDetail2Array(VanChartPlot plot, List> arrayList) { if (isLabelDetailValid(plot)) { - arrayList.add(new Pair<>(plot.getAttrLabelFromConditionCollection().getAttrLabelDetail().getContent().getHtmlLabel(), Toolkit.i18nText("Fine-Design_Chart_Value_Label"))); + arrayList.add(new Pair<>(plot.getAttrLabelFromConditionCollection().getAttrLabelDetail().getContent().getHtmlLabel(), STYLE_LABEL)); } } @@ -152,7 +218,7 @@ public class SearchJSUtils { private static void addAttrSecondLabelDetail2Array(VanChartPlot plot, List> arrayList) { if (isSecondLabelDetailValid(plot)) { - arrayList.add(new Pair<>(plot.getAttrLabelFromConditionCollection().getSecondLabelDetail().getContent().getHtmlLabel(), Toolkit.i18nText("Fine-Design_Chart_Category_Label"))); + arrayList.add(new Pair<>(plot.getAttrLabelFromConditionCollection().getSecondLabelDetail().getContent().getHtmlLabel(), CATEGORY_LABEL)); } } @@ -194,7 +260,7 @@ public class SearchJSUtils { } private static boolean isAttrLabelValid(AttrLabel label) { - return label.isEnable() && label.getContent() != null && label.getContent().getHtmlLabel() != null; + return label != null && label.isEnable() && label.getContent() != null && label.getContent().getHtmlLabel() != null; } /** diff --git a/designer-realize/src/main/java/com/fr/design/actions/replace/utils/ShowValueUtils.java b/designer-realize/src/main/java/com/fr/design/actions/replace/utils/ShowValueUtils.java index b7b46539b3..191a08eefc 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/replace/utils/ShowValueUtils.java +++ b/designer-realize/src/main/java/com/fr/design/actions/replace/utils/ShowValueUtils.java @@ -2,6 +2,7 @@ package com.fr.design.actions.replace.utils; import com.fr.design.actions.replace.ui.ITReplaceMainDialog; +import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; import com.fr.stable.collections.combination.Pair; @@ -46,6 +47,8 @@ public class ShowValueUtils { public static final int HTML_TAIL_LEN = HTML_TAIL.length(); public static final int NOBR_LEN = NOBR.length(); public static final int NOBR_TAIL_LEN = NOBR_TAIL.length(); + + public static final String JOIN_GAP_STRING = "-"; /** * <转变为<的长度差 */ @@ -301,4 +304,15 @@ public class ShowValueUtils { } } + + + /** + * 用于拼接展示位置用的字符串,中间用“-”拼接 + * + * @param strings 用于拼接的字符串 + * @return 拼接后的字符串 + */ + public static String joinStr4Position(String... strings) { + return StableUtils.join(strings, JOIN_GAP_STRING); + } }