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