Browse Source

修改一直触发查询bug,整理chartEditPane加载代码。

master
mengao 7 years ago
parent
commit
4124ad704b
  1. 3
      designer_chart/src/com/fr/design/chart/fun/impl/AbstractIndependentChartUI.java
  2. 3
      designer_chart/src/com/fr/design/chart/fun/impl/AbstractIndependentChartUIWithAPILevel.java
  3. 2
      designer_chart/src/com/fr/design/chart/fun/impl/AbstractIndependentChartsUI.java
  4. 6
      designer_chart/src/com/fr/design/mainframe/ChartPropertyPane.java
  5. 6
      designer_chart/src/com/fr/design/mainframe/MiddleChartPropertyPane.java
  6. 71
      designer_chart/src/com/fr/design/mainframe/chart/ChartEditPane.java
  7. 9
      designer_chart/src/com/fr/design/mainframe/chart/ChartsEditPane.java

3
designer_chart/src/com/fr/design/chart/fun/impl/AbstractIndependentChartUI.java

@ -12,7 +12,6 @@ import com.fr.design.mainframe.chart.ChartsConfigPane;
import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import com.fr.stable.StableUtils;
/** /**
@ -58,7 +57,7 @@ public abstract class AbstractIndependentChartUI implements IndependentChartUIPr
return new DataSeriesConditionPane(); return new DataSeriesConditionPane();
} }
public ChartEditPane getChartEditPane(String plotID){ return StableUtils.construct(ChartEditPane.class);} public ChartEditPane getChartEditPane(String plotID){ return ChartEditPane.getInstance();}
public ChartsConfigPane getChartConfigPane(String plotID){return null;} public ChartsConfigPane getChartConfigPane(String plotID){return null;}

3
designer_chart/src/com/fr/design/chart/fun/impl/AbstractIndependentChartUIWithAPILevel.java

@ -12,7 +12,6 @@ import com.fr.design.mainframe.chart.ChartsConfigPane;
import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import com.fr.stable.StableUtils;
/** /**
* Created by Mitisky on 16/3/7. * Created by Mitisky on 16/3/7.
@ -69,7 +68,7 @@ public abstract class AbstractIndependentChartUIWithAPILevel implements Independ
return getPlotTypePane().title4PopupWindow(); return getPlotTypePane().title4PopupWindow();
} }
public ChartEditPane getChartEditPane(String plotID){ return StableUtils.construct(ChartEditPane.class);} public ChartEditPane getChartEditPane(String plotID){ return ChartEditPane.getInstance();}
public ChartsConfigPane getChartConfigPane(String plotID){return null;} public ChartsConfigPane getChartConfigPane(String plotID){return null;}
} }

2
designer_chart/src/com/fr/design/chart/fun/impl/AbstractIndependentChartsUI.java

@ -97,7 +97,7 @@ public abstract class AbstractIndependentChartsUI extends AbstractProvider imple
@Override @Override
public ChartEditPane getChartEditPane(String plotID) { public ChartEditPane getChartEditPane(String plotID) {
return new ChartsEditPane(); return ChartsEditPane.getInstance();
} }
} }

6
designer_chart/src/com/fr/design/mainframe/ChartPropertyPane.java

@ -14,9 +14,10 @@ public class ChartPropertyPane extends MiddleChartPropertyPane{
* 创建图表属性表实例. * 创建图表属性表实例.
*/ */
private synchronized static ChartPropertyPane getInstance() { private synchronized static ChartPropertyPane getInstance() {
//todo
//创建新图表时,创建属性表配置面板 //创建新图表时,创建属性表配置面板
if (singleton == null) {
singleton = new ChartPropertyPane(); singleton = new ChartPropertyPane();
}
return singleton; return singleton;
} }
@ -36,6 +37,9 @@ public class ChartPropertyPane extends MiddleChartPropertyPane{
@Override @Override
protected void createMainPane() { protected void createMainPane() {
this.removeAll();
createNameLabel();
this.add(createNorthComponent(), BorderLayout.NORTH);
this.add(chartEditPane, BorderLayout.CENTER); this.add(chartEditPane, BorderLayout.CENTER);
} }

6
designer_chart/src/com/fr/design/mainframe/MiddleChartPropertyPane.java

@ -15,7 +15,6 @@ import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itabpane.TitleChangeListener; import com.fr.design.gui.itabpane.TitleChangeListener;
import com.fr.design.mainframe.chart.ChartEditPane; import com.fr.design.mainframe.chart.ChartEditPane;
import com.fr.general.Inter; import com.fr.general.Inter;
import com.fr.stable.StableUtils;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
@ -34,10 +33,7 @@ public abstract class MiddleChartPropertyPane extends BaseChartPropertyPane{
protected void initComponenet() { protected void initComponenet() {
this.setLayout(new BorderLayout()); this.setLayout(new BorderLayout());
this.setBorder(null); this.setBorder(null);
chartEditPane = ChartEditPane.getInstance();
createNameLabel();
this.add(createNorthComponent(), BorderLayout.NORTH);
chartEditPane = StableUtils.construct(ChartEditPane.class);
chartEditPane.setSupportCellData(true); chartEditPane.setSupportCellData(true);
} }

71
designer_chart/src/com/fr/design/mainframe/chart/ChartEditPane.java

@ -6,6 +6,8 @@ import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartattr.ChartCollection;
import com.fr.design.ChartTypeInterfaceManager; import com.fr.design.ChartTypeInterfaceManager;
import com.fr.design.beans.FurtherBasicBeanPane; import com.fr.design.beans.FurtherBasicBeanPane;
import com.fr.design.data.DesignTableDataManager;
import com.fr.design.data.tabledata.Prepare4DataSourceChange;
import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.chart.ChartEditPaneProvider; import com.fr.design.gui.chart.ChartEditPaneProvider;
import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.AttributeChangeListener;
@ -22,12 +24,23 @@ import com.fr.general.FRLogger;
import com.fr.general.Inter; import com.fr.general.Inter;
import javax.swing.*; import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*; import java.awt.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.List; import java.util.List;
public class ChartEditPane extends BasicPane implements AttributeChange, ChartEditPaneProvider { public class ChartEditPane extends BasicPane implements AttributeChange,Prepare4DataSourceChange, ChartEditPaneProvider {
public synchronized static ChartEditPane getInstance() {
if (singleton == null) {
singleton = new ChartEditPane();
}
return singleton;
}
private static ChartEditPane singleton;
private final static int CHANGE_MIN_TIME = 80; private final static int CHANGE_MIN_TIME = 80;
@ -65,9 +78,7 @@ public class ChartEditPane extends BasicPane implements AttributeChange, ChartEd
paneList.add(otherPane); paneList.add(otherPane);
createTabsPane(); createTabsPane();
registerDSChangeListener();
//TableDataComboBox 中有注册DSChangeListener,这里没有必要再次注册。
//registerDSChangeListener();
} }
//构建主面板 //构建主面板
@ -117,7 +128,7 @@ public class ChartEditPane extends BasicPane implements AttributeChange, ChartEd
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {
FRLogger.getLogger().error("error in clone ChartEditPane"); FRLogger.getLogger().error("error in clone ChartEditPane");
} }
if (ComparatorUtils.equals(selectedPane.title4PopupWindow(), PaneTitleConstants.CHART_STYLE_TITLE)) { if(ComparatorUtils.equals(selectedPane.title4PopupWindow(),PaneTitleConstants.CHART_STYLE_TITLE)){
dealWithStyleChange(); dealWithStyleChange();
} }
@ -128,11 +139,10 @@ public class ChartEditPane extends BasicPane implements AttributeChange, ChartEd
/** /**
* 重新构造面板 * 重新构造面板
*
* @param currentChart 图表 * @param currentChart 图表
*/ */
public void reLayout(Chart currentChart) { public void reLayout(Chart currentChart){
if (currentChart != null) { if(currentChart != null){
int chartIndex = getSelectedChartIndex(currentChart); int chartIndex = getSelectedChartIndex(currentChart);
this.removeAll(); this.removeAll();
this.setLayout(new BorderLayout()); this.setLayout(new BorderLayout());
@ -141,21 +151,21 @@ public class ChartEditPane extends BasicPane implements AttributeChange, ChartEd
boolean isDefault = true; boolean isDefault = true;
String plotID = ""; String plotID = "";
if (currentChart.getPlot() != null) { if(currentChart.getPlot() != null){
plotID = currentChart.getPlot().getPlotID(); plotID = currentChart.getPlot().getPlotID();
isDefault = ChartTypeInterfaceManager.getInstance().isUseDefaultPane(plotID); isDefault = ChartTypeInterfaceManager.getInstance().isUseDefaultPane(plotID);
} }
if (isDefault) { if(isDefault){
paneList.add(dataPane4SupportCell); paneList.add(dataPane4SupportCell);
paneList.add(stylePane); paneList.add(stylePane);
paneList.add(otherPane); paneList.add(otherPane);
this.isDefaultPane = true; this.isDefaultPane = true;
} else { }else{
ChartDataPane chartDataPane = createChartDataPane(plotID); ChartDataPane chartDataPane = createChartDataPane(plotID);
paneList.add(chartDataPane); paneList.add(chartDataPane);
AbstractChartAttrPane[] otherPaneList = ChartTypeInterfaceManager.getInstance().getAttrPaneArray(plotID, listener); AbstractChartAttrPane[] otherPaneList = ChartTypeInterfaceManager.getInstance().getAttrPaneArray(plotID, listener);
for (int i = 0; i < otherPaneList.length; i++) { for(int i = 0; i < otherPaneList.length; i++){
otherPaneList[i].addAttributeChangeListener(listener); otherPaneList[i].addAttributeChangeListener(listener);
paneList.add(otherPaneList[i]); paneList.add(otherPaneList[i]);
} }
@ -222,7 +232,7 @@ public class ChartEditPane extends BasicPane implements AttributeChange, ChartEd
return; return;
} }
if (checkNeedsReLayout(collection.getSelectedChart())) { if(checkNeedsReLayout(collection.getSelectedChart())){
reLayout(collection.getSelectedChart()); reLayout(collection.getSelectedChart());
} }
@ -249,12 +259,12 @@ public class ChartEditPane extends BasicPane implements AttributeChange, ChartEd
} }
} }
public int getSelectedChartIndex(Chart chart) { public int getSelectedChartIndex(Chart chart){
int index = 0; int index = 0;
if (typePane != null) { if(typePane != null){
FurtherBasicBeanPane[] paneList = typePane.getPaneList(); FurtherBasicBeanPane[] paneList = typePane.getPaneList();
for (; index < paneList.length; index++) { for(; index < paneList.length; index++){
if (paneList[index].accept(chart)) { if(paneList[index].accept(chart)){
return index; return index;
} }
} }
@ -263,12 +273,12 @@ public class ChartEditPane extends BasicPane implements AttributeChange, ChartEd
} }
//populate的时候看看要不要重构面板 //populate的时候看看要不要重构面板
private boolean checkNeedsReLayout(Chart chart) { private boolean checkNeedsReLayout(Chart chart){
if (chart != null) { if(chart != null){
int lastIndex = typePane.getSelectedIndex(); int lastIndex = typePane.getSelectedIndex();
int currentIndex = getSelectedChartIndex(chart); int currentIndex = getSelectedChartIndex(chart);
boolean currentPane = true; boolean currentPane = true;
if (chart.getPlot() != null) { if(chart.getPlot() != null){
String plotID = chart.getPlot().getPlotID(); String plotID = chart.getPlot().getPlotID();
currentPane = ChartTypeInterfaceManager.getInstance().isUseDefaultPane(plotID); currentPane = ChartTypeInterfaceManager.getInstance().isUseDefaultPane(plotID);
} }
@ -279,10 +289,9 @@ public class ChartEditPane extends BasicPane implements AttributeChange, ChartEd
/** /**
* 当前界面是否是默认的界面 * 当前界面是否是默认的界面
*
* @return 是否是默认的界面 * @return 是否是默认的界面
*/ */
public boolean isDefaultPane() { public boolean isDefaultPane(){
return this.isDefaultPane; return this.isDefaultPane;
} }
@ -314,16 +323,15 @@ public class ChartEditPane extends BasicPane implements AttributeChange, ChartEd
} }
} }
protected void dealWithStyleChange() { protected void dealWithStyleChange(){
} }
/** /**
* 主要用于图表设计器判断样式改变是否来自工具栏的全局样式按钮 *主要用于图表设计器判断样式改变是否来自工具栏的全局样式按钮
*
* @param isFromToolBar 是否来自工具栏 * @param isFromToolBar 是否来自工具栏
*/ */
public void styleChange(boolean isFromToolBar) { public void styleChange(boolean isFromToolBar){
} }
@ -336,4 +344,15 @@ public class ChartEditPane extends BasicPane implements AttributeChange, ChartEd
paneList.get(index).addAttributeChangeListener(listener); paneList.get(index).addAttributeChangeListener(listener);
} }
/**
* 数据集改变的事件监听
*/
public void registerDSChangeListener() {
DesignTableDataManager.addDsChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
AbstractChartAttrPane attrPane = paneList.get(tabsHeaderIconPane.getSelectedIndex());
attrPane.refreshChartDataPane(collection);
}
});
}
} }

9
designer_chart/src/com/fr/design/mainframe/chart/ChartsEditPane.java

@ -13,6 +13,15 @@ import java.util.ArrayList;
public class ChartsEditPane extends ChartEditPane { public class ChartsEditPane extends ChartEditPane {
protected ChartsConfigPane chartsConfigPane; protected ChartsConfigPane chartsConfigPane;
private static ChartEditPane single;
public synchronized static ChartEditPane getInstance() {
if (single == null) {
single = new ChartsEditPane();
}
return single;
}
public ChartsEditPane() { public ChartsEditPane() {
this.setLayout(new BorderLayout()); this.setLayout(new BorderLayout());

Loading…
Cancel
Save