Browse Source

REPORT-10704 & REPORT-10864 支持缩放打印=>设计器部分;本地打印设置的打印机列表中增加“无”选项

research/10.0
plough 6 years ago
parent
commit
71c4097b0f
  1. 34
      designer-realize/src/main/java/com/fr/design/webattr/printsettings/NativePrintSettingPane.java

34
designer-realize/src/main/java/com/fr/design/webattr/printsettings/NativePrintSettingPane.java

@ -10,6 +10,7 @@ import com.fr.design.gui.icombobox.UIComboBoxRenderer;
import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.ispinner.UIBasicSpinner; 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.gui.itextfield.UITextField;
import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayout;
@ -57,6 +58,7 @@ public class NativePrintSettingPane extends JPanel {
private UICheckBox inheritPageLayoutSettingCheck; private UICheckBox inheritPageLayoutSettingCheck;
private UICheckBox inheritPageMarginSettingCheck; private UICheckBox inheritPageMarginSettingCheck;
private UICheckBox fitPaperSizeCheck; // 缩放 private UICheckBox fitPaperSizeCheck; // 缩放
private UINumberField scalePercentField; // 缩放百分比
private UIRadioButton portraitRadioButton; private UIRadioButton portraitRadioButton;
private UIRadioButton landscapeRadioButton; private UIRadioButton landscapeRadioButton;
private PageMarginSettingPane pageMarginSettingPane; private PageMarginSettingPane pageMarginSettingPane;
@ -174,10 +176,13 @@ public class NativePrintSettingPane extends JPanel {
// 缩放 // 缩放
fitPaperSizeCheck = GUICoreUtils.createNoBorderCheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Print_To_Fit_Paper_Size")); 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 // TableLayout
double p = TableLayout.PREFERRED; double p = TableLayout.PREFERRED;
double[] rowSize = {p, p, p, p, p, p}; double[] rowSize = {p, p, p, p, p, p, p};
double[] columnSize = {60, p}; double[] columnSize = {60, p};
Component[][] components = { 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_Printer") + ":"), printerPane},
@ -185,9 +190,8 @@ public class NativePrintSettingPane extends JPanel {
{printAreaLabelPane, getPrintAreaPane()}, {printAreaLabelPane, getPrintAreaPane()},
{getTopAlignLabelPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Paper") + ":"), paperSettingCheckPane}, {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_Form_Layout") + ":"), layoutSettingCheckPane},
{getTopAlignLabelPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Margin") + ":"), pageMarginCheckPane} {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},
// {new UILabel(com.fr.design.i18n.Toolkit.i18nText("FR-Designer_Scale_EnlargeOrReduce") + ":"), fitPaperSizeCheck},
}; };
return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, 0, 15); return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, 0, 15);
} }
@ -197,6 +201,8 @@ public class NativePrintSettingPane extends JPanel {
DocFlavor.INPUT_STREAM.AUTOSENSE, null); DocFlavor.INPUT_STREAM.AUTOSENSE, null);
Set<String> allPrinterName = new HashSet<String>(); 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++) { for (int i = 0, len = printServices.length; i < len; i++) {
allPrinterName.add(printServices[i].getName()); allPrinterName.add(printServices[i].getName());
} }
@ -296,6 +302,24 @@ public class NativePrintSettingPane extends JPanel {
return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, 0, 0); return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, 0, 0);
} }
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 顶部 // 返回包含一个标签的 panel,标签始终位于 panel 顶部
private JPanel getTopAlignLabelPane(String labelText) { private JPanel getTopAlignLabelPane(String labelText) {
JPanel labelPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel labelPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
@ -329,6 +353,7 @@ public class NativePrintSettingPane extends JPanel {
inheritPageMarginSettingCheck.setSelected(nativePrintAttr.isInheritPageMarginSetting()); inheritPageMarginSettingCheck.setSelected(nativePrintAttr.isInheritPageMarginSetting());
pageMarginSettingPane.populate(nativePrintAttr.getMargin()); pageMarginSettingPane.populate(nativePrintAttr.getMargin());
fitPaperSizeCheck.setSelected(nativePrintAttr.isFitPaperSize()); fitPaperSizeCheck.setSelected(nativePrintAttr.isFitPaperSize());
scalePercentField.setValue(nativePrintAttr.getScalePercent());
} }
public void update(NativePrintAttr nativePrintAttr) { public void update(NativePrintAttr nativePrintAttr) {
@ -356,6 +381,7 @@ public class NativePrintSettingPane extends JPanel {
nativePrintAttr.setInheritPageMarginSetting(inheritPageMarginSettingCheck.isSelected()); nativePrintAttr.setInheritPageMarginSetting(inheritPageMarginSettingCheck.isSelected());
nativePrintAttr.setMargin(pageMarginSettingPane.updateBean()); nativePrintAttr.setMargin(pageMarginSettingPane.updateBean());
nativePrintAttr.setFitPaperSize(fitPaperSizeCheck.isSelected()); nativePrintAttr.setFitPaperSize(fitPaperSizeCheck.isSelected());
nativePrintAttr.setScalePercent((int)scalePercentField.getValue());
} }
// 刷新面板可用状态 // 刷新面板可用状态

Loading…
Cancel
Save