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

508 lines
24 KiB

package com.fr.design.webattr.printsettings;
import com.fr.base.PaperSize;
import com.fr.base.Utils;
import com.fr.base.print.NativePrintAttr;
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.icombobox.UIComboBoxRenderer;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.ispinner.UIBasicSpinner;
import com.fr.design.gui.itextfield.UINumberField;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.report.UnitFieldPane;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.ComparatorUtils;
import com.fr.report.stable.ReportConstants;
import com.fr.stable.Constants;
import com.fr.stable.StringUtils;
import javax.print.DocFlavor;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.SpinnerNumberModel;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.HashSet;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Created by plough on 2018/3/5.
*/
public abstract class AbstractNativePrintSettingPane extends JPanel {
private static final int ODD_INDEX = 0;
private static final int EVEN_INDEX = 1;
private static final String CUSTOM_PAPERSIZE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_Custom");
private static final PaperSize DEFAULT_PAPERSIZE = PaperSize.PAPERSIZE_A4;
// 公共组件
private UICheckBox showDialogCheck;
private UICheckBox needSelectSheetCheck; // 打印需要指定 sheet
private UIComboBox printerComboBox;
private UIBasicSpinner copySpinner; // 份数
private UIRadioButton allPageRadioButton;
private UIRadioButton currentPageRadioButton;
private UIRadioButton customPageRadioButton;
private UIRadioButton doublePrintRadioButton;
private UIComboBox doublePrintComboBox;
private UITextField specifiedAreaField;
private UIComboBox predefinedPaperSizeComboBox;
private UICheckBox inheritPagePaperSettingCheck;
private UICheckBox inheritPageLayoutSettingCheck;
private UICheckBox inheritPageMarginSettingCheck;
private UICheckBox fitPaperSizeCheck; // 缩放
private UINumberField scalePercentField; // 缩放百分比
private UIRadioButton portraitRadioButton;
private UIRadioButton landscapeRadioButton;
private PageMarginSettingPane pageMarginSettingPane;
private JPanel centerPane;
private JPanel customPaperSizePane;
private UnitFieldPane customWidthFieldPane;
private UnitFieldPane customHeightFieldPane;
AbstractNativePrintSettingPane() {
initComponents();
initListeners();
}
private void initComponents() {
JPanel printPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
JPanel northPane = getHeaderPane();
printPane.add(northPane, BorderLayout.NORTH);
centerPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Default_Settings"));
centerPane.add(getNativePrintMainSettingPane());
printPane.add(centerPane, BorderLayout.CENTER);
this.setLayout(new BorderLayout());
this.add(printPane, BorderLayout.CENTER);
}
private JPanel getHeaderPane() {
UILabel tipDownload = GUICoreUtils.createTipLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Tip_Native_Print_Need_Client"));
// 打印时需要打印设置窗口
showDialogCheck = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_Show_Print_Setting_Window_When_Printing"));
showDialogCheck.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 20));
UILabel showDialogCheckTip = GUICoreUtils.createTipLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Tip_Use_Default_Settings"));
JPanel showDialogCheckPane = GUICoreUtils.createFlowPane(new Component[]{
showDialogCheck, showDialogCheckTip}, FlowLayout.LEFT);
// 打印需要指定 sheet
needSelectSheetCheck = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_Need_Select_Sheet_When_Printing"));
needSelectSheetCheck.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 20));
UILabel needSelectSheetCheckTip = GUICoreUtils.createTipLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Tip_Invalid_In_Page_View"));
JPanel needSelectSheetCheckPane = GUICoreUtils.createFlowPane(new Component[]{
needSelectSheetCheck, needSelectSheetCheckTip}, FlowLayout.LEFT);
return createHeaderPane(tipDownload, showDialogCheckPane, needSelectSheetCheckPane);
}
abstract JPanel createHeaderPane(Component... comps);
private void initListeners() {
allPageRadioButton.addItemListener(getPageRaidoListener());
currentPageRadioButton.addItemListener(getPageRaidoListener());
customPageRadioButton.addItemListener(getPageRaidoListener());
doublePrintRadioButton.addItemListener(getPageRaidoListener());
showDialogCheck.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
checkEnabled();
}
});
specifiedAreaField.addFocusListener(new FocusAdapter() {
String lastValidText = StringUtils.EMPTY;
@Override
public void focusGained(FocusEvent e) {
lastValidText = specifiedAreaField.getText();
}
@Override
public void focusLost(FocusEvent e) {
String text = specifiedAreaField.getText();
Pattern r = Pattern.compile("^(\\d+-)?\\d+$");
Matcher m = r.matcher(text);
if (!m.matches()) {
specifiedAreaField.setText(lastValidText);
}
super.focusLost(e);
}
});
predefinedPaperSizeComboBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
updateCustomPaperSizeArea();
}
});
}
private ItemListener getPageRaidoListener() {
return new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
specifiedAreaField.setEnabled(customPageRadioButton.isSelected());
doublePrintComboBox.setEnabled(doublePrintRadioButton.isSelected());
}
};
}
private JPanel getNativePrintMainSettingPane() {
// 打印机
String[] printerArray = getAllPrinterNames();
printerComboBox = new UIComboBox(printerArray);
printerComboBox.setPreferredSize(new Dimension(200, printerComboBox.getPreferredSize().height));
JPanel printerPane = FRGUIPaneFactory.createLeftFlowZeroGapBorderPane();
printerPane.add(printerComboBox);
// 份数
copySpinner = new UIBasicSpinner(new SpinnerNumberModel(1, 1, Integer.MAX_VALUE, 1));
GUICoreUtils.setColumnForSpinner(copySpinner, 5);
JPanel copyPane = FRGUIPaneFactory.createLeftFlowZeroGapBorderPane();
copyPane.add(copySpinner);
// 继承页面纸张设置
inheritPagePaperSettingCheck = GUICoreUtils.createNoBorderCheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Inherit_Page_Paper_Setting"));
JPanel paperSettingPane = getPaperSettingPane();
JPanel paperSettingCheckPane = GUICoreUtils.createCheckboxAndDynamicPane(inheritPagePaperSettingCheck, paperSettingPane, true);
// 继承页面布局设置
inheritPageLayoutSettingCheck = GUICoreUtils.createNoBorderCheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Inherit_Page_Layout_Setting"));
JPanel layoutSettingPane = getLayoutSettingPane();
JPanel layoutSettingCheckPane = GUICoreUtils.createCheckboxAndDynamicPane(inheritPageLayoutSettingCheck, layoutSettingPane, true);
// 页码标签
UILabel printAreaLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_Page_Number") + ":");
JPanel printAreaLabelPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
printAreaLabelPane.add(printAreaLabel, BorderLayout.NORTH);
printAreaLabel.setBorder(BorderFactory.createEmptyBorder(5, 0, 0, 0));
// 边距
inheritPageMarginSettingCheck = GUICoreUtils.createNoBorderCheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Inherit_Page_Margin_Setting"));
pageMarginSettingPane = new PageMarginSettingPane();
pageMarginSettingPane.setBorder(BorderFactory.createEmptyBorder(10, -10, 0, 0));
JPanel pageMarginCheckPane = GUICoreUtils.createCheckboxAndDynamicPane(inheritPageMarginSettingCheck, pageMarginSettingPane, true);
// 缩放
fitPaperSizeCheck = GUICoreUtils.createNoBorderCheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Print_To_Fit_Paper_Size"));
JPanel scalePane = getScalePane();
scalePane.setBorder(BorderFactory.createEmptyBorder(5, 0, 0, 0));
JPanel scaleCheckPane = GUICoreUtils.createCheckboxAndDynamicPane(fitPaperSizeCheck, scalePane, true);
// TableLayout
double p = TableLayout.PREFERRED;
double[] rowSize = {p, p, p, p, p, p, p};
double[] columnSize = {60, p};
Component[][] components = {
{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Printer") + ":"), printerPane},
{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Copy_Number") + ":"), copyPane},
{printAreaLabelPane, getPrintAreaPane()},
{getTopAlignLabelPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Paper") + ":"), paperSettingCheckPane},
{getTopAlignLabelPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Layout") + ":"), layoutSettingCheckPane},
{getTopAlignLabelPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Margin") + ":"), pageMarginCheckPane},
{getTopAlignLabelPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Scale_EnlargeOrReduce") + ":"), scaleCheckPane},
};
return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, 0, 30);
}
private String[] getAllPrinterNames() {
PrintService[] printServices = PrintServiceLookup.lookupPrintServices(
DocFlavor.INPUT_STREAM.AUTOSENSE, null);
Set<String> allPrinterName = new HashSet<String>();
allPrinterName.add(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_None"));
for (int i = 0, len = printServices.length; i < len; i++) {
allPrinterName.add(printServices[i].getName());
}
return allPrinterName.toArray(new String[allPrinterName.size()]);
}
private JPanel getPaperSettingPane() {
predefinedPaperSizeComboBox = new UIComboBox();
for (int i = 0; i < ReportConstants.PaperSizeNameSizeArray.length; i++) {
Object[] tmpPaperSizeNameArray = ReportConstants.PaperSizeNameSizeArray[i];
predefinedPaperSizeComboBox.addItem(tmpPaperSizeNameArray[1]);
}
predefinedPaperSizeComboBox.addItem(CUSTOM_PAPERSIZE);
predefinedPaperSizeComboBox.setRenderer(new UIComboBoxRenderer() {
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (value instanceof PaperSize) {
PaperSize paperSize = (PaperSize) value;
for (int i = 0; i < ReportConstants.PaperSizeNameSizeArray.length; i++) {
Object[] tmpPaperSizeNameArray = ReportConstants.PaperSizeNameSizeArray[i];
if (ComparatorUtils.equals(paperSize, tmpPaperSizeNameArray[1])) {
String sbuf = tmpPaperSizeNameArray[0].toString() + " [" +
Utils.convertNumberStringToString(paperSize.getWidth().toMMValue4Scale2()) +
'x' +
Utils.convertNumberStringToString(paperSize.getHeight().toMMValue4Scale2()) +
' ' +
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_mm") +
']';
this.setText(" " + sbuf);
break;
}
}
}
return this;
}
});
// 下拉框
JPanel comboPanel = FRGUIPaneFactory.createLeftFlowZeroGapBorderPane();
comboPanel.add(predefinedPaperSizeComboBox);
comboPanel.setBorder(BorderFactory.createEmptyBorder(8, 0, 0, 0));
customPaperSizePane = FRGUIPaneFactory.createX_AXISBoxInnerContainer_M_Pane();
// 宽度设置
JPanel customWidthPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
customWidthPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Designer_Width") + ":"));
customWidthFieldPane = new UnitFieldPane(Constants.UNIT_MM);
customWidthFieldPane.setUnitValue(DEFAULT_PAPERSIZE.getWidth());
customWidthPane.add(customWidthFieldPane);
// 高度设置
JPanel customHeightPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
customHeightPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Height") + ":"));
customHeightFieldPane = new UnitFieldPane(Constants.UNIT_MM);
customHeightFieldPane.setUnitValue(DEFAULT_PAPERSIZE.getHeight());
customHeightPane.add(customHeightFieldPane);
customPaperSizePane.add(customWidthPane);
customPaperSizePane.add(customHeightPane);
customPaperSizePane.setBorder(BorderFactory.createEmptyBorder(5, 0, 0, 0));
JPanel panel = FRGUIPaneFactory.createBorderLayout_S_Pane();
panel.add(comboPanel, BorderLayout.NORTH);
panel.add(customPaperSizePane, BorderLayout.CENTER);
return panel;
}
private void updateCustomPaperSizeArea() {
boolean isCustom = ComparatorUtils.equals(predefinedPaperSizeComboBox.getSelectedItem(), CUSTOM_PAPERSIZE);
customPaperSizePane.setVisible(isCustom);
}
private JPanel getLayoutSettingPane() {
JPanel layoutSettingPane = FRGUIPaneFactory.createLeftFlowZeroGapBorderPane();
layoutSettingPane.setBorder(BorderFactory.createEmptyBorder(5, 0, 0, 0));
portraitRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_Portrait"));
portraitRadioButton.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 20));
landscapeRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_Landscape"));
layoutSettingPane.add(portraitRadioButton);
layoutSettingPane.add(landscapeRadioButton);
ButtonGroup layoutButtonGroup = new ButtonGroup();
layoutButtonGroup.add(portraitRadioButton);
layoutButtonGroup.add(landscapeRadioButton);
portraitRadioButton.setSelected(true);
return layoutSettingPane;
}
// 页码范围
private JPanel getPrintAreaPane() {
allPageRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_All_Pages"));
currentPageRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Current_Page"));
customPageRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_HJS-Specified_Pages"));
doublePrintRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Double_Side_Print"));
ButtonGroup group = new ButtonGroup();
group.add(allPageRadioButton);
group.add(currentPageRadioButton);
group.add(customPageRadioButton);
group.add(doublePrintRadioButton);
allPageRadioButton.setSelected(true);
specifiedAreaField = new UITextField(20) {
@Override
public void setEnabled(boolean enabled) {
// 如果未选中"指定页",此输入框始终不可用
if (enabled && !customPageRadioButton.isSelected()) {
return;
}
super.setEnabled(enabled);
}
};
UILabel areaFieldTip = GUICoreUtils.createTipLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Print_Area_Tip"));
doublePrintComboBox = new UIComboBox() {
@Override
public void setEnabled(boolean enabled) {
// 如果未选中"双面打印",此下拉框始终不可用
if (enabled && !doublePrintRadioButton.isSelected()) {
return;
}
super.setEnabled(enabled);
}
};
doublePrintComboBox.addItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_HF_Odd_Page"));
doublePrintComboBox.addItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_HF_Even_Page"));
// TableLayout
double p = TableLayout.PREFERRED;
double[] rowSize = {p, p, p, p};
double[] columnSize = {p, p, p};
Component[][] components = {
{allPageRadioButton, null, null},
{currentPageRadioButton, null, null},
{customPageRadioButton, specifiedAreaField, areaFieldTip},
{doublePrintRadioButton, doublePrintComboBox, new JPanel()}
};
return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, 0, 8);
}
private JPanel getScalePane() {
scalePercentField = new UINumberField(5);
scalePercentField.setMaxIntegerLength(3);
scalePercentField.setMaxDecimalLength(0);
scalePercentField.setMaxValue(200);
UILabel percent = new UILabel("%");
// TableLayout
double p = TableLayout.PREFERRED;
double[] rowSize = {p};
double[] columnSize = {p, p};
Component[][] components = {
{scalePercentField, percent}
};
return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, 0, 0);
}
// 返回包含一个标签的 panel,标签始终位于 panel 顶部
JPanel getTopAlignLabelPane(String labelText) {
JPanel labelPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
labelPane.add(new UILabel(labelText), BorderLayout.NORTH);
labelPane.add(new JPanel(), BorderLayout.CENTER);
return labelPane;
}
public void populate(NativePrintAttr nativePrintAttr) {
extraPopulate(nativePrintAttr);
showDialogCheck.setSelected(nativePrintAttr.isShowDialog());
needSelectSheetCheck.setSelected(nativePrintAttr.isNeedSelectSheet());
printerComboBox.setSelectedItem(nativePrintAttr.getPrinterName());
copySpinner.setValue(nativePrintAttr.getCopy());
if (nativePrintAttr.getPageType().equals(NativePrintAttr.PageType.ALL_PAGES)) {
allPageRadioButton.setSelected(true);
} else if (nativePrintAttr.getPageType().equals(NativePrintAttr.PageType.CURRENT_PAGE)) {
currentPageRadioButton.setSelected(true);
} else if (nativePrintAttr.getPageType().equals(NativePrintAttr.PageType.SPECIFIED_PAGES)) {
customPageRadioButton.setSelected(true);
specifiedAreaField.setText(nativePrintAttr.getArea());
} else {
doublePrintRadioButton.setSelected(true);
if (nativePrintAttr.getPageType().equals(NativePrintAttr.PageType.ODD_PAGES)) {
doublePrintComboBox.setSelectedIndex(ODD_INDEX);
} else {
doublePrintComboBox.setSelectedIndex(EVEN_INDEX);
}
}
specifiedAreaField.setEnabled(customPageRadioButton.isSelected());
doublePrintComboBox.setEnabled(doublePrintRadioButton.isSelected());
inheritPagePaperSettingCheck.setSelected(nativePrintAttr.isInheritPagePaperSetting());
PaperSize paperSize = nativePrintAttr.getPaperSize();
predefinedPaperSizeComboBox.setSelectedItem(paperSize);
if (!ComparatorUtils.equals(predefinedPaperSizeComboBox.getSelectedItem(), paperSize)) {
// 自定义尺寸
predefinedPaperSizeComboBox.setSelectedItem(CUSTOM_PAPERSIZE);
customWidthFieldPane.setUnitValue(paperSize.getWidth());
customHeightFieldPane.setUnitValue(paperSize.getHeight());
}
updateCustomPaperSizeArea();
inheritPageLayoutSettingCheck.setSelected(nativePrintAttr.isInheritPageLayoutSetting());
if (nativePrintAttr.getOrientation() == ReportConstants.PORTRAIT) {
portraitRadioButton.setSelected(true);
} else {
landscapeRadioButton.setSelected(true);
}
inheritPageMarginSettingCheck.setSelected(nativePrintAttr.isInheritPageMarginSetting());
pageMarginSettingPane.populate(nativePrintAttr.getMargin());
fitPaperSizeCheck.setSelected(nativePrintAttr.isFitPaperSize());
scalePercentField.setValue(nativePrintAttr.getScalePercent());
checkEnabled();
}
protected void extraPopulate(NativePrintAttr nativePrintAttr) {
// do nothing
}
public void update(NativePrintAttr nativePrintAttr) {
extraUpdate(nativePrintAttr);
nativePrintAttr.setShowDialog(showDialogCheck.isSelected());
nativePrintAttr.setNeedSelectSheet(needSelectSheetCheck.isSelected());
nativePrintAttr.setPrinterName((String) printerComboBox.getSelectedItem());
nativePrintAttr.setCopy((int) copySpinner.getValue());
// 页码
if (allPageRadioButton.isSelected()) {
nativePrintAttr.setPageType(NativePrintAttr.PageType.ALL_PAGES);
} else if (currentPageRadioButton.isSelected()) {
nativePrintAttr.setPageType(NativePrintAttr.PageType.CURRENT_PAGE);
} else if (customPageRadioButton.isSelected()) {
nativePrintAttr.setPageType(NativePrintAttr.PageType.SPECIFIED_PAGES);
nativePrintAttr.setArea(specifiedAreaField.getText());
} else if (doublePrintComboBox.getSelectedIndex() == ODD_INDEX) {
nativePrintAttr.setPageType(NativePrintAttr.PageType.ODD_PAGES);
} else {
nativePrintAttr.setPageType(NativePrintAttr.PageType.EVEN_PAGES);
}
nativePrintAttr.setInheritPagePaperSetting(inheritPagePaperSettingCheck.isSelected());
PaperSize newPaperSize;
if (ComparatorUtils.equals(predefinedPaperSizeComboBox.getSelectedItem(), CUSTOM_PAPERSIZE)) {
newPaperSize = new PaperSize(customWidthFieldPane.getUnitValue(), customHeightFieldPane.getUnitValue());
} else {
newPaperSize = (PaperSize) predefinedPaperSizeComboBox.getSelectedItem();
}
nativePrintAttr.setPaperSize(newPaperSize);
nativePrintAttr.setInheritPageLayoutSetting(inheritPageLayoutSettingCheck.isSelected());
nativePrintAttr.setOrientation(portraitRadioButton.isSelected() ?
ReportConstants.PORTRAIT : ReportConstants.LANDSCAPE);
nativePrintAttr.setInheritPageMarginSetting(inheritPageMarginSettingCheck.isSelected());
nativePrintAttr.setMargin(pageMarginSettingPane.updateBean());
nativePrintAttr.setFitPaperSize(fitPaperSizeCheck.isSelected());
nativePrintAttr.setScalePercent((int) scalePercentField.getValue());
}
protected void extraUpdate(NativePrintAttr nativePrintAttr) {
// do nothing
}
// 刷新面板可用状态
public void checkEnabled() {
GUICoreUtils.setEnabled(centerPane, !showDialogCheck.isSelected());
}
}