帆软报表设计器源代码。
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.
 
 
 
 

171 lines
6.7 KiB

package com.fr.van.chart.gantt.designer.data.data.component;
import com.fr.chart.chartattr.ChartCollection;
import com.fr.chart.chartdata.TopDefinition;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane;
import com.fr.general.ComparatorUtils;
import com.fr.plugin.chart.gantt.data.VanGanttTableDefinition;
import com.fr.stable.StringUtils;
import com.fr.van.chart.gantt.designer.data.data.GanttDataPaneHelper;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.util.List;
/**
* Created by hufan on 2017/1/10.
*/
public class GanttTableDataContentPane extends AbstractTableDataContentPane{
private static final String NONE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Use_None");
private UIComboBox seriesComboBox;
private UIComboBox startTimeComboBox;
private UIComboBox endTimeComboBox;
private UIComboBox markerTimeComboBox;
private UIComboBox processComboBox;
private UIComboBox taskIDComboBox;
public GanttTableDataContentPane() {
this.setLayout(new BorderLayout());
initAllComponent();
JPanel panel = getContentPane();
panel.setBorder(BorderFactory.createEmptyBorder(0,24,0,15));
this.add(panel, BorderLayout.CENTER);
this.setPreferredSize(new Dimension(246,(int)this.getPreferredSize().getHeight()));
}
private void initAllComponent() {
seriesComboBox = new UIComboBox();
startTimeComboBox = new UIComboBox();
endTimeComboBox = new UIComboBox();
markerTimeComboBox = new UIComboBox();
markerTimeComboBox.addItem(NONE);
processComboBox = new UIComboBox();
processComboBox.addItem(NONE);
taskIDComboBox = new UIComboBox();
taskIDComboBox.addItem(NONE);
taskIDComboBox.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Task_ID_Tooltip"));
}
private JPanel getContentPane(){
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] row = {p,p,p,p,p,p};
double[] col = {p,f};
Component[][] components = new Component[][]{
new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Series_Name")), seriesComboBox},
new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Start_Time")), startTimeComboBox},
new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_End_Time")), endTimeComboBox},
new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Marker_Time")), markerTimeComboBox},
new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Process")), processComboBox},
new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Task_ID")), taskIDComboBox}
};
return TableLayoutHelper.createGapTableLayoutPane(components, row, col,24,6);
}
@Override
public void updateBean(ChartCollection ob) {
VanGanttTableDefinition ganttDefinition = GanttDataPaneHelper.getGanttDefinition(ob);
Object seriesName = seriesComboBox.getSelectedItem();
ganttDefinition.setSeriesName(seriesName == null ? StringUtils.EMPTY : String.valueOf(seriesName));
Object startTime = startTimeComboBox.getSelectedItem();
ganttDefinition.setStartTime(startTime == null ? StringUtils.EMPTY : String.valueOf(startTime));
Object endTime = endTimeComboBox.getSelectedItem();
ganttDefinition.setEndTime(endTime == null ? StringUtils.EMPTY : String.valueOf(endTime));
Object markTime = markerTimeComboBox.getSelectedItem();
ganttDefinition.setMarkTime(isNoneObject(markTime) ? null : String.valueOf(markTime));
Object process = processComboBox.getSelectedItem();
ganttDefinition.setProgress(isNoneObject(process) ? null : String.valueOf(process));
Object taskID = taskIDComboBox.getSelectedItem();
ganttDefinition.setLinkID(isNoneObject(taskID) ? null : String.valueOf(taskID));
}
private boolean isNoneObject(Object markTime) {
return markTime == null
|| ComparatorUtils.equals(markTime, NONE);
}
@Override
public void populateBean(ChartCollection collection) {
super.populateBean(collection);
TopDefinition top = (TopDefinition)collection.getSelectedChart().getFilterDefinition();
if (top instanceof VanGanttTableDefinition){
VanGanttTableDefinition ganttDefinition = (VanGanttTableDefinition) top;
seriesComboBox.setSelectedItem(ganttDefinition.getSeriesName());
startTimeComboBox.setSelectedItem(ganttDefinition.getStartTime());
endTimeComboBox.setSelectedItem(ganttDefinition.getEndTime());
markerTimeComboBox.setSelectedItem(ganttDefinition.getMarkTime() == null ? NONE : ganttDefinition.getMarkTime());
processComboBox.setSelectedItem(ganttDefinition.getProgress() == null ? NONE : ganttDefinition.getProgress());
taskIDComboBox.setSelectedItem(ganttDefinition.getLinkID() == null ? NONE : ganttDefinition.getLinkID());
}
}
@Override
public void clearAllBoxList() {
clearBoxItems(seriesComboBox);
clearBoxItems(startTimeComboBox);
clearBoxItems(endTimeComboBox);
clearBoxItems(markerTimeComboBox);
markerTimeComboBox.addItem(NONE);
clearBoxItems(processComboBox);
processComboBox.addItem(NONE);
clearBoxItems(taskIDComboBox);
taskIDComboBox.addItem(NONE);
}
@Override
public void refreshBoxListWithSelectTableData(List columnNameList) {
refreshBoxItems(seriesComboBox, columnNameList);
refreshBoxItems(startTimeComboBox, columnNameList);
refreshBoxItems(endTimeComboBox, columnNameList);
refreshBoxItems(markerTimeComboBox, columnNameList);
markerTimeComboBox.addItem(NONE);
refreshBoxItems(processComboBox, columnNameList);
processComboBox.addItem(NONE);
refreshBoxItems(taskIDComboBox, columnNameList);
taskIDComboBox.addItem(NONE);
}
public void checkBoxUse(boolean hasUse) {
seriesComboBox.setEnabled(hasUse);
startTimeComboBox.setEnabled(hasUse);
endTimeComboBox.setEnabled(hasUse);
markerTimeComboBox.setEnabled(hasUse);
processComboBox.setEnabled(hasUse);
taskIDComboBox.setEnabled(hasUse);
}
}