Qinghui.Liu
4 years ago
13 changed files with 184 additions and 401 deletions
@ -1,361 +0,0 @@ |
|||||||
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.design.mainframe.chart.gui.style.ChartTextAttrPane; |
|
||||||
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<AttrTooltipContent> { |
|
||||||
|
|
||||||
private UIButtonGroup<Integer> content; |
|
||||||
|
|
||||||
private ValueFormatPaneWithCheckBox valueFormatPane; |
|
||||||
private PercentFormatPaneWithCheckBox percentFormatPane; |
|
||||||
private CategoryNameFormatPaneWithCheckBox categoryNameFormatPane; |
|
||||||
private SeriesNameFormatPaneWithCheckBox seriesNameFormatPane; |
|
||||||
|
|
||||||
//监控刷新时,自动数据点提示使用
|
|
||||||
private ChangedValueFormatPaneWithCheckBox changedValueFormatPane; |
|
||||||
private ChangedPercentFormatPaneWithCheckBox changedPercentFormatPane; |
|
||||||
private UIButtonGroup<Integer> styleButton; |
|
||||||
private ChartTextAttrPane textAttrPane; |
|
||||||
private JPanel centerPane; |
|
||||||
private JPanel commonPanel; |
|
||||||
private JPanel stylePanel; |
|
||||||
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); |
|
||||||
stylePanel = createTextStylePane(); |
|
||||||
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 paramsPanel = TableLayout4VanChartHelper.createGapTableLayoutPane(components, row, column); |
|
||||||
|
|
||||||
JPanel contentPane = new JPanel(new BorderLayout()); |
|
||||||
contentPane.add(paramsPanel, BorderLayout.CENTER); |
|
||||||
contentPane.add(stylePanel, BorderLayout.SOUTH); |
|
||||||
|
|
||||||
return getLabelContentPane(contentPane); |
|
||||||
} |
|
||||||
|
|
||||||
protected boolean hasTextStylePane() { |
|
||||||
return true; |
|
||||||
} |
|
||||||
|
|
||||||
private JPanel createTextStylePane() { |
|
||||||
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() { |
|
||||||
if (hasTextStylePane()) { |
|
||||||
stylePanel.setVisible(true); |
|
||||||
textAttrPane.setVisible(styleButton.getSelectedIndex() == 1); |
|
||||||
} else { |
|
||||||
stylePanel.setVisible(false); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
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); |
|
||||||
} |
|
||||||
if (hasTextStylePane()) { |
|
||||||
this.styleButton.setSelectedIndex(attrTooltipContent.isCustom() ? 1 : 0); |
|
||||||
this.textAttrPane.populate(attrTooltipContent.getTextAttr()); |
|
||||||
} |
|
||||||
checkCardPane(); |
|
||||||
checkStylePane(); |
|
||||||
} |
|
||||||
|
|
||||||
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()); |
|
||||||
|
|
||||||
if (hasTextStylePane()) { |
|
||||||
attrTooltipContent.setCustom(styleButton.getSelectedIndex() == 1); |
|
||||||
attrTooltipContent.setTextAttr(this.textAttrPane.update()); |
|
||||||
} |
|
||||||
|
|
||||||
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); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
Loading…
Reference in new issue