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

101 lines
3.6 KiB

package com.fr.design.dscolumn;
import com.fine.swing.ui.layout.Column;
import com.fine.theme.utils.FineUIUtils;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.data.TableDataSource;
import com.fr.design.condition.DSColumnLiteConditionPane;
import com.fr.design.condition.DSColumnSimpleLiteConditionPane;
import com.fr.design.data.DesignTableDataManager;
import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.general.data.Condition;
import com.fr.report.cell.CellElement;
import com.fr.report.cell.cellattr.core.group.DSColumn;
import java.awt.BorderLayout;
import static com.fine.swing.ui.layout.Layouts.cell;
import static com.fine.swing.ui.layout.Layouts.row;
public class DSColumnConditionsPane extends BasicPane {
//peter: Lite Condition.
private DSColumnLiteConditionPane liteConditionPane;
//marks:是否继承父格条件
private UICheckBox reselectExpandCheckBox;
//marks:作为布局的空字符串
public DSColumnConditionsPane() {
this(DSColumnPane.SETTING_ALL);
}
public DSColumnConditionsPane(int setting) {
this.setLayout(new BorderLayout());
Column column = new Column();
column.setSpacing(10);
if (setting > DSColumnPane.SETTING_DSRELATED) {
//alex:ReSelect
reselectExpandCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Bind_Column_Extend_The_Conditions_of_Father_Cell(Applied_To_The_Data_Contains_Other_Data)"), false);
reselectExpandCheckBox.setSelected(true);
column.add(FineUIUtils.wrapComponentWithTitle(
row(cell(reselectExpandCheckBox)).getComponent(),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Bind_Column_The_Conditions_Of_Father_Cell")));
}
if (setting > DSColumnPane.SETTING_DSRELATED) {
liteConditionPane = new DSColumnLiteConditionPane() {
protected boolean isNeedDoWithCondition(Condition liteCondition) {
return liteCondition != null;
}
};
} else {
liteConditionPane = new DSColumnSimpleLiteConditionPane();
}
column.add(liteConditionPane);
column.setBorder(new ScaledEmptyBorder(10, 10, 10, 10));
this.add(column);
}
@Override
public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Filter");
}
public void populate(TableDataSource tds, CellElement cellElement) {
if (cellElement == null) {
return;
}
Object value = cellElement.getValue();
if (!(value instanceof DSColumn)) {
return;
}
DSColumn linearDSColumn = (DSColumn) value;
if (reselectExpandCheckBox != null) {
reselectExpandCheckBox.setSelected(!(linearDSColumn.isReselect()));
}
String[] columnNames = DesignTableDataManager.getSelectedColumnNames(tds, linearDSColumn.getDSName());
liteConditionPane.populateColumns(columnNames);
this.liteConditionPane.populateBean(linearDSColumn.getCondition());
}
public void update(CellElement cellElement) {
if (cellElement == null) {
return;
}
Object value = cellElement.getValue();
if (!(value instanceof DSColumn)) {
return;
}
DSColumn linearDSColumn = (DSColumn) value;
linearDSColumn.setCondition(this.liteConditionPane.updateBean());
if (reselectExpandCheckBox != null) {
linearDSColumn.setReselect(!(this.reselectExpandCheckBox.isSelected()));
}
}
}