Browse Source

Merge pull request #957 in DESIGN/design from ~ZHENG/c-design:refactor/19.4.3 to refactor/19.4.3

* commit '77d9207fc4b0a43870f76c02acfc88555a52d591':
  xchart rename to chartProvider
  CHART-9141 se.cellCC && floatCC 调用图表统一接口 删除BaseChart 各resultProcessor 初步的流程走通
research/10.0
zheng 5 years ago
parent
commit
6cfda792ff
  1. 15
      designer-base/src/main/java/com/fr/design/gui/chart/MiddleChartComponent.java
  2. 3
      designer-chart/src/main/java/com/fr/design/ChartTypeInterfaceManager.java
  3. 12
      designer-chart/src/main/java/com/fr/design/chart/ChartTypePane.java
  4. 4
      designer-chart/src/main/java/com/fr/design/chart/gui/ChartComponent.java
  5. 6
      designer-chart/src/main/java/com/fr/design/chart/gui/ChartWidgetOption.java
  6. 7
      designer-chart/src/main/java/com/fr/design/chart/gui/active/action/ChartComponentAction.java
  7. 5
      designer-chart/src/main/java/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java
  8. 6
      designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/ChartTypeButtonPane.java
  9. 41
      designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/ChartTypePane.java
  10. 3
      designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/type/AbstractChartTypePane.java
  11. 13
      designer-chart/src/main/java/com/fr/design/module/ChartPreStylePane.java
  12. 3
      designer-chart/src/main/java/com/fr/extended/chart/ExtendedTypePane.java
  13. 9
      designer-realize/src/main/java/com/fr/poly/PolyComponentsBar.java
  14. 24
      designer-realize/src/main/java/com/fr/poly/PolyUtils.java
  15. 133
      designer-realize/src/main/java/com/fr/poly/creator/ChartBlockEditor.java
  16. 6
      designer-realize/src/main/java/com/fr/poly/hanlder/PolyDesignerDropTarget.java

15
designer-base/src/main/java/com/fr/design/gui/chart/MiddleChartComponent.java

