|
|
|
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()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|