Browse Source

Pull request #2103: CHART-14983 根据数据类型调整箱型图数据点提示面板内容

Merge in DESIGN/design from ~QINGHUI.LIU/design:release/10.0 to release/10.0

* commit 'c80e24f4894b39257645d5cc20c3a060c1774654':
  CHART-14983 根据数据类型调整箱型图数据点提示面板内容
feature/big-screen
Qinghui.Liu 4 years ago
parent
commit
f76ff103b4
  1. 8
      designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxPlotTooltipPane.java
  2. 89
      designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java
  3. 18
      designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipPane.java
  4. 16
      designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java
  5. 12
      designer-chart/src/main/java/com/fr/van/chart/designer/style/tooltip/VanChartTooltipPane.java

8
designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxPlotTooltipPane.java

@ -2,6 +2,7 @@ package com.fr.van.chart.box;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.plugin.chart.base.AttrTooltip; import com.fr.plugin.chart.base.AttrTooltip;
import com.fr.plugin.chart.box.VanChartBoxPlot;
import com.fr.plugin.chart.box.attr.AttrBoxTooltip; import com.fr.plugin.chart.box.attr.AttrBoxTooltip;
import com.fr.van.chart.designer.style.VanChartStylePane; import com.fr.van.chart.designer.style.VanChartStylePane;
import com.fr.van.chart.designer.style.tooltip.VanChartPlotTooltipPane; import com.fr.van.chart.designer.style.tooltip.VanChartPlotTooltipPane;
@ -13,7 +14,8 @@ public class VanChartBoxPlotTooltipPane extends VanChartPlotTooltipPane {
} }
protected void initTooltipContentPane(Plot plot) { protected void initTooltipContentPane(Plot plot) {
tooltipContentPane = new VanChartBoxTooltipContentPane(parent, VanChartBoxPlotTooltipPane.this); boolean isDetailed = ((VanChartBoxPlot) plot).isDetailed();
tooltipContentPane = new VanChartBoxTooltipContentPane(parent, VanChartBoxPlotTooltipPane.this, isDetailed);
} }
protected AttrTooltip getAttrTooltip() { protected AttrTooltip getAttrTooltip() {
@ -23,4 +25,8 @@ public class VanChartBoxPlotTooltipPane extends VanChartPlotTooltipPane {
protected boolean hasTooltipSeriesType() { protected boolean hasTooltipSeriesType() {
return false; return false;
} }
public void checkContentVisible(boolean isDetailed) {
((VanChartBoxTooltipContentPane) tooltipContentPane).checkFormatVisible(isDetailed);
}
} }

89
designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java

@ -1,6 +1,8 @@
package com.fr.van.chart.box; package com.fr.van.chart.box;
import com.fr.design.i18n.Toolkit; 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.AttrTooltipContent;
import com.fr.plugin.chart.box.attr.AttrBoxTooltipContent; import com.fr.plugin.chart.box.attr.AttrBoxTooltipContent;
import com.fr.van.chart.designer.component.VanChartTooltipContentPane; import com.fr.van.chart.designer.component.VanChartTooltipContentPane;
@ -10,10 +12,13 @@ import com.fr.van.chart.designer.component.format.VanChartFormatPaneWithCheckBox
import com.fr.van.chart.designer.style.VanChartStylePane; import com.fr.van.chart.designer.style.VanChartStylePane;
import javax.swing.JPanel; import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Component; import java.awt.Component;
public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane {
private boolean detailed;
private VanChartFormatPaneWithCheckBox number; private VanChartFormatPaneWithCheckBox number;
private VanChartFormatPaneWithCheckBox max; private VanChartFormatPaneWithCheckBox max;
private VanChartFormatPaneWithCheckBox q3; private VanChartFormatPaneWithCheckBox q3;
@ -22,8 +27,12 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane {
private VanChartFormatPaneWithCheckBox min; private VanChartFormatPaneWithCheckBox min;
private VanChartFormatPaneWithCheckBox outlier; private VanChartFormatPaneWithCheckBox outlier;
public VanChartBoxTooltipContentPane(VanChartStylePane parent, JPanel showOnPane) { private JPanel dataNumberPane;
private JPanel dataOutlierPane;
public VanChartBoxTooltipContentPane(VanChartStylePane parent, JPanel showOnPane, boolean isDetailed) {
super(parent, showOnPane); super(parent, showOnPane);
this.detailed = isDetailed;
} }
protected void initFormatPane(VanChartStylePane parent, JPanel showOnPane) { protected void initFormatPane(VanChartStylePane parent, JPanel showOnPane) {
@ -67,22 +76,81 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane {
}; };
} }
protected JPanel createCommonPanel() {
JPanel commonPanel = new JPanel(new BorderLayout());
commonPanel.add(createCateAndSeriesPane(), BorderLayout.NORTH);
commonPanel.add(createDataNumberPane(), BorderLayout.CENTER);
commonPanel.add(createDataDetailPane(), BorderLayout.SOUTH);
checkFormatVisible(detailed);
return commonPanel;
}
protected double[] getRowSize(double p) { protected double[] getRowSize(double p) {
return new double[]{p, p, p, p, p, p, p, p, p}; return new double[]{p, p, p, p, p, p, p, p, p, p, p, p};
} }
protected Component[][] getPaneComponents() { private JPanel createCateAndSeriesPane() {
return new Component[][]{ double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f, p};
double[] rowSize = {p, p};
Component[][] cateAndSeries = new Component[][]{
new Component[]{categoryNameFormatPane, null}, new Component[]{categoryNameFormatPane, null},
new Component[]{seriesNameFormatPane, null}, new Component[]{seriesNameFormatPane, null}
};
return TableLayoutHelper.createTableLayoutPane(cateAndSeries, rowSize, columnSize);
}
private JPanel createDataNumberPane() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f, p};
double[] rowSize = {p, p};
Component[][] dataNumber = new Component[][]{
new Component[]{null, null},
new Component[]{number, null}, new Component[]{number, null},
};
dataNumberPane = TableLayoutHelper.createTableLayoutPane(dataNumber, rowSize, columnSize);
return dataNumberPane;
}
private JPanel createDataDetailPane() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f, p};
JPanel detailPane = new JPanel(new BorderLayout());
Component[][] dataDetail = new Component[][]{
new Component[]{null, null},
new Component[]{max, null}, new Component[]{max, null},
new Component[]{q3, null}, new Component[]{q3, null},
new Component[]{median, null}, new Component[]{median, null},
new Component[]{q1, null}, new Component[]{q1, null},
new Component[]{min, null}, new Component[]{min, null}
new Component[]{outlier, null}
}; };
Component[][] dataOutlier = new Component[][]{
new Component[]{null, null},
new Component[]{outlier, null},
};
dataOutlierPane = TableLayoutHelper.createTableLayoutPane(dataOutlier, new double[]{p, p}, columnSize);
detailPane.add(TableLayoutHelper.createTableLayoutPane(dataDetail, new double[]{p, p, p, p, p, p}, columnSize), BorderLayout.NORTH);
detailPane.add(dataOutlierPane, BorderLayout.CENTER);
return detailPane;
} }
public boolean isDirty() { public boolean isDirty() {
@ -146,4 +214,11 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane {
outlier.update(boxTooltipContent.getOutlier()); outlier.update(boxTooltipContent.getOutlier());
} }
} }
public void checkFormatVisible(boolean detailed) {
this.detailed = detailed;
dataNumberPane.setVisible(detailed);
dataOutlierPane.setVisible(detailed);
}
} }

