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.
550 lines
28 KiB
550 lines
28 KiB
package com.fr.design.mainframe.cell.settingpane; |
|
|
|
import com.fr.design.constants.LayoutConstants; |
|
import com.fr.design.constants.UIConstants; |
|
import com.fr.design.editor.ValueEditorPane; |
|
import com.fr.design.editor.ValueEditorPaneFactory; |
|
import com.fr.design.file.HistoryTemplateListPane; |
|
import com.fr.design.foldablepane.UIExpandablePane; |
|
import com.fr.design.gui.ibutton.UIButtonGroup; |
|
import com.fr.design.gui.ibutton.UIRadioButton; |
|
import com.fr.design.gui.icheckbox.UICheckBox; |
|
import com.fr.design.gui.icombobox.UIComboBox; |
|
import com.fr.design.gui.ilable.UILabel; |
|
import com.fr.design.gui.itextfield.UITextField; |
|
import com.fr.design.layout.*; |
|
import com.fr.design.layout.VerticalFlowLayout; |
|
import com.fr.design.mainframe.EastRegionContainerPane; |
|
import com.fr.design.mainframe.JTemplate; |
|
import com.fr.general.ComparatorUtils; |
|
|
|
import com.fr.report.cell.DefaultTemplateCellElement; |
|
import com.fr.report.cell.TemplateCellElement; |
|
import com.fr.report.cell.cellattr.CellGUIAttr; |
|
import com.fr.report.cell.cellattr.CellInsertPolicyAttr; |
|
import com.fr.report.cell.cellattr.CellPageAttr; |
|
import com.fr.report.elementcase.TemplateElementCase; |
|
import com.fr.stable.StringUtils; |
|
|
|
import javax.swing.*; |
|
import javax.swing.event.ChangeEvent; |
|
import javax.swing.event.ChangeListener; |
|
import java.awt.*; |
|
import java.awt.event.ItemEvent; |
|
import java.awt.event.ItemListener; |
|
|
|
/** |
|
* @author zhou |
|
* @since 2012-5-11下午5:24:31 |
|
*/ |
|
public class CellOtherSetPane extends AbstractCellAttrPane { |
|
|
|
private static final int HEAD_WDITH = 290; |
|
private static final int HEAD_HEIGTH = 24; |
|
private static final Dimension NORMAL_DIMENSION = new Dimension(155, 20); |
|
private static final Dimension SMALL_DIMENSION = new Dimension(150, 20); |
|
// normal |
|
private UIButtonGroup autoshrik; |
|
|
|
private UICheckBox previewCellContent; |
|
private UICheckBox printAndExportContent; |
|
private UICheckBox printAndExportBackground; |
|
|
|
private UIComboBox showContent; |
|
|
|
private UITextField tooltipTextField; |
|
|
|
private UITextField fileNameTextField; |
|
|
|
// 分页 |
|
private UICheckBox pageBeforeRowCheckBox; |
|
private UICheckBox pageAfterRowCheckBox; |
|
private UICheckBox pageBeforeColumnCheckBox; |
|
private UICheckBox pageAfterColumnCheckBox; |
|
|
|
private UICheckBox canBreakOnPaginateCheckBox; |
|
private UICheckBox repeatCheckBox; |
|
|
|
// 自动调整 |
|
private UIRadioButton autoHeightRadioButton; // 自动调整行高 |
|
private UIRadioButton autoWidthRadioButton; // 自动调整列宽 |
|
private UIRadioButton noAutoRadioButton; // 不自动调整 |
|
private UIRadioButton defaultAutoRadioButton; // 跟随页面设置(默认) |
|
private UIRadioButton[] adjustRadioButtons; |
|
|
|
// 插入行策略 |
|
private UIButtonGroup insertRowPolicy; |
|
private ValueEditorPane valueEditor; |
|
private CardLayout insertRowLayout; |
|
private JPanel insertRowPane; |
|
private JPanel southContentPane; |
|
private JPanel defaultValuePane; |
|
|
|
/** |
|
* 初始化 |
|
* |
|
* @return 面板 |
|
*/ |
|
public JPanel createContentPane() { |
|
JPanel downPane = new JPanel(new BorderLayout()); |
|
downPane.add(new UIExpandablePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Advaced"), HEAD_WDITH, HEAD_HEIGTH, seniorPane()), BorderLayout.NORTH); |
|
downPane.add(new UIExpandablePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Pagination"), HEAD_WDITH, HEAD_HEIGTH, pagePane()), BorderLayout.CENTER); |
|
JPanel contentPane = new JPanel(new BorderLayout(0, 0)); |
|
contentPane.add(new UIExpandablePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Basic"), HEAD_WDITH, HEAD_HEIGTH, basicPane()), BorderLayout.NORTH); |
|
contentPane.add(downPane, BorderLayout.CENTER); |
|
initAllNames(); |
|
return contentPane; |
|
} |
|
|
|
private JPanel basicPane() { |
|
defaultAutoRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Follow_Paper_Settings")); |
|
noAutoRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_No_Auto_Adjust")); |
|
autoHeightRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Auto_Adjust_Height")); |
|
autoWidthRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Auto_Adjust_Width")); |
|
adjustRadioButtons = new UIRadioButton[]{ |
|
defaultAutoRadioButton, noAutoRadioButton, autoHeightRadioButton, autoWidthRadioButton |
|
}; |
|
|
|
// 指定分组 |
|
ButtonGroup autoBG = new ButtonGroup(); |
|
for (UIRadioButton radioButton : adjustRadioButtons) { |
|
autoBG.add(radioButton); |
|
} |
|
|
|
JPanel basicPane = new JPanel() { |
|
@Override |
|
public Insets getInsets() { |
|
return new Insets(LayoutConstants.VGAP_MEDIUM, 0, LayoutConstants.VGAP_MEDIUM, 0); |
|
} |
|
}; |
|
VerticalFlowLayout verticalFlowLayout = new VerticalFlowLayout(VerticalFlowLayout.CENTER, 0, 0); |
|
verticalFlowLayout.setAlignLeft(true); |
|
basicPane.setLayout(verticalFlowLayout); |
|
basicPane.add(defaultAutoRadioButton); |
|
basicPane.add(noAutoRadioButton); |
|
basicPane.add(autoHeightRadioButton); |
|
basicPane.add(autoWidthRadioButton); |
|
|
|
return basicPane; |
|
} |
|
|
|
private JPanel seniorPane() { |
|
// 插入行策略 |
|
insertRowPolicy = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_InsertRow_NULL"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Estate_Default_Text"), |
|
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_InsertRow_COPY")}); |
|
defaultValuePane = new JPanel(new BorderLayout(4, 0)); |
|
valueEditor = ValueEditorPaneFactory.createBasicValueEditorPane(); |
|
defaultValuePane.add(valueEditor, BorderLayout.CENTER); |
|
insertRowLayout = new CardLayout(); |
|
insertRowPane = new JPanel(insertRowLayout); |
|
insertRowPane.add(new JPanel(), "none"); |
|
insertRowPane.add(defaultValuePane, "content"); |
|
insertRowPane.setPreferredSize(new Dimension(0, 0)); |
|
insertRowPolicy.addChangeListener(new ChangeListener() { |
|
@Override |
|
public void stateChanged(ChangeEvent e) { |
|
if (insertRowPolicy.getSelectedIndex() == 1) { |
|
insertRowPane.setPreferredSize(new Dimension(100, 20)); |
|
insertRowLayout.show(insertRowPane, "content"); |
|
} else { |
|
insertRowLayout.show(insertRowPane, "none"); |
|
insertRowPane.setPreferredSize(new Dimension(0, 0)); |
|
} |
|
} |
|
}); |
|
double f = TableLayout.FILL; |
|
double p = TableLayout.PREFERRED; |
|
double[] rowSize1 = {p, p}; |
|
double[] columnSize1 = {p, f}; |
|
int[][] rowCount1 = {{1, 1}, {1, 1}}; |
|
Component[][] components1 = new Component[][]{ |
|
new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_InsertRow_Policy"), SwingConstants.LEFT), insertRowPolicy}, |
|
new Component[]{null, insertRowPane}, |
|
}; |
|
southContentPane = TableLayoutHelper.createGapTableLayoutPane(components1, rowSize1, columnSize1, rowCount1, LayoutConstants.VGAP_LARGE, LayoutConstants.VGAP_MEDIUM); |
|
JPanel seniorPane = new JPanel(new BorderLayout()); |
|
seniorPane.add(seniorUpPane(), BorderLayout.NORTH); |
|
seniorPane.add(southContentPane, BorderLayout.CENTER); |
|
southContentPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0)); |
|
return seniorPane; |
|
} |
|
|
|
private JPanel seniorUpPane() { |
|
JPanel fileNamePane = createNormal(); |
|
previewCellContent.setBorder(UIConstants.CELL_ATTR_ZEROBORDER); |
|
printAndExportContent.setBorder(UIConstants.CELL_ATTR_ZEROBORDER); |
|
printAndExportBackground.setBorder(UIConstants.CELL_ATTR_ZEROBORDER); |
|
double f = TableLayout.FILL; |
|
double p = TableLayout.PREFERRED; |
|
double[] rowSize = {p, p, p, p}; |
|
double[] columnSize = {p, f}; |
|
int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}}; |
|
Component[][] components = new Component[][]{ |
|
new Component[]{null, null}, |
|
new Component[]{previewCellContent, null}, |
|
new Component[]{printAndExportContent, null}, |
|
new Component[]{printAndExportBackground, null}, |
|
}; |
|
JPanel upPane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_LARGE); |
|
|
|
double[] downRowSize = {p, p, p, p, p, p}; |
|
double[] downColumnSize = {p, f}; |
|
int[][] downRowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}; |
|
|
|
JPanel showContentPane = new JPanel(FRGUIPaneFactory.createRightZeroLayout()); |
|
showContent.setPreferredSize(SMALL_DIMENSION); |
|
showContentPane.add(showContent); |
|
fileNamePane.setBorder(BorderFactory.createEmptyBorder(0,12,0,0)); |
|
|
|
JPanel tooltipTextFieldPane = new JPanel(FRGUIPaneFactory.createRightZeroLayout()); |
|
tooltipTextField.setPreferredSize(NORMAL_DIMENSION); |
|
tooltipTextFieldPane.add(tooltipTextField); |
|
|
|
Component[][] downComponent = new Component[][]{ |
|
new Component[]{null, null}, |
|
new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Show_Content"), SwingConstants.LEFT), showContentPane}, |
|
new Component[]{fileNamePane, null}, |
|
new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_ToolTip"), SwingConstants.LEFT), tooltipTextFieldPane}, |
|
new Component[]{null, null}, |
|
new Component[]{null, null}, |
|
}; |
|
JPanel downPane = TableLayoutHelper.createGapTableLayoutPane(downComponent, downRowSize, downColumnSize, downRowCount, LayoutConstants.VGAP_LARGE, LayoutConstants.VGAP_MEDIUM); |
|
JPanel pane = new JPanel(new BorderLayout()); |
|
pane.add(upPane, BorderLayout.NORTH); |
|
pane.add(downPane, BorderLayout.CENTER); |
|
return pane; |
|
} |
|
|
|
private JPanel pagePane() { |
|
// 分页 |
|
pageBeforeRowCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Page_Before_Row")); |
|
|
|
pageAfterRowCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Page_After_Row")); |
|
pageBeforeColumnCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Page_Before_Column")); |
|
pageAfterColumnCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Page_After_Column")); |
|
|
|
canBreakOnPaginateCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellPage_Can_Break_On_Paginate")); |
|
repeatCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellPage_Repeat_Content_When_Paging")); |
|
|
|
pageBeforeRowCheckBox.setBorder(UIConstants.CELL_ATTR_ZEROBORDER); |
|
pageAfterRowCheckBox.setBorder(UIConstants.CELL_ATTR_ZEROBORDER); |
|
pageBeforeColumnCheckBox.setBorder(UIConstants.CELL_ATTR_ZEROBORDER); |
|
pageAfterColumnCheckBox.setBorder(UIConstants.CELL_ATTR_ZEROBORDER); |
|
canBreakOnPaginateCheckBox.setBorder(UIConstants.CELL_ATTR_ZEROBORDER); |
|
repeatCheckBox.setBorder(UIConstants.CELL_ATTR_ZEROBORDER); |
|
|
|
double p = TableLayout.PREFERRED; |
|
double[] rowSize = {p, p, p, p, p, p, p, p, p, p, p}; |
|
double[] columnSize = {p}; |
|
int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}; |
|
Component[][] components = new Component[][]{ |
|
new Component[]{null}, |
|
new Component[]{pageBeforeRowCheckBox}, |
|
new Component[]{pageAfterRowCheckBox}, |
|
new Component[]{null}, |
|
new Component[]{pageBeforeColumnCheckBox}, |
|
new Component[]{pageAfterColumnCheckBox}, |
|
new Component[]{null}, |
|
new Component[]{canBreakOnPaginateCheckBox}, |
|
new Component[]{repeatCheckBox}, |
|
}; |
|
return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_LARGE); |
|
|
|
} |
|
|
|
private JPanel createNormal() { |
|
previewCellContent = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Preview_Cell_Content")); |
|
printAndExportContent = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Print_Content")); |
|
printAndExportBackground = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Print_Background")); |
|
showContent = new UIComboBox(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Default"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Show_As_Image"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Show_As_HTML"), |
|
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Show_As_Download")}); |
|
final CardLayout fileNameLayout = new CardLayout(); |
|
final JPanel fileNamePane = new JPanel(fileNameLayout); |
|
JPanel fileNameCCPane = new JPanel(new BorderLayout(4, 0)); |
|
fileNameCCPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_File_Name_For_Download")), BorderLayout.WEST); |
|
fileNameTextField = new UITextField(); |
|
tooltipTextField = new UITextField(); |
|
tooltipTextField.getUI(); |
|
fileNamePane.add(new JPanel(), "none"); |
|
fileNamePane.add(fileNameCCPane, "content"); |
|
fileNamePane.setPreferredSize(new Dimension(0, 0)); |
|
fileNameCCPane.add(fileNameTextField, BorderLayout.CENTER); |
|
showContent.addItemListener(new ItemListener() { |
|
|
|
@Override |
|
public void itemStateChanged(ItemEvent e) { |
|
if (showContent.getSelectedIndex() == 3) { |
|
fileNamePane.setPreferredSize(new Dimension(100, 20)); |
|
fileNameLayout.show(fileNamePane, "content"); |
|
} else { |
|
fileNameLayout.show(fileNamePane, "none"); |
|
fileNamePane.setPreferredSize(new Dimension(0, 0)); |
|
} |
|
} |
|
}); |
|
return fileNamePane; |
|
} |
|
|
|
|
|
private void initAllNames() { |
|
defaultAutoRadioButton.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Follow_Paper_Settings")); |
|
noAutoRadioButton.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_No_Auto_Adjust")); |
|
autoHeightRadioButton.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Auto_Adjust_Height")); |
|
autoWidthRadioButton.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Auto_Adjust_Width")); |
|
previewCellContent.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview")); |
|
printAndExportContent.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Print_Content")); |
|
printAndExportBackground.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Print_Background")); |
|
showContent.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Show_Content")); |
|
fileNameTextField.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Show_Content")); |
|
tooltipTextField.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_ToolTip")); |
|
pageBeforeRowCheckBox.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Page_Before_Row")); |
|
pageAfterRowCheckBox.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Page_After_Row")); |
|
pageBeforeColumnCheckBox.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Page_Before_Column")); |
|
pageAfterColumnCheckBox.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Page_After_Column")); |
|
canBreakOnPaginateCheckBox.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellPage_Can_Break_On_Paginate")); |
|
repeatCheckBox.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellPage_Repeat_Content_When_Paging")); |
|
insertRowPolicy.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_InsertRow_Policy")); |
|
valueEditor.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_InsertRow_Policy")); |
|
} |
|
|
|
|
|
@Override |
|
public String getIconPath() { |
|
// return "com/fr/design/images/m_format/cellstyle/otherset.png"; |
|
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Other"); |
|
} |
|
|
|
@Override |
|
protected void populateBean() { |
|
CellGUIAttr cellGUIAttr = cellElement.getCellGUIAttr(); |
|
if (cellGUIAttr == null) { |
|
cellGUIAttr = CellGUIAttr.DEFAULT_CELLGUIATTR; |
|
} |
|
|
|
// 是否在编辑表单中的报表块 |
|
boolean isInForm = EastRegionContainerPane.getInstance().getCurrentMode().equals(EastRegionContainerPane.PropertyMode.FORM_REPORT); |
|
|
|
defaultAutoRadioButton.setVisible(!isInForm); |
|
switch (cellGUIAttr.getAdjustMode()) { |
|
case CellGUIAttr.ADJUST_MODE_NO_AUTO: |
|
noAutoRadioButton.setSelected(true); |
|
break; |
|
case CellGUIAttr.ADJUST_MODE_AUTO_HEIGHT: |
|
autoHeightRadioButton.setSelected(true); |
|
break; |
|
case CellGUIAttr.ADJUST_MODE_AUTO_WIDTH: |
|
autoWidthRadioButton.setSelected(true); |
|
break; |
|
case CellGUIAttr.ADJUST_MODE_DEFAULT: |
|
if (isInForm) { |
|
autoHeightRadioButton.setSelected(true); |
|
} else { |
|
defaultAutoRadioButton.setSelected(true); |
|
} |
|
break; |
|
default: |
|
break; |
|
} |
|
|
|
previewCellContent.setSelected(cellGUIAttr.isPreviewContent()); |
|
printAndExportContent.setSelected(cellGUIAttr.isPrintContent()); |
|
printAndExportBackground.setSelected(cellGUIAttr.isPrintBackground()); |
|
if (cellGUIAttr.isShowAsImage()) { |
|
showContent.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Show_As_Image")); |
|
} else if (cellGUIAttr.isShowAsHTML()) { |
|
showContent.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Show_As_HTML")); |
|
} else if (cellGUIAttr.isShowAsDownload()) { |
|
showContent.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Show_As_Download")); |
|
fileNameTextField.setText(cellGUIAttr.getFileName()); |
|
} else { |
|
showContent.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Default")); |
|
} |
|
tooltipTextField.setText(cellGUIAttr.getTooltipText()); |
|
CellPageAttr cellPageAttr = cellElement.getCellPageAttr(); // 分页 |
|
if (cellPageAttr == null) { |
|
cellPageAttr = new CellPageAttr(); |
|
} |
|
this.pageBeforeRowCheckBox.setSelected(cellPageAttr.isPageBeforeRow()); |
|
this.pageBeforeColumnCheckBox.setSelected(cellPageAttr.isPageBeforeColumn()); |
|
this.pageAfterRowCheckBox.setSelected(cellPageAttr.isPageAfterRow()); |
|
this.pageAfterColumnCheckBox.setSelected(cellPageAttr.isPageAfterColumn()); |
|
this.canBreakOnPaginateCheckBox.setSelected(cellPageAttr.isCanBreakOnPaginate()); |
|
this.repeatCheckBox.setSelected(cellPageAttr.isRepeat()); |
|
CellInsertPolicyAttr cellInsertPolicyAttr = cellElement.getCellInsertPolicyAttr();// 插入 |
|
if (cellInsertPolicyAttr == null) { |
|
cellInsertPolicyAttr = new CellInsertPolicyAttr(); |
|
} |
|
if (ComparatorUtils.equals(CellInsertPolicyAttr.INSERT_POLICY_COPY, cellInsertPolicyAttr.getInsertPolicy())) { |
|
insertRowPolicy.setSelectedIndex(2); |
|
} else if (ComparatorUtils.equals(CellInsertPolicyAttr.INSERT_POLICY_DEFAULT, cellInsertPolicyAttr.getInsertPolicy())) { |
|
insertRowPolicy.setSelectedIndex(1); |
|
Object defaultValue = cellInsertPolicyAttr.getDefaultInsertValue(); |
|
this.valueEditor.populate(defaultValue); |
|
} else { |
|
insertRowPolicy.setSelectedIndex(0); |
|
this.valueEditor.populate(StringUtils.EMPTY); |
|
} |
|
if (insertRowPolicy.getSelectedIndex() == 1) { |
|
insertRowPane.setPreferredSize(new Dimension(100, 20)); |
|
insertRowLayout.show(insertRowPane, "content"); |
|
} else { |
|
insertRowLayout.show(insertRowPane, "none"); |
|
insertRowPane.setPreferredSize(new Dimension(0, 0)); |
|
} |
|
southContentPane.setVisible(true); |
|
JTemplate jTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); |
|
if (!jTemplate.isJWorkBook()) { //表单中报表块编辑屏蔽掉 插入行策略 |
|
southContentPane.setVisible(false); |
|
} |
|
} |
|
|
|
/** |
|
* @param cellElement |
|
*/ |
|
public void updateBean(TemplateCellElement cellElement) { |
|
String fieldName = null; |
|
CellGUIAttr cellNullGUIAttr = null; |
|
CellGUIAttr cellGUIAttr = cellElement.getCellGUIAttr(); |
|
if (cellGUIAttr == null) { |
|
cellGUIAttr = new CellGUIAttr(); |
|
} |
|
|
|
for (UIRadioButton radioButton : adjustRadioButtons) { |
|
if (ComparatorUtils.equals(getGlobalName(), radioButton.getGlobalName())) { |
|
// 自动调整 |
|
int flag; |
|
if (defaultAutoRadioButton.isSelected()) { |
|
flag = CellGUIAttr.ADJUST_MODE_DEFAULT; |
|
} else if (autoWidthRadioButton.isSelected()) { |
|
flag = CellGUIAttr.ADJUST_MODE_AUTO_WIDTH; |
|
} else if (autoHeightRadioButton.isSelected()) { |
|
flag = CellGUIAttr.ADJUST_MODE_AUTO_HEIGHT; |
|
} else { |
|
flag = CellGUIAttr.ADJUST_MODE_NO_AUTO; |
|
} |
|
cellGUIAttr.setAdjustMode(flag); |
|
break; |
|
} |
|
} |
|
|
|
if (ComparatorUtils.equals(getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("FR-Designer_Preview"))) { |
|
cellGUIAttr.setPreviewContent(previewCellContent.isSelected()); |
|
} |
|
|
|
if (ComparatorUtils.equals(getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Print_Content"))) { |
|
cellGUIAttr.setPrintContent(printAndExportContent.isSelected()); |
|
} |
|
|
|
if (ComparatorUtils.equals(getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Print_Background"))) { |
|
cellGUIAttr.setPrintBackground(printAndExportBackground.isSelected()); |
|
} |
|
|
|
if (ComparatorUtils.equals(getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Show_Content"))) { |
|
cellGUIAttr.setShowAsDefault(showContent.getSelectedIndex() == 0); |
|
cellGUIAttr.setShowAsImage(showContent.getSelectedIndex() == 1); |
|
cellGUIAttr.setShowAsHTML(showContent.getSelectedIndex() == 2); |
|
cellGUIAttr.setShowAsDownload(showContent.getSelectedIndex() == 3); |
|
if (fileNameTextField.getText() == null || fileNameTextField.getText().trim().length() <= 0) { |
|
cellGUIAttr.setFileName(fieldName); |
|
} else if (showContent.getSelectedIndex() == 3) { |
|
cellGUIAttr.setFileName(fileNameTextField.getText()); |
|
} |
|
} |
|
|
|
if (ComparatorUtils.equals(getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_ToolTip"))) { |
|
if (tooltipTextField.getText() == null || tooltipTextField.getText().trim().length() <= 0) { |
|
cellGUIAttr.setTooltipText(fieldName); |
|
} else { |
|
cellGUIAttr.setTooltipText(tooltipTextField.getText()); |
|
} |
|
} |
|
// 如果与默认的CellGUIAttr相同,就不用保存这个属性了 |
|
if (ComparatorUtils.equals(cellGUIAttr, CellGUIAttr.DEFAULT_CELLGUIATTR)) { |
|
cellElement.setCellGUIAttr(cellNullGUIAttr); |
|
} else { |
|
cellElement.setCellGUIAttr(cellGUIAttr); |
|
} |
|
updatePageAttr(cellElement); |
|
} |
|
|
|
|
|
private void updatePageAttr(TemplateCellElement cellElement) { |
|
|
|
// 分页属性 |
|
CellPageAttr cellPageAttr = cellElement.getCellPageAttr(); |
|
if (cellPageAttr == null) { |
|
cellPageAttr = new CellPageAttr(); |
|
} |
|
|
|
if (ComparatorUtils.equals(getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Page_Before_Row"))) { |
|
cellPageAttr.setPageBeforeRow(this.pageBeforeRowCheckBox.isSelected()); |
|
} |
|
if (ComparatorUtils.equals(getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Page_After_Row"))) { |
|
cellPageAttr.setPageAfterRow(this.pageAfterRowCheckBox.isSelected()); |
|
} |
|
if (ComparatorUtils.equals(getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Page_Before_Column"))) { |
|
cellPageAttr.setPageBeforeColumn(this.pageBeforeColumnCheckBox.isSelected()); |
|
} |
|
if (ComparatorUtils.equals(getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Page_After_Column"))) { |
|
cellPageAttr.setPageAfterColumn(this.pageAfterColumnCheckBox.isSelected()); |
|
} |
|
if (ComparatorUtils.equals(getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellPage_Can_Break_On_Paginate"))) { |
|
cellPageAttr.setCanBreakOnPaginate(canBreakOnPaginateCheckBox.isSelected()); |
|
} |
|
if (ComparatorUtils.equals(getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellPage_Repeat_Content_When_Paging"))) { |
|
cellPageAttr.setRepeat(this.repeatCheckBox.isSelected()); |
|
} |
|
|
|
cellElement.setCellPageAttr(cellPageAttr); |
|
|
|
if (ComparatorUtils.equals(getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_InsertRow_Policy"))) { |
|
// 插入 |
|
CellInsertPolicyAttr cellInsertPolicyAttr = new CellInsertPolicyAttr(); |
|
|
|
if (insertRowPolicy.getSelectedIndex() == 2) { |
|
cellInsertPolicyAttr.setInsertPolicy(CellInsertPolicyAttr.INSERT_POLICY_COPY); |
|
} else if (insertRowPolicy.getSelectedIndex() == 1) { |
|
cellInsertPolicyAttr.setInsertPolicy(CellInsertPolicyAttr.INSERT_POLICY_DEFAULT); |
|
Object value = valueEditor.update(); |
|
cellInsertPolicyAttr.setDefaultInsertValue(value); |
|
} else { |
|
cellInsertPolicyAttr.setInsertPolicy(CellInsertPolicyAttr.INSERT_POLICY_NULL); |
|
} |
|
cellElement.setCellInsertPolicyAttr(cellInsertPolicyAttr); |
|
} |
|
} |
|
|
|
/** |
|
* 存储 |
|
*/ |
|
public void updateBeans() { |
|
TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); |
|
int cellRectangleCount = cs.getCellRectangleCount(); |
|
for (int rect = 0; rect < cellRectangleCount; rect++) { |
|
Rectangle cellRectangle = cs.getCellRectangle(rect); |
|
// 需要先行后列地增加新元素。 |
|
for (int j = 0; j < cellRectangle.height; j++) { |
|
for (int i = 0; i < cellRectangle.width; i++) { |
|
int column = i + cellRectangle.x; |
|
int row = j + cellRectangle.y; |
|
TemplateCellElement cellElement = elementCase.getTemplateCellElement(column, row); |
|
if (cellElement == null) { |
|
cellElement = new DefaultTemplateCellElement(column, row); |
|
elementCase.addCellElement(cellElement); |
|
} |
|
updateBean(cellElement); |
|
} |
|
} |
|
} |
|
} |
|
|
|
/** |
|
* 返回界面的标题 |
|
* |
|
* @return 标题 |
|
*/ |
|
public String title4PopupWindow() { |
|
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Datasource_Other_Attributes"); |
|
} |
|
|
|
}
|
|
|