|
|
|
@ -34,6 +34,7 @@ import com.fr.report.cell.CellElement;
|
|
|
|
|
import com.fr.report.cell.TemplateCellElement; |
|
|
|
|
import com.fr.report.cell.cellattr.CellExpandAttr; |
|
|
|
|
import com.fr.report.cell.cellattr.core.group.DSColumn; |
|
|
|
|
import com.fr.report.cell.cellattr.core.group.FilterTypeEnum; |
|
|
|
|
import com.fr.report.cell.cellattr.core.group.SelectCount; |
|
|
|
|
|
|
|
|
|
import javax.swing.*; |
|
|
|
@ -46,6 +47,9 @@ import java.awt.event.ItemEvent;
|
|
|
|
|
import java.awt.event.ItemListener; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
|
|
|
|
|
import static com.fr.report.cell.cellattr.core.group.FilterTypeEnum.*; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 单元格元素 数据列编辑器 |
|
|
|
|
* |
|
|
|
@ -58,10 +62,6 @@ public class CellDSColumnEditor extends CellQuickEditor {
|
|
|
|
|
private static final double P = TableLayout.PREFERRED, F = TableLayout.FILL; |
|
|
|
|
private static final Color TIP_FONT_COLOR = new Color(0x7F333334, true); |
|
|
|
|
|
|
|
|
|
private enum FilterType { |
|
|
|
|
//前N个 后N个 奇数 偶数 自定义 未定义
|
|
|
|
|
TOP, BOTTOM, ODD, EVEN, SPECIFY, UNDEFINE |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private JPanel dsColumnRegion; |
|
|
|
|
private JPanel centerPane; |
|
|
|
@ -674,46 +674,46 @@ public class CellDSColumnEditor extends CellQuickEditor {
|
|
|
|
|
int selectIndex = rsComboBox.getSelectedIndex(); |
|
|
|
|
CardLayout setCardPaneLayout = (CardLayout) setCardPane.getLayout(); |
|
|
|
|
CardLayout tipCardPaneLayout = (CardLayout) tipCardPane.getLayout(); |
|
|
|
|
if (selectIndex == SelectCount.TOP) { |
|
|
|
|
if (selectIndex == TOP.getValue()) { |
|
|
|
|
//前N个
|
|
|
|
|
setCardPaneLayout.show(setCardPane, FilterType.TOP.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, FilterType.TOP.name()); |
|
|
|
|
setCardPaneLayout.show(setCardPane, TOP.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, TOP.name()); |
|
|
|
|
//隐藏tip 显示set
|
|
|
|
|
setCardPane.setPreferredSize(new Dimension(156, 20)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 2, VGAP); |
|
|
|
|
tipCardPane.setPreferredSize(new Dimension(0, 0)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 4, 0); |
|
|
|
|
} else if (selectIndex == SelectCount.BOTTOM) { |
|
|
|
|
} else if (selectIndex == BOTTOM.getValue()) { |
|
|
|
|
//后N个
|
|
|
|
|
setCardPaneLayout.show(setCardPane, FilterType.BOTTOM.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, FilterType.BOTTOM.name()); |
|
|
|
|
setCardPaneLayout.show(setCardPane, BOTTOM.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, BOTTOM.name()); |
|
|
|
|
//隐藏tip 显示set
|
|
|
|
|
setCardPane.setPreferredSize(new Dimension(156, 20)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 2, VGAP); |
|
|
|
|
tipCardPane.setPreferredSize(new Dimension(0, 0)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 4, 0); |
|
|
|
|
} else if (selectIndex == SelectCount.ODD) { |
|
|
|
|
} else if (selectIndex == ODD.getValue()) { |
|
|
|
|
//奇数
|
|
|
|
|
setCardPaneLayout.show(setCardPane, FilterType.ODD.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, FilterType.ODD.name()); |
|
|
|
|
setCardPaneLayout.show(setCardPane, ODD.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, ODD.name()); |
|
|
|
|
//隐藏set 显示tip
|
|
|
|
|
setCardPane.setPreferredSize(new Dimension(0, 0)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 2, 0); |
|
|
|
|
tipCardPane.setPreferredSize(new Dimension(224, 40)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 4, VGAP_INNER); |
|
|
|
|
} else if (selectIndex == SelectCount.EVEN) { |
|
|
|
|
} else if (selectIndex == EVEN.getValue()) { |
|
|
|
|
//偶数
|
|
|
|
|
setCardPaneLayout.show(setCardPane, FilterType.EVEN.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, FilterType.EVEN.name()); |
|
|
|
|
setCardPaneLayout.show(setCardPane, EVEN.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, EVEN.name()); |
|
|
|
|
//隐藏set 显示tip
|
|
|
|
|
setCardPane.setPreferredSize(new Dimension(0, 0)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 2, 0); |
|
|
|
|
tipCardPane.setPreferredSize(new Dimension(224, 40)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 4, VGAP_INNER); |
|
|
|
|
} else if (selectIndex == SelectCount.SPECIFY) { |
|
|
|
|
} else if (selectIndex == SPECIFY.getValue()) { |
|
|
|
|
//指定
|
|
|
|
|
setCardPaneLayout.show(setCardPane, FilterType.SPECIFY.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, FilterType.SPECIFY.name()); |
|
|
|
|
setCardPaneLayout.show(setCardPane, SPECIFY.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, SPECIFY.name()); |
|
|
|
|
//显示set和tip
|
|
|
|
|
setCardPane.setPreferredSize(new Dimension(156, 20)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 2, VGAP); |
|
|
|
@ -721,8 +721,8 @@ public class CellDSColumnEditor extends CellQuickEditor {
|
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 4, VGAP_INNER); |
|
|
|
|
} else { |
|
|
|
|
//未定义
|
|
|
|
|
setCardPaneLayout.show(setCardPane, FilterType.UNDEFINE.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, FilterType.UNDEFINE.name()); |
|
|
|
|
setCardPaneLayout.show(setCardPane, UNDEFINE.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, UNDEFINE.name()); |
|
|
|
|
//隐藏set和tip
|
|
|
|
|
setCardPane.setPreferredSize(new Dimension(0, 0)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 2, 0); |
|
|
|
@ -752,36 +752,36 @@ public class CellDSColumnEditor extends CellQuickEditor {
|
|
|
|
|
|
|
|
|
|
//前N个
|
|
|
|
|
topFormulaPane = new JFormulaField(DEFAULT_VALUE); |
|
|
|
|
setCardPane.add(topFormulaPane, FilterType.TOP.name()); |
|
|
|
|
tipCardPane.add(new JPanel(), FilterType.TOP.name()); |
|
|
|
|
setCardPane.add(topFormulaPane, TOP.name()); |
|
|
|
|
tipCardPane.add(new JPanel(), TOP.name()); |
|
|
|
|
|
|
|
|
|
//后N个
|
|
|
|
|
bottomFormulaPane = new JFormulaField(DEFAULT_VALUE); |
|
|
|
|
setCardPane.add(bottomFormulaPane, FilterType.BOTTOM.name()); |
|
|
|
|
tipCardPane.add(new JPanel(), FilterType.BOTTOM.name()); |
|
|
|
|
setCardPane.add(bottomFormulaPane, BOTTOM.name()); |
|
|
|
|
tipCardPane.add(new JPanel(), BOTTOM.name()); |
|
|
|
|
|
|
|
|
|
//自定义值下方没有提示信息,也没有输入框
|
|
|
|
|
setCardPane.add(new JPanel(), FilterType.UNDEFINE.name()); |
|
|
|
|
tipCardPane.add(new JPanel(), FilterType.UNDEFINE.name()); |
|
|
|
|
setCardPane.add(new JPanel(), UNDEFINE.name()); |
|
|
|
|
tipCardPane.add(new JPanel(), UNDEFINE.name()); |
|
|
|
|
|
|
|
|
|
//奇数 UILabel 占一行作为提示信息
|
|
|
|
|
setCardPane.add(new JPanel(), FilterType.ODD.name()); |
|
|
|
|
setCardPane.add(new JPanel(), ODD.name()); |
|
|
|
|
MultilineLabel oddTip = new MultilineLabel(Inter.getLocText("FS-Designer_DS_Filter_Odd_Tip")); |
|
|
|
|
oddTip.setForeground(TIP_FONT_COLOR); |
|
|
|
|
tipCardPane.add(oddTip, FilterType.ODD.name()); |
|
|
|
|
tipCardPane.add(oddTip, ODD.name()); |
|
|
|
|
|
|
|
|
|
//偶数 UILabel 占一行作为提示信息
|
|
|
|
|
setCardPane.add(new JPanel(), FilterType.EVEN.name()); |
|
|
|
|
setCardPane.add(new JPanel(), EVEN.name()); |
|
|
|
|
MultilineLabel evenTip = new MultilineLabel(Inter.getLocText("FS-Designer_DS_Filter_Even_Tip")); |
|
|
|
|
evenTip.setForeground(TIP_FONT_COLOR); |
|
|
|
|
tipCardPane.add(evenTip, FilterType.EVEN.name()); |
|
|
|
|
tipCardPane.add(evenTip, EVEN.name()); |
|
|
|
|
|
|
|
|
|
//输入框占用右半边,提示信息占一行
|
|
|
|
|
serialTextField = new UITextField(16); |
|
|
|
|
setCardPane.add(serialTextField, FilterType.SPECIFY.name()); |
|
|
|
|
setCardPane.add(serialTextField, SPECIFY.name()); |
|
|
|
|
MultilineLabel specifyTip = new MultilineLabel(Inter.getLocText("FS-Designer_DS_Filter_Specify_Tip")); |
|
|
|
|
specifyTip.setForeground(TIP_FONT_COLOR); |
|
|
|
|
tipCardPane.add(specifyTip, FilterType.SPECIFY.name()); |
|
|
|
|
tipCardPane.add(specifyTip, SPECIFY.name()); |
|
|
|
|
contentPane = TableLayoutHelper.createDiffVGapTableLayoutPane(new Component[][]{ |
|
|
|
|
{filterLabel, rsComboBox}, |
|
|
|
|
{null, setCardPane}, |
|
|
|
@ -805,54 +805,54 @@ public class CellDSColumnEditor extends CellQuickEditor {
|
|
|
|
|
if (selectCount != null) { |
|
|
|
|
int selectCountType = selectCount.getType(); |
|
|
|
|
this.rsComboBox.setSelectedIndex(selectCountType); |
|
|
|
|
switch (selectCountType) { |
|
|
|
|
case SelectCount.TOP: |
|
|
|
|
switch (FilterTypeEnum.getFilterByValue(selectCountType)) { |
|
|
|
|
case TOP: |
|
|
|
|
this.topFormulaPane.populate(selectCount.getFormulaCount()); |
|
|
|
|
//前N个
|
|
|
|
|
setCardPaneLayout.show(setCardPane, FilterType.TOP.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, FilterType.TOP.name()); |
|
|
|
|
setCardPaneLayout.show(setCardPane, TOP.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, TOP.name()); |
|
|
|
|
//隐藏tip 显示set
|
|
|
|
|
setCardPane.setPreferredSize(new Dimension(156, 20)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 2, VGAP); |
|
|
|
|
tipCardPane.setPreferredSize(new Dimension(0, 0)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 4, 0); |
|
|
|
|
break; |
|
|
|
|
case SelectCount.BOTTOM: |
|
|
|
|
case BOTTOM: |
|
|
|
|
this.bottomFormulaPane.populate(selectCount.getFormulaCount()); |
|
|
|
|
//后N个
|
|
|
|
|
setCardPaneLayout.show(setCardPane, FilterType.BOTTOM.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, FilterType.BOTTOM.name()); |
|
|
|
|
setCardPaneLayout.show(setCardPane, BOTTOM.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, BOTTOM.name()); |
|
|
|
|
//隐藏tip 显示set
|
|
|
|
|
setCardPane.setPreferredSize(new Dimension(156, 20)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 2, VGAP); |
|
|
|
|
tipCardPane.setPreferredSize(new Dimension(0, 0)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 4, 0); |
|
|
|
|
break; |
|
|
|
|
case SelectCount.SPECIFY: |
|
|
|
|
case SPECIFY: |
|
|
|
|
this.serialTextField.setText(selectCount.getSerial()); |
|
|
|
|
//指定
|
|
|
|
|
setCardPaneLayout.show(setCardPane, FilterType.SPECIFY.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, FilterType.SPECIFY.name()); |
|
|
|
|
setCardPaneLayout.show(setCardPane, SPECIFY.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, SPECIFY.name()); |
|
|
|
|
//显示set和tip
|
|
|
|
|
setCardPane.setPreferredSize(new Dimension(156, 20)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 2, VGAP); |
|
|
|
|
tipCardPane.setPreferredSize(new Dimension(224, 40)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 4, VGAP_INNER); |
|
|
|
|
break; |
|
|
|
|
case SelectCount.EVEN: |
|
|
|
|
case EVEN: |
|
|
|
|
//偶数
|
|
|
|
|
setCardPaneLayout.show(setCardPane, FilterType.EVEN.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, FilterType.EVEN.name()); |
|
|
|
|
setCardPaneLayout.show(setCardPane, EVEN.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, EVEN.name()); |
|
|
|
|
//隐藏set 显示tip
|
|
|
|
|
setCardPane.setPreferredSize(new Dimension(0, 0)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 2, 0); |
|
|
|
|
tipCardPane.setPreferredSize(new Dimension(224, 40)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 4, VGAP_INNER); |
|
|
|
|
break; |
|
|
|
|
case SelectCount.ODD: |
|
|
|
|
case ODD: |
|
|
|
|
//奇数
|
|
|
|
|
setCardPaneLayout.show(setCardPane, FilterType.ODD.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, FilterType.ODD.name()); |
|
|
|
|
setCardPaneLayout.show(setCardPane, ODD.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, ODD.name()); |
|
|
|
|
//隐藏set 显示tip
|
|
|
|
|
setCardPane.setPreferredSize(new Dimension(0, 0)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 2, 0); |
|
|
|
@ -861,8 +861,8 @@ public class CellDSColumnEditor extends CellQuickEditor {
|
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
//未定义
|
|
|
|
|
setCardPaneLayout.show(setCardPane, FilterType.UNDEFINE.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, FilterType.UNDEFINE.name()); |
|
|
|
|
setCardPaneLayout.show(setCardPane, UNDEFINE.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, UNDEFINE.name()); |
|
|
|
|
//隐藏set和tip
|
|
|
|
|
setCardPane.setPreferredSize(new Dimension(0, 0)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 2, 0); |
|
|
|
@ -871,8 +871,8 @@ public class CellDSColumnEditor extends CellQuickEditor {
|
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
//未定义
|
|
|
|
|
setCardPaneLayout.show(setCardPane, FilterType.UNDEFINE.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, FilterType.UNDEFINE.name()); |
|
|
|
|
setCardPaneLayout.show(setCardPane, UNDEFINE.name()); |
|
|
|
|
tipCardPaneLayout.show(tipCardPane, UNDEFINE.name()); |
|
|
|
|
//隐藏set和tip
|
|
|
|
|
setCardPane.setPreferredSize(new Dimension(0, 0)); |
|
|
|
|
TableLayoutHelper.modifyTableLayoutIndexVGap(contentPane, 2, 0); |
|
|
|
@ -896,11 +896,11 @@ public class CellDSColumnEditor extends CellQuickEditor {
|
|
|
|
|
SelectCount selectCount = new SelectCount(); |
|
|
|
|
selectCount.setType(selectedFilterIndex); |
|
|
|
|
dSColumn.setSelectCount(selectCount); |
|
|
|
|
if (selectedFilterIndex == SelectCount.TOP) { |
|
|
|
|
if (selectedFilterIndex == TOP.getValue()) { |
|
|
|
|
selectCount.setFormulaCount(this.topFormulaPane.getFormulaText()); |
|
|
|
|
} else if (selectedFilterIndex == SelectCount.BOTTOM) { |
|
|
|
|
} else if (selectedFilterIndex == BOTTOM.getValue()) { |
|
|
|
|
selectCount.setFormulaCount(this.bottomFormulaPane.getFormulaText()); |
|
|
|
|
} else if (selectedFilterIndex == SelectCount.SPECIFY) { |
|
|
|
|
} else if (selectedFilterIndex == SPECIFY.getValue()) { |
|
|
|
|
selectCount.setSerial(this.serialTextField.getText()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|