18
designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipPane.java

@ -1,6 +1,10 @@
package com.fr.van.chart.box; package com.fr.van.chart.box;
import com.fr.chart.base.DataSeriesCondition;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.plugin.chart.attr.plot.VanChartPlot;
import com.fr.plugin.chart.base.AttrTooltip;
import com.fr.plugin.chart.box.VanChartBoxPlot;
import com.fr.van.chart.designer.style.VanChartStylePane; import com.fr.van.chart.designer.style.VanChartStylePane;
import com.fr.van.chart.designer.style.tooltip.VanChartPlotTooltipPane; import com.fr.van.chart.designer.style.tooltip.VanChartPlotTooltipPane;
import com.fr.van.chart.designer.style.tooltip.VanChartTooltipPane; import com.fr.van.chart.designer.style.tooltip.VanChartTooltipPane;
@ -14,4 +18,18 @@ public class VanChartBoxTooltipPane extends VanChartTooltipPane {
protected VanChartPlotTooltipPane getTooltipPane(Plot plot) { protected VanChartPlotTooltipPane getTooltipPane(Plot plot) {
return new VanChartBoxPlotTooltipPane(plot, parent); return new VanChartBoxPlotTooltipPane(plot, parent);
} }
public void populateTooltipPane(Plot plot) {
DataSeriesCondition attr = ((VanChartPlot) plot).getAttrTooltipFromConditionCollection();
VanChartPlotTooltipPane tooltipPane = getPlotTooltipPane();
if (tooltipPane instanceof VanChartBoxPlotTooltipPane) {
tooltipPane.populate((AttrTooltip) attr);
VanChartBoxPlotTooltipPane boxPlotTooltipPane = (VanChartBoxPlotTooltipPane) tooltipPane;
VanChartBoxPlot boxPlot = (VanChartBoxPlot) plot;
boxPlotTooltipPane.checkContentVisible(boxPlot.isDetailed());
}
}
} }

16
designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java

@ -42,6 +42,7 @@ public class VanChartTooltipContentPane extends BasicBeanPane<AttrTooltipContent
protected ChangedPercentFormatPaneWithCheckBox changedPercentFormatPane; protected ChangedPercentFormatPaneWithCheckBox changedPercentFormatPane;
private JPanel centerPane; private JPanel centerPane;
private JPanel commonPanel;
private VanChartHtmlLabelPane htmlLabelPane; private VanChartHtmlLabelPane htmlLabelPane;
private VanChartStylePane parent; private VanChartStylePane parent;
@ -64,11 +65,8 @@ public class VanChartTooltipContentPane extends BasicBeanPane<AttrTooltipContent
double p = TableLayout.PREFERRED; double p = TableLayout.PREFERRED;
double f = TableLayout.FILL; double f = TableLayout.FILL;
double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH; double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH;
double[] columnSize = {f, p};
double[] rowSize = getRowSize(p);
final JPanel commonPanel = TableLayoutHelper.createTableLayoutPane(getPaneComponents(), rowSize, columnSize);
commonPanel = createCommonPanel();
htmlLabelPane = createHtmlLabelPane(); htmlLabelPane = createHtmlLabelPane();
htmlLabelPane.setParent(parent); htmlLabelPane.setParent(parent);
@ -109,6 +107,16 @@ public class VanChartTooltipContentPane extends BasicBeanPane<AttrTooltipContent
return new VanChartHtmlLabelPaneWithOutWidthAndHeight(); return new VanChartHtmlLabelPaneWithOutWidthAndHeight();
} }
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){ protected void initFormatPane(VanChartStylePane parent, JPanel showOnPane){
categoryNameFormatPane = new CategoryNameFormatPaneWithCheckBox(parent, showOnPane); categoryNameFormatPane = new CategoryNameFormatPaneWithCheckBox(parent, showOnPane);
seriesNameFormatPane = new SeriesNameFormatPaneWithCheckBox(parent, showOnPane); seriesNameFormatPane = new SeriesNameFormatPaneWithCheckBox(parent, showOnPane);

12
designer-chart/src/main/java/com/fr/van/chart/designer/style/tooltip/VanChartTooltipPane.java

@ -5,6 +5,7 @@ import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.chart.chartglyph.ConditionAttr; import com.fr.chart.chartglyph.ConditionAttr;
import com.fr.chartx.config.info.constant.ConfigType; import com.fr.chartx.config.info.constant.ConfigType;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.info.ChartInfoCollector; import com.fr.design.mainframe.chart.info.ChartInfoCollector;
import com.fr.plugin.chart.attr.plot.VanChartPlot; import com.fr.plugin.chart.attr.plot.VanChartPlot;
import com.fr.plugin.chart.base.AttrTooltip; import com.fr.plugin.chart.base.AttrTooltip;
@ -27,6 +28,10 @@ public class VanChartTooltipPane extends AbstractVanChartScrollPane<Chart> {
this.parent = parent; this.parent = parent;
} }
public VanChartPlotTooltipPane getPlotTooltipPane() {
return tooltipPane;
}
@Override @Override
protected JPanel createContentPane() { protected JPanel createContentPane() {
JPanel contentPane = new JPanel(new BorderLayout()); JPanel contentPane = new JPanel(new BorderLayout());
@ -48,7 +53,10 @@ public class VanChartTooltipPane extends AbstractVanChartScrollPane<Chart> {
parent.initAllListeners(); parent.initAllListeners();
} }
Plot plot = this.chart.getPlot(); populateTooltipPane(this.chart.getPlot());
}
public void populateTooltipPane(Plot plot) {
DataSeriesCondition attr = ((VanChartPlot)plot).getAttrTooltipFromConditionCollection(); DataSeriesCondition attr = ((VanChartPlot)plot).getAttrTooltipFromConditionCollection();
if(tooltipPane != null) { if(tooltipPane != null) {
tooltipPane.populate((AttrTooltip)attr); tooltipPane.populate((AttrTooltip)attr);
@ -74,7 +82,7 @@ public class VanChartTooltipPane extends AbstractVanChartScrollPane<Chart> {
@Override @Override
public String title4PopupWindow() { public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Tooltip"); return Toolkit.i18nText("Fine-Design_Chart_Tooltip");
} }
protected VanChartPlotTooltipPane getTooltipPane(Plot plot) { protected VanChartPlotTooltipPane getTooltipPane(Plot plot) {

Loading…
Cancel
Save