帆软报表设计器源代码。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

133 lines
4.6 KiB

package com.fr.design.chart.report;
import com.fr.base.TableData;
import com.fr.base.chart.chartdata.TopDefinitionProvider;
import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.ChartCollection;
import com.fr.chart.chartdata.*;
import com.fr.design.beans.FurtherBasicBeanPane;
import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.gui.frpane.UIComboBoxPane;
import com.fr.design.gui.ilable.BoldFontTextLabel;
import com.fr.design.mainframe.AbstractChartDataPane4Chart;
import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.general.Inter;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.*;
/**
* Created by IntelliJ IDEA.
* Author : daisy
* Version: 7.1.1
* Date: 14/12/3
* Time: 下午6:49
*/
public class MapDataPane4Chart extends AbstractChartDataPane4Chart {
private UIComboBoxPane dataContentPane;
private MapMoreCubeLayerPane4Chart morePane = new MapMoreCubeLayerPane4Chart();
private MapSinglePane4Chart singlePane = new MapSinglePane4Chart();
private ChartCollection currentCollection;
private ItemListener itemListener = new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
fireTableDataChange();
}
};
public MapDataPane4Chart(AttributeChangeListener listener, ChartDataPane parent) {
super(listener, parent);
dataContentPane = new UIComboBoxPane<Chart>() {
protected void initLayout() {
this.setLayout(new BorderLayout(0, 6));
JPanel northPane = new JPanel(new FlowLayout(FlowLayout.LEFT));
northPane.add(new BoldFontTextLabel(Inter.getLocText("FR-Chart-Map_ShowWay") + ":"));
northPane.add(jcb);
this.add(northPane, BorderLayout.NORTH);
this.add(cardPane, BorderLayout.CENTER);
}
protected java.util.List<FurtherBasicBeanPane<? extends Chart>> initPaneList() {
java.util.List list = new ArrayList();
list.add(singlePane);
list.add(morePane);
return list;
}
protected void comboBoxItemStateChanged() {
if(currentCollection == null){
return;
}
fireTableDataChange();
morePane.init4PopuMapTree(currentCollection);
}
protected String title4PopupWindow() {
return Inter.getLocText(new String[]{"Chart-Map", "Data"});
}
};
}
protected JPanel getDataContentPane(){
return dataContentPane;
}
@Override
public void populate(ChartCollection collection) {
currentCollection = collection;
morePane.init4PopuMapTree(collection);
if (collection != null && collection.getSelectedChart() != null) {
Chart chart = collection.getSelectedChart();
TopDefinitionProvider definition = chart.getFilterDefinition();
if (definition instanceof TableDataDefinition) {
TableData tableData = ((TableDataDefinition) definition).getTableData();
if(tableData != null){
populateChoosePane(tableData);
fireTableDataChange();
}
}
if(definition instanceof MapSingleLayerTableDefinition) {
singlePane.populateBean(definition);
} else if(definition instanceof MapMoreLayerTableDefinition) {
morePane.populateBean(collection);
}
}
this.remove(leftContentPane);
this.initContentPane();
this.validate();
dataSource.addItemListener(dsListener);
initAllListeners();
initSelfListener(dataContentPane);
this.addAttributeChangeListener(attributeChangeListener);
}
@Override
public void update(ChartCollection collection) {
if(dataContentPane.getSelectedIndex() == 0) {
collection.getSelectedChart().setFilterDefinition(singlePane.updateBean());
} else {
morePane.updateBean(collection);
}
currentCollection = collection;
}
/**
* 数据集数据改变
*/
public void fireTableDataChange() {
if (dataContentPane == null) {
return;
}
if(dataContentPane.getSelectedIndex() == 0) {
singlePane.fireTableDataChanged(choosePane.getTableDataWrapper());
} else {
morePane.fireTableDataChanged(choosePane.getTableDataWrapper());
}
}
}