插件开发工具库,推荐依赖该工具库。
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.
 
 

118 lines
3.3 KiB

package com.fanruan.api.design.chart.field;
import com.fanruan.api.design.ui.component.UIComboBox;
import com.fanruan.api.design.ui.component.chart.CalculateComboBox;
import com.fanruan.api.report.chart.field.BaseColumnFieldCollection;
import com.fr.chartx.data.field.ColumnField;
import com.fr.design.chartx.fields.AbstractDataSetFieldsPane;
import com.fr.general.GeneralUtils;
import javax.swing.JPanel;
import java.awt.Component;
/**
* @author Bjorn
* @version 10.0
* Created by Bjorn on 2019-09-17
*/
public abstract class BaseDataSetFieldsPane<T extends BaseColumnFieldCollection> extends AbstractDataSetFieldsPane<T> {
/**
* 初始化面板布局,默认会加载北部、中部和南部的面板
*/
@Override
protected void initComponents() {
super.initComponents();
}
/**
* 创建中部位置的面板,默认会通过所有的组件和组件名称生成面板。
*
* @return 面板
*/
@Override
protected JPanel createCenterPane() {
return super.createCenterPane();
}
/**
* 创建北部位置的面板,默认生成空面板
*
* @return 面板
*/
@Override
protected JPanel createNorthPane() {
return super.createNorthPane();
}
/**
* 创建南部位置的面板,默认生成空面板
*
* @return 面板
*/
@Override
protected JPanel createSouthPane() {
return super.createSouthPane();
}
/**
* 面板中所有组件,默认会去获取所有下拉框组件
*
* @return 所有组件的集合
*/
@Override
protected Component[] fieldComponents() {
return super.fieldComponents();
}
/**
* 面板中所有组件的名称
*
* @return 所有组件的名称集合
*/
@Override
protected abstract String[] fieldLabels();
/**
* 面板中的下拉框组件
*
* @return 下拉框组件的集合
*/
@Override
protected abstract UIComboBox[] filedComboBoxes();
/**
* 根据字段对象的属性,更新下拉选择组件的值
*/
protected void populateField(UIComboBox comboBox, ColumnField field) {
AbstractDataSetFieldsPane.populateField(comboBox, field);
}
/**
* 根据下拉选择组件的值,更新字段对象的属性
*/
protected void updateField(UIComboBox comboBox, ColumnField field) {
AbstractDataSetFieldsPane.updateField(comboBox, field);
}
/**
* 根据字段对象的属性,更新下拉选择组件和汇总方式选择组件的值
*/
protected void populateFunctionField(UIComboBox comboBox, CalculateComboBox calculateComboBox, ColumnField field) {
comboBox.setSelectedItem(field.getFieldName());
if (calculateComboBox != null) {
calculateComboBox.populateBean(field.getDataFunction());
}
}
/**
* 根据下拉选择组件和汇总方式选择组件的值,更新字段对象的属性
*/
protected void updateFunctionField(UIComboBox comboBox, CalculateComboBox calculateComboBox, ColumnField field) {
field.setFieldName(GeneralUtils.objectToString(comboBox.getSelectedItem()));
if (calculateComboBox != null) {
field.setDataFunction(calculateComboBox.updateBean());
} else {
field.setDataFunction(null);
}
}
}