@ -1,12 +1,11 @@
package com.fr.design.gui.chart; package com.fr.design.gui.chart;
import javax.swing.JComponent;
import com.fr.base.chart.BaseChart;
import com.fr.base.chart.BaseChartCollection; import com.fr.base.chart.BaseChartCollection;
import com.fr.stable.core.PropertyChangeAdapter; import com.fr.chartx.attr.ChartProvider;
import com.fr.stable.core.PropertyChangeListener; import com.fr.stable.core.PropertyChangeListener;
import javax.swing.JComponent;
/** /**
* @author kunsnat E-mail:kunsnat@gmail.com * @author kunsnat E-mail:kunsnat@gmail.com
* @version 创建时间2013-7-10 上午09:19:36 * @version 创建时间2013-7-10 上午09:19:36
@ -18,8 +17,8 @@ public abstract class MiddleChartComponent extends JComponent {
public abstract BaseChartCollection update(); public abstract BaseChartCollection update();
public abstract void reset(); public abstract void reset();
public abstract BaseChart getEditingChart(); public abstract ChartProvider getEditingChart();
public abstract void addStopEditingListener(PropertyChangeListener list); public abstract void addStopEditingListener(PropertyChangeListener list);
} }

3
designer-chart/src/main/java/com/fr/design/ChartTypeInterfaceManager.java

@ -5,6 +5,7 @@ import com.fr.chart.base.ChartInternationalNameContentBean;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.chart.charttypes.ChartTypeManager; import com.fr.chart.charttypes.ChartTypeManager;
import com.fr.chartx.attr.ChartProvider;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.beans.FurtherBasicBeanPane; import com.fr.design.beans.FurtherBasicBeanPane;
import com.fr.design.chart.fun.IndependentChartUIProvider; import com.fr.design.chart.fun.IndependentChartUIProvider;
@ -161,7 +162,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr
int index = 0; int index = 0;
for (ChartInternationalNameContentBean bean : typeName) { for (ChartInternationalNameContentBean bean : typeName) {
String plotID = bean.getPlotID(); String plotID = bean.getPlotID();
Chart[] rowChart = ChartTypeManager.getInstance().getChartTypes(plotID); ChartProvider[] rowChart = ChartTypeManager.getInstance().getChartTypes(plotID);
if (ArrayUtils.isEmpty(rowChart) && !ChartTypeManager.innerChart(plotID)) { if (ArrayUtils.isEmpty(rowChart) && !ChartTypeManager.innerChart(plotID)) {
continue; continue;
} }

12
designer-chart/src/main/java/com/fr/design/chart/ChartTypePane.java

@ -11,6 +11,7 @@ import com.fr.chart.chartattr.ChartIcon;
import com.fr.chart.chartattr.MapPlot; import com.fr.chart.chartattr.MapPlot;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.chart.charttypes.ChartTypeManager; import com.fr.chart.charttypes.ChartTypeManager;
import com.fr.chartx.attr.ChartProvider;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.utils.gui.GUICoreUtils;
@ -36,12 +37,13 @@ public class ChartTypePane extends ChartCommonWizardPane {
private static final long serialVersionUID = -1175602484968520546L; private static final long serialVersionUID = -1175602484968520546L;
private ChartInternationalNameContentBean[] typeName = ChartTypeManager.getInstanceWithCheck().getAllChartBaseNames(); private ChartInternationalNameContentBean[] typeName = ChartTypeManager.getInstanceWithCheck().getAllChartBaseNames();
//todo@shinerefactor 这个页面所有强转Chart的地方都要处理一下
private Chart[][] charts4Icon = null; private Chart[][] charts4Icon = null;
{ {
charts4Icon = new Chart[this.typeName.length][]; charts4Icon = new Chart[this.typeName.length][];
for (int i = 0; i < this.typeName.length; i++) { for (int i = 0; i < this.typeName.length; i++) {
Chart[] rowCharts = ChartTypeManager.getInstanceWithCheck().getChartTypes(this.typeName[i].getPlotID()); ChartProvider[] rowCharts = ChartTypeManager.getInstanceWithCheck().getChartTypes(this.typeName[i].getPlotID());
int rowChartsCount = rowCharts.length; int rowChartsCount = rowCharts.length;
charts4Icon[i] = new Chart[rowChartsCount]; charts4Icon[i] = new Chart[rowChartsCount];
for (int j = 0; j < rowChartsCount; j++) { for (int j = 0; j < rowChartsCount; j++) {
@ -145,9 +147,9 @@ public class ChartTypePane extends ChartCommonWizardPane {
int subIndex = 0; int subIndex = 0;
for (int i = 0; i < typeName.length; i++) { for (int i = 0; i < typeName.length; i++) {
Chart[] charts = ChartTypeManager.getInstanceWithCheck().getChartTypes(typeName[i].getPlotID()); ChartProvider[] charts = ChartTypeManager.getInstanceWithCheck().getChartTypes(typeName[i].getPlotID());
for (int j = 0; j < charts.length; j++) { for (int j = 0; j < charts.length; j++) {
if (charts[j].getPlot().match4GUI(plot)) { if (((Chart) charts[j]).getPlot().match4GUI(plot)) {
mainIndex = i; mainIndex = i;
subIndex = j; subIndex = j;
// 一旦匹配 立马中断 // 一旦匹配 立马中断
@ -162,7 +164,7 @@ public class ChartTypePane extends ChartCommonWizardPane {
public void update(Chart oldChart) { public void update(Chart oldChart) {
String plotID = typeName[mainTypeList.getSelectedIndex()].getPlotID(); String plotID = typeName[mainTypeList.getSelectedIndex()].getPlotID();
Chart chart = ChartTypeManager.getInstanceWithCheck().getChartTypes(plotID)[iconViewList.getSelectedIndex()]; Chart chart = (Chart) ChartTypeManager.getInstanceWithCheck().getChartTypes(plotID)[iconViewList.getSelectedIndex()];
if(chart.getPlot() != null){ if(chart.getPlot() != null){
if(chart.getPlot() instanceof MapPlot && !supportMap()){ if(chart.getPlot() instanceof MapPlot && !supportMap()){
JOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Map_Not_Supported")); JOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Map_Not_Supported"));
@ -191,7 +193,7 @@ public class ChartTypePane extends ChartCommonWizardPane {
Chart chart4Update = cc.getSelectedChart(); Chart chart4Update = cc.getSelectedChart();
if (chart4Update == null) { if (chart4Update == null) {
String plotID = typeName[mainTypeList.getSelectedIndex()].getPlotID(); String plotID = typeName[mainTypeList.getSelectedIndex()].getPlotID();
Chart chart = ChartTypeManager.getInstance().getChartTypes(plotID)[iconViewList.getSelectedIndex()]; Chart chart = (Chart) ChartTypeManager.getInstance().getChartTypes(plotID)[iconViewList.getSelectedIndex()];
try{ try{
chart4Update = (Chart)chart.clone(); chart4Update = (Chart)chart.clone();
cc.addChart(chart4Update); cc.addChart(chart4Update);

4
designer-chart/src/main/java/com/fr/design/chart/gui/ChartComponent.java

@ -1,7 +1,6 @@
package com.fr.design.chart.gui; package com.fr.design.chart.gui;
import com.fr.base.ScreenResolution; import com.fr.base.ScreenResolution;
import com.fr.base.chart.BaseChart;
import com.fr.base.chart.BaseChartCollection; import com.fr.base.chart.BaseChartCollection;
import com.fr.base.chart.BaseChartGlyph; import com.fr.base.chart.BaseChartGlyph;
import com.fr.base.chart.chartdata.CallbackEvent; import com.fr.base.chart.chartdata.CallbackEvent;
@ -10,6 +9,7 @@ import com.fr.chart.chartattr.Axis;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartattr.ChartCollection;
import com.fr.chart.chartglyph.AxisGlyph; import com.fr.chart.chartglyph.AxisGlyph;
import com.fr.chartx.attr.ChartProvider;
import com.fr.design.chart.gui.active.ActiveGlyph; import com.fr.design.chart.gui.active.ActiveGlyph;
import com.fr.design.chart.gui.active.ChartActiveGlyph; import com.fr.design.chart.gui.active.ChartActiveGlyph;
import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.file.HistoryTemplateListPane;
@ -162,7 +162,7 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene
return (this.chartCollection4Design == null) ? 0 : this.chartCollection4Design.getChartCount(); return (this.chartCollection4Design == null) ? 0 : this.chartCollection4Design.getChartCount();
} }
public BaseChart getEditingChart() { public ChartProvider getEditingChart() {
return editingChart; return editingChart;
} }

6
designer-chart/src/main/java/com/fr/design/chart/gui/ChartWidgetOption.java

@ -1,7 +1,7 @@
package com.fr.design.chart.gui; package com.fr.design.chart.gui;
import com.fr.chart.chartattr.Chart;
import com.fr.chart.charttypes.ChartTypeManager; import com.fr.chart.charttypes.ChartTypeManager;
import com.fr.chartx.attr.ChartProvider;
import com.fr.design.gui.core.WidgetOption; import com.fr.design.gui.core.WidgetOption;
import com.fr.form.ui.ChartEditor; import com.fr.form.ui.ChartEditor;
import com.fr.form.ui.Widget; import com.fr.form.ui.Widget;
@ -38,8 +38,8 @@ public class ChartWidgetOption extends WidgetOption {
Class<? extends ChartEditor> clz = widgetClass(); Class<? extends ChartEditor> clz = widgetClass();
try { try {
ChartEditor widget = clz.newInstance(); ChartEditor widget = clz.newInstance();
Chart chart = ChartTypeManager.getInstanceWithCheck().getChartTypes(this.chartID)[0]; ChartProvider chart = ChartTypeManager.getInstanceWithCheck().getChartTypes(this.chartID)[0];
widget.addChart((Chart) chart.clone()); widget.addChart((ChartProvider) chart.clone());
return widget; return widget;
} catch (InstantiationException e) { } catch (InstantiationException e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e); FineLoggerFactory.getLogger().error(e.getMessage(), e);

7
designer-chart/src/main/java/com/fr/design/chart/gui/active/action/ChartComponentAction.java

@ -1,11 +1,10 @@
package com.fr.design.chart.gui.active.action; package com.fr.design.chart.gui.active.action;
import com.fr.base.chart.BaseChart;
import com.fr.chart.chartattr.Axis; import com.fr.chart.chartattr.Axis;
import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartattr.ChartCollection;
import com.fr.chart.chartglyph.AxisGlyph; import com.fr.chart.chartglyph.AxisGlyph;
import com.fr.design.chart.gui.ChartComponent;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.chart.gui.ChartComponent;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@ -29,10 +28,6 @@ public abstract class ChartComponentAction extends UpdateAction {
chartComponent.repaint(); chartComponent.repaint();
} }
public BaseChart getEditingChart() {
return chartComponent.getEditingChart();
}
public ChartCollection getChartCollection() { public ChartCollection getChartCollection() {
return chartComponent.getChartCollection(); return chartComponent.getChartCollection();
} }

5
designer-chart/src/main/java/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java

@ -6,6 +6,7 @@ import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartattr.ChartCollection;
import com.fr.chart.charttypes.ChartTypeManager; import com.fr.chart.charttypes.ChartTypeManager;
import com.fr.chart.web.ChartHyperPoplink; import com.fr.chart.web.ChartHyperPoplink;
import com.fr.chartx.attr.ChartProvider;
import com.fr.design.chart.gui.ChartComponent; import com.fr.design.chart.gui.ChartComponent;
import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.hyperlink.AbstractHyperLinkPane; import com.fr.design.hyperlink.AbstractHyperLinkPane;
@ -66,10 +67,10 @@ public class ChartHyperPoplinkPane extends AbstractHyperLinkPane<ChartHyperPopli
private ChartCollection createChartCollection() { private ChartCollection createChartCollection() {
ChartCollection cc = new ChartCollection(); ChartCollection cc = new ChartCollection();
Chart chart = ChartTypeManager.getInstanceWithCheck().getFirstChart(); ChartProvider chart = ChartTypeManager.getInstanceWithCheck().getFirstChart();
if (chart != null) { if (chart != null) {
try { try {
cc.addChart((Chart) chart.clone()); cc.addChart((ChartProvider) chart.clone());
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e); FineLoggerFactory.getLogger().error(e.getMessage(), e);
} }

6
designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/ChartTypeButtonPane.java

@ -2,10 +2,10 @@ package com.fr.design.mainframe.chart.gui;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.chart.base.AttrChangeConfig; import com.fr.chart.base.AttrChangeConfig;
import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartattr.ChartCollection;
import com.fr.chart.chartattr.SwitchState; import com.fr.chart.chartattr.SwitchState;
import com.fr.chart.charttypes.ChartTypeManager; import com.fr.chart.charttypes.ChartTypeManager;
import com.fr.chartx.attr.ChartProvider;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.dialog.DialogActionListener; import com.fr.design.dialog.DialogActionListener;
import com.fr.design.dialog.UIDialog; import com.fr.design.dialog.UIDialog;
@ -135,9 +135,9 @@ public class ChartTypeButtonPane extends BasicBeanPane<ChartCollection> implemen
if (editingCollection != null) { if (editingCollection != null) {
//点击添加按钮,则会触发切换状态 //点击添加按钮,则会触发切换状态
Chart chart = editingCollection.getChangeStateNewChart(); ChartProvider chart = editingCollection.getChangeStateNewChart();
try { try {
Chart newChart = (Chart) chart.clone(); ChartProvider newChart = (ChartProvider) chart.clone();
editingCollection.addNamedChart(name, newChart); editingCollection.addNamedChart(name, newChart);
} catch (CloneNotSupportedException e1) { } catch (CloneNotSupportedException e1) {
FineLoggerFactory.getLogger().error("Error in Clone"); FineLoggerFactory.getLogger().error("Error in Clone");

41
designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/ChartTypePane.java

@ -41,30 +41,6 @@ public class ChartTypePane extends AbstractChartAttrPane{
private ChartTypeButtonPane buttonPane; private ChartTypeButtonPane buttonPane;
private ChartEditPane editPane; private ChartEditPane editPane;
private ChartCollection editingCollection; private ChartCollection editingCollection;
private PaneState paneState = new PaneState();
private class PaneState{
//记录面板所处状态
private SwitchState paneState = SwitchState.DEFAULT;
//记录当前面板是谁在使用切换状态
private String chartID = StringUtils.EMPTY;
public SwitchState getPaneState() {
return paneState;
}
public void setPaneState(SwitchState paneState) {
this.paneState = paneState;
}
public String getChartID() {
return chartID;
}
public void setChartID(String chartID) {
this.chartID = chartID;
}
}
@Override @Override
protected JPanel createContentPane() { protected JPanel createContentPane() {
@ -337,22 +313,7 @@ public class ChartTypePane extends AbstractChartAttrPane{
public void relayoutChartTypePane(ChartCollection collection){ public void relayoutChartTypePane(ChartCollection collection){
if (needRelayout(collection)) { chartTypeComBox.relayout(collection);
chartTypeComBox.relayout(collection);
//设置面板切换状态
updatePaneState(collection);
}
}
private void updatePaneState(ChartCollection collection) {
paneState.setChartID(collection.getRepresentChartID());
paneState.setPaneState(collection.getState());
}
// TODO: 2016/11/17 因为现在populate面板时会重新构造面板,所以每次都需要重构
private boolean needRelayout(ChartCollection collection) {
/*return paneState.getChartID() != collection.getRepresentChartID() || paneState.getPaneState() != collection.getState();*/
return true;
} }
/** /**

3
designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/type/AbstractChartTypePane.java

@ -17,6 +17,7 @@ import com.fr.chart.chartattr.Plot;
import com.fr.chart.chartattr.Title; import com.fr.chart.chartattr.Title;
import com.fr.chart.chartglyph.ConditionAttr; import com.fr.chart.chartglyph.ConditionAttr;
import com.fr.chart.charttypes.BarIndependentChart; import com.fr.chart.charttypes.BarIndependentChart;
import com.fr.chartx.attr.ChartProvider;
import com.fr.design.beans.FurtherBasicBeanPane; import com.fr.design.beans.FurtherBasicBeanPane;
import com.fr.design.chart.series.PlotStyle.ChartSelectDemoPane; import com.fr.design.chart.series.PlotStyle.ChartSelectDemoPane;
import com.fr.design.gui.ilable.BoldFontTextLabel; import com.fr.design.gui.ilable.BoldFontTextLabel;
@ -616,7 +617,7 @@ public abstract class AbstractChartTypePane extends FurtherBasicBeanPane<Chart>{
return typePane; return typePane;
} }
public Chart getDefaultChart() { public ChartProvider getDefaultChart() {
return BarIndependentChart.barChartTypes[0]; return BarIndependentChart.barChartTypes[0];
} }
} }

13
designer-chart/src/main/java/com/fr/design/module/ChartPreStylePane.java

@ -5,7 +5,6 @@ import com.fr.chart.base.ChartUtils;
import com.fr.chart.chartattr.Bar2DPlot; import com.fr.chart.chartattr.Bar2DPlot;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartattr.ChartCollection;
import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.chart.gui.ChartComponent; import com.fr.design.chart.gui.ChartComponent;
import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserver;
@ -13,7 +12,6 @@ import com.fr.design.event.UIObserverListener;
import com.fr.design.gui.ilable.BoldFontTextLabel; import com.fr.design.gui.ilable.BoldFontTextLabel;
import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.FRGUIPaneFactory;
import javax.swing.JPanel; import javax.swing.JPanel;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Component; import java.awt.Component;
@ -30,7 +28,8 @@ public class ChartPreStylePane extends BasicBeanPane<ChartColorMatching> {
private ChartPreFillStylePane fillStylePane; private ChartPreFillStylePane fillStylePane;
private ChartComponent chartComponent; private ChartComponent chartComponent;
private Bar2DPlot demoPlot;
public ChartPreStylePane() { public ChartPreStylePane() {
this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.setLayout(FRGUIPaneFactory.createBorderLayout());
@ -50,8 +49,9 @@ public class ChartPreStylePane extends BasicBeanPane<ChartColorMatching> {
this.add(boxPane, BorderLayout.CENTER); this.add(boxPane, BorderLayout.CENTER);
ChartCollection cc = new ChartCollection(); ChartCollection cc = new ChartCollection();
cc.addChart(new Chart(new Bar2DPlot())); demoPlot = new Bar2DPlot();
cc.addChart(new Chart(demoPlot));
chartComponent = new ChartComponent(); chartComponent = new ChartComponent();
chartComponent.populate(cc); chartComponent.populate(cc);
chartComponent.setPreferredSize(new Dimension(400, 300)); chartComponent.setPreferredSize(new Dimension(400, 300));
@ -82,8 +82,7 @@ public class ChartPreStylePane extends BasicBeanPane<ChartColorMatching> {
private void refreshWhenStyleChange(ChartColorMatching preStyle) { private void refreshWhenStyleChange(ChartColorMatching preStyle) {
if(chartComponent != null) { if(chartComponent != null) {
Plot plot = (Plot) chartComponent.getEditingChart().getBasePlot(); demoPlot.setPlotFillStyle(ChartUtils.chartColorMatching2AttrFillStyle(preStyle));
plot.setPlotFillStyle(ChartUtils.chartColorMatching2AttrFillStyle(preStyle));
chartComponent.reset(); chartComponent.reset();
} }
} }

3
designer-chart/src/main/java/com/fr/extended/chart/ExtendedTypePane.java

@ -2,6 +2,7 @@ package com.fr.extended.chart;
import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Chart;
import com.fr.chart.charttypes.ChartTypeManager; import com.fr.chart.charttypes.ChartTypeManager;
import com.fr.chartx.attr.ChartProvider;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
import com.fr.design.mainframe.chart.gui.type.ChartImagePane; import com.fr.design.mainframe.chart.gui.type.ChartImagePane;
@ -65,7 +66,7 @@ public class ExtendedTypePane<T extends AbstractChart> extends AbstractChartType
} }
@Override @Override
public Chart getDefaultChart() { public ChartProvider getDefaultChart() {
return ChartTypeManager.getInstance().getChartTypes(getPlotID())[0]; return ChartTypeManager.getInstance().getChartTypes(getPlotID())[0];
} }

9
designer-realize/src/main/java/com/fr/poly/PolyComponentsBar.java

@ -1,7 +1,7 @@
package com.fr.poly; package com.fr.poly;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.base.chart.BaseChart; import com.fr.base.chart.BaseChartCollection;
import com.fr.base.chart.BaseChartGetter; import com.fr.base.chart.BaseChartGetter;
import com.fr.base.chart.BaseChartNameID; import com.fr.base.chart.BaseChartNameID;
import com.fr.base.vcs.DesignerMode; import com.fr.base.vcs.DesignerMode;
@ -64,9 +64,10 @@ public class PolyComponentsBar extends JToolBar {
); );
this.add(serIcons[0]); this.add(serIcons[0]);
for (int i = 0; i < typeLen; i++) { for (int i = 0; i < typeLen; i++) {
BaseChart[] rowChart = BaseChartGetter.getStaticChartTypes(typeName[i].getPlotID()); String chartID = typeName[i].getPlotID();
String iconPath = ChartTypeInterfaceManager.getInstance().getIconPath(typeName[i].getPlotID()); String iconPath = ChartTypeInterfaceManager.getInstance().getIconPath(chartID);
serIcons[i + 1] = new SerIcon(rowChart[0], InterProviderFactory.getProvider().getLocText(typeName[i].getName()), iconPath); BaseChartCollection chartCollection = BaseChartGetter.getStaticChartCollection(chartID);
serIcons[i + 1] = new SerIcon(chartCollection, InterProviderFactory.getProvider().getLocText(typeName[i].getName()), iconPath);
this.add(serIcons[i + 1]); this.add(serIcons[i + 1]);
} }

24
designer-realize/src/main/java/com/fr/poly/PolyUtils.java

@ -4,9 +4,7 @@
package com.fr.poly; package com.fr.poly;
import com.fr.base.ScreenResolution; import com.fr.base.ScreenResolution;
import com.fr.base.chart.BaseChart;
import com.fr.base.chart.BaseChartCollection; import com.fr.base.chart.BaseChartCollection;
import com.fr.base.chart.BasePlot;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.poly.creator.BlockCreator; import com.fr.poly.creator.BlockCreator;
import com.fr.poly.creator.ChartBlockCreator; import com.fr.poly.creator.ChartBlockCreator;
@ -15,7 +13,6 @@ import com.fr.poly.model.AddedData;
import com.fr.report.poly.PolyChartBlock; import com.fr.report.poly.PolyChartBlock;
import com.fr.report.poly.PolyECBlock; import com.fr.report.poly.PolyECBlock;
import com.fr.report.poly.TemplateBlock; import com.fr.report.poly.TemplateBlock;
import com.fr.stable.bridge.StableFactory;
import java.awt.Point; import java.awt.Point;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
@ -53,10 +50,8 @@ public class PolyUtils {
public static BlockCreator createCreator(Class clazz) { public static BlockCreator createCreator(Class clazz) {
return createCreator(blockGenerate(clazz)); return createCreator(blockGenerate(clazz));
} }
public static BlockCreator createCreator(BaseChart chart) { public static BlockCreator createCreator(BaseChartCollection cc) {
BaseChartCollection cc = (BaseChartCollection)StableFactory.createXmlObject(BaseChartCollection.XML_TAG);
cc.addChart(chart);
TemplateBlock block = new PolyChartBlock(cc); TemplateBlock block = new PolyChartBlock(cc);
return createCreator(block); return createCreator(block);
} }
@ -66,20 +61,7 @@ public class PolyUtils {
try { try {
block = (TemplateBlock) clazz.newInstance(); block = (TemplateBlock) clazz.newInstance();
} catch (Exception e) { } catch (Exception e) {
try { FineLoggerFactory.getLogger().error(e.getMessage(), e);
BasePlot plot = (BasePlot)clazz.newInstance();
BaseChartCollection cc = (BaseChartCollection)StableFactory.createXmlObject(BaseChartCollection.XML_TAG);
BaseChart chart = (BaseChart)StableFactory.createXmlObject(BaseChart.XML_TAG);
chart.initChart(plot);
cc.addChart(chart);
block = new PolyChartBlock(cc);
} catch (InstantiationException e1) {
FineLoggerFactory.getLogger().error(e1.getMessage(), e1);
} catch (IllegalAccessException e1) {
FineLoggerFactory.getLogger().error(e1.getMessage(), e1);
}
} }
return block; return block;
} }

133
designer-realize/src/main/java/com/fr/poly/creator/ChartBlockEditor.java

@ -3,25 +3,15 @@
*/ */
package com.fr.poly.creator; package com.fr.poly.creator;
import com.fr.base.BaseUtils;
import com.fr.base.ScreenResolution;
import com.fr.base.chart.BaseChart;
import com.fr.base.chart.BaseChartCollection; import com.fr.base.chart.BaseChartCollection;
import com.fr.base.chart.BaseChartGetter;
import com.fr.base.chart.BaseChartNameID;
import com.fr.base.vcs.DesignerMode; import com.fr.base.vcs.DesignerMode;
import com.fr.design.border.UIRoundedBorder;
import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.gui.chart.MiddleChartComponent; import com.fr.design.gui.chart.MiddleChartComponent;
import com.fr.design.mainframe.EastRegionContainerPane; import com.fr.design.mainframe.EastRegionContainerPane;
import com.fr.design.mainframe.JSliderPane;
import com.fr.design.mainframe.JTemplate; import com.fr.design.mainframe.JTemplate;
import com.fr.design.mainframe.NoSupportAuthorityEdit; import com.fr.design.mainframe.NoSupportAuthorityEdit;
import com.fr.design.mainframe.cell.QuickEditorRegion; import com.fr.design.mainframe.cell.QuickEditorRegion;
import com.fr.design.module.DesignModuleFactory; import com.fr.design.module.DesignModuleFactory;
import com.fr.design.utils.gui.LayoutUtils;
import com.fr.general.ComparatorUtils;
import com.fr.log.FineLoggerFactory;
import com.fr.poly.PolyConstants; import com.fr.poly.PolyConstants;
import com.fr.poly.PolyDesigner; import com.fr.poly.PolyDesigner;
import com.fr.poly.PolyDesigner.SelectionType; import com.fr.poly.PolyDesigner.SelectionType;
@ -31,13 +21,8 @@ import com.fr.report.poly.PolyChartBlock;
import com.fr.stable.core.PropertyChangeAdapter; import com.fr.stable.core.PropertyChangeAdapter;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.JPanel;
import javax.swing.JToggleButton;
import javax.swing.border.Border;
import java.awt.Color; import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Rectangle; import java.awt.Rectangle;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
@ -48,31 +33,10 @@ import java.awt.event.MouseEvent;
*/ */
// 图片的命名必须符合下面的代码规范(chart类别+序号的方式) 不然读取不到指定图片 // 图片的命名必须符合下面的代码规范(chart类别+序号的方式) 不然读取不到指定图片
public class ChartBlockEditor extends BlockEditor<MiddleChartComponent, PolyChartBlock> { public class ChartBlockEditor extends BlockEditor<MiddleChartComponent, PolyChartBlock> {
private static final int BOUND_OFF = 21;
private static Border buttonBorder;
private static String[][] chartsNames;
private static BaseChartNameID[] typeName = BaseChartGetter.getStaticAllChartBaseNames();
private int resolution = (int) (ScreenResolution.getScreenResolution()* JSliderPane.getInstance().resolutionTimes);
static {
buttonBorder = new UIRoundedBorder(new Color(149, 149, 149), 1, 5);
chartsNames = new String[typeName.length][];
for (int i = 0; i < typeName.length; i++) {
BaseChart[] rowCharts = BaseChartGetter.getStaticChartTypes(typeName[i].getPlotID());
chartsNames[i] = new String[rowCharts.length];
for (int j = 0; j < rowCharts.length; j++) {
chartsNames[i][j] = rowCharts[j].getChartName();
}
}
}
private ChartButton[] chartButtons = null;
public ChartBlockEditor(PolyDesigner designer, ChartBlockCreator creator) { public ChartBlockEditor(PolyDesigner designer, ChartBlockCreator creator) {
super(designer, creator); super(designer, creator);
this.resolution = creator.resolution; this.resolution = creator.resolution;
//shine:和产品商量后决定把最上面一排切换按钮去掉
// this.initNorthBarComponent();
} }
@ -80,33 +44,6 @@ public class ChartBlockEditor extends BlockEditor<MiddleChartComponent, PolyChar
this.resolution = resolution; this.resolution = resolution;
} }
private void initNorthBarComponent() {
JPanel charttypeToolbar = new JPanel(new FlowLayout(FlowLayout.LEFT, 2, 0));
this.add(BlockEditorLayout.TOP, charttypeToolbar);
BaseChart chart = editComponent.getEditingChart();
String selectedName = chart.getChartName();
int index = 0;
for (int i = 0; i < typeName.length; i++) {
String[] rowCharts = chartsNames[i];
for (int j = 0; j < rowCharts.length; j++) {
if (ComparatorUtils.equals(selectedName, rowCharts[j])) {
index = i;
break;
}
}
}
String plotID = typeName[index].getPlotID();
BaseChart[] charts = BaseChartGetter.getStaticChartTypes(plotID);
chartButtons = new ChartButton[charts.length];
for (int i = 0, l = charts.length; i < l; i++) {
chartButtons[i] = new ChartButton(charts[i], charts[i].getChartName(), typeName[index].getName(), i);
charttypeToolbar.add(chartButtons[i]);
}
}
/** /**
* 检查控件是否可用 * 检查控件是否可用
*/ */
@ -192,76 +129,6 @@ public class ChartBlockEditor extends BlockEditor<MiddleChartComponent, PolyChar
} }
private class ChartButton extends JToggleButton {
private BaseChart chart;
public ChartButton(BaseChart chart, String text, String pathName, int index) {
this.chart = chart;
this.setToolTipText(text);
String path = "com/fr/design/images/poly/" + pathName + '/' + pathName + '-' + index + ".png";
Icon icon = null;
try {
icon = BaseUtils.readIcon(path);
} catch (Exception e) {
icon = BaseUtils.readIcon("com/fr/design/images/poly/normal.png");
}
this.setIcon(icon);
this.setBorder(null);
this.setMargin(null);
this.setOpaque(false);
this.setContentAreaFilled(false);
this.setFocusPainted(false);
this.setRequestFocusEnabled(false);
this.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (DesignerMode.isAuthorityEditing()) {
return;
}
BaseChart chart = null;
try {
chart = (BaseChart) ChartButton.this.chart.clone();
} catch (CloneNotSupportedException ex) {
FineLoggerFactory.getLogger().error(ex.getMessage(), ex);
return;
}
BaseChartCollection cc = creator.getValue().getChartCollection();
cc.switchPlot(chart.getBasePlot());
initEffective(cc);
creator.setValue(creator.getValue());
ChartBlockEditor.this.removeAll();
ChartBlockEditor.this.initComponets();
ChartBlockEditor.this.initNorthBarComponent();
ChartBlockEditor.this.addColumnRowListeners();
ChartBlockEditor.this.addBoundsListener();
ChartBlockEditor.this.initDataChangeListener();
ChartBlockEditor.this.doLayout();
ChartBlockEditor.this.repaint();
QuickEditorRegion.getInstance().populate(creator.getQuickEditor(designer));
LayoutUtils.layoutRootContainer(designer);
designer.fireTargetModified();
designer.repaint();
}
@Override
public void mouseEntered(MouseEvent e) {
ChartButton.this.setBorder(buttonBorder);
}
@Override
public void mouseExited(MouseEvent e) {
ChartButton.this.setBorder(null);
}
});
}
@Override
public Dimension getPreferredSize() {
return new Dimension(22, 22);
}
}
public MiddleChartComponent getEditChartComponent() { public MiddleChartComponent getEditChartComponent() {
return createEffective(); return createEffective();
} }

6
designer-realize/src/main/java/com/fr/poly/hanlder/PolyDesignerDropTarget.java

@ -4,7 +4,7 @@
package com.fr.poly.hanlder; package com.fr.poly.hanlder;
import com.fr.base.ScreenResolution; import com.fr.base.ScreenResolution;
import com.fr.base.chart.BaseChart; import com.fr.base.chart.BaseChartCollection;
import com.fr.base.vcs.DesignerMode; import com.fr.base.vcs.DesignerMode;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
import com.fr.grid.Grid; import com.fr.grid.Grid;
@ -73,8 +73,8 @@ public class PolyDesignerDropTarget extends DropTargetAdapter {
if (obj instanceof Class) { if (obj instanceof Class) {
Class clazz = (Class) obj; Class clazz = (Class) obj;
creator = PolyUtils.createCreator(clazz); creator = PolyUtils.createCreator(clazz);
} else if (obj instanceof BaseChart) { } else if (obj instanceof BaseChartCollection) {
creator = PolyUtils.createCreator((BaseChart) obj); creator = PolyUtils.createCreator((BaseChartCollection) obj);
} }
if (creator == null) { if (creator == null) {
return; return;

Loading…
Cancel
Save