|
|
|
package com.fr.design.report;
|
|
|
|
|
|
|
|
import com.fr.base.extension.FileExtension;
|
|
|
|
import com.fr.design.gui.ibutton.UIRadioButton;
|
|
|
|
import com.fr.design.gui.ilable.UILabel;
|
|
|
|
import com.fr.design.i18n.Toolkit;
|
|
|
|
import com.fr.design.layout.FRGUIPaneFactory;
|
|
|
|
import com.fr.design.layout.TableLayout;
|
|
|
|
import com.fr.design.layout.TableLayoutHelper;
|
|
|
|
import com.fr.io.attr.ImageExportAttr;
|
|
|
|
import com.fr.io.attr.ReportExportAttr;
|
|
|
|
import com.fr.report.ReportConfigManager;
|
|
|
|
|
|
|
|
import javax.swing.BorderFactory;
|
|
|
|
import javax.swing.ButtonGroup;
|
|
|
|
import javax.swing.JComponent;
|
|
|
|
import javax.swing.JPanel;
|
|
|
|
import java.awt.BorderLayout;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 导出图片配置
|
|
|
|
*
|
|
|
|
* @author vito
|
|
|
|
* @date 2015/7/6 0006
|
|
|
|
*/
|
|
|
|
public class ImageExportPane extends AbstractExportPane {
|
|
|
|
|
|
|
|
private UIRadioButton globalResolutionBtnS;
|
|
|
|
private UIRadioButton globalResolutionBtnM;
|
|
|
|
private UIRadioButton globalResolutionBtnL;
|
|
|
|
|
|
|
|
private UIRadioButton globalRenderSpeed;
|
|
|
|
private UIRadioButton globalRenderQuality;
|
|
|
|
|
|
|
|
private UIRadioButton globalFormatJpg;
|
|
|
|
private UIRadioButton globalFormatPng;
|
|
|
|
|
|
|
|
private UIRadioButton previewResolutionBtnS;
|
|
|
|
private UIRadioButton previewResolutionBtnM;
|
|
|
|
|
|
|
|
private UIRadioButton previewRenderSpeed;
|
|
|
|
private UIRadioButton previewRenderQuality;
|
|
|
|
|
|
|
|
private static final int RESOLUTION_S = 96;
|
|
|
|
private static final int RESOLUTION_M = 192;
|
|
|
|
private static final int RESOLUTION_L = 300;
|
|
|
|
|
|
|
|
private static final int DPI_SCALE_S = 1;
|
|
|
|
private static final int DPI_SCALE_M = 2;
|
|
|
|
|
|
|
|
private static final int GAP = 20;
|
|
|
|
|
|
|
|
public static final String GLOBAL_CONF = Toolkit.i18nText("Fine-Design_Image_Export_Global_Configuration");
|
|
|
|
|
|
|
|
|
|
|
|
private ReportExportAttr reportExportAttr;
|
|
|
|
|
|
|
|
public ImageExportPane() {
|
|
|
|
this.setLayout(FRGUIPaneFactory.createBorderLayout());
|
|
|
|
this.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
|
|
|
|
JPanel globalTitlePane = FRGUIPaneFactory.createTitledBorderPane(GLOBAL_CONF);
|
|
|
|
JPanel previewSetting = FRGUIPaneFactory.createTitledBorderPane(Toolkit.i18nText("Fine-Design_Basic_Preview"));
|
|
|
|
this.add(globalTitlePane, BorderLayout.NORTH);
|
|
|
|
this.add(previewSetting, BorderLayout.CENTER);
|
|
|
|
initGlobalSettings();
|
|
|
|
|
|
|
|
JPanel centerPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
|
|
|
|
JComponent[][] comps = {
|
|
|
|
{new UILabel(Toolkit.i18nText("Fine-Design_Image_Export_Resolution") + ":"), this.globalResolutionBtnS, this.globalResolutionBtnM, this.globalResolutionBtnL},
|
|
|
|
{new UILabel(Toolkit.i18nText("Fine-Design_Report_Format") + ":"), this.globalFormatJpg, null, this.globalFormatPng},
|
|
|
|
{new UILabel(Toolkit.i18nText("Fine-Design_Image_Export_Rendering_Quality") + ":"), this.globalRenderQuality, null, this.globalRenderSpeed},
|
|
|
|
};
|
|
|
|
centerPane.add(
|
|
|
|
TableLayoutHelper.createCommonTableLayoutPane(
|
|
|
|
comps,
|
|
|
|
new double[]{TableLayout.FILL, TableLayout.FILL, TableLayout.FILL, TableLayout.FILL},
|
|
|
|
new double[]{TableLayout.FILL, TableLayout.FILL, TableLayout.FILL, TableLayout.FILL},
|
|
|
|
GAP),
|
|
|
|
BorderLayout.CENTER);
|
|
|
|
globalTitlePane.add(centerPane, BorderLayout.CENTER);
|
|
|
|
JPanel templateCenterPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
|
|
|
|
JComponent[][] templateComps = {
|
|
|
|
{new UILabel(Toolkit.i18nText("Fine-Design_Report_Engine_Enlarge_Or_Reduce") + ":"), this.previewResolutionBtnS, this.previewResolutionBtnM},
|
|
|
|
{new UILabel(Toolkit.i18nText("Fine-Design_Image_Export_Rendering_Quality") + ":"), this.previewRenderQuality, this.previewRenderSpeed},
|
|
|
|
};
|
|
|
|
templateCenterPane.add(
|
|
|
|
TableLayoutHelper.createCommonTableLayoutPane(
|
|
|
|
templateComps,
|
|
|
|
new double[]{TableLayout.FILL, TableLayout.FILL, TableLayout.FILL},
|
|
|
|
new double[]{TableLayout.FILL, TableLayout.FILL, TableLayout.FILL},
|
|
|
|
GAP),
|
|
|
|
BorderLayout.CENTER);
|
|
|
|
|
|
|
|
previewSetting.add(templateCenterPane, BorderLayout.CENTER);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void initGlobalSettings() {
|
|
|
|
globalResolutionBtnS = new UIRadioButton("96dpi", true);
|
|
|
|
globalResolutionBtnM = new UIRadioButton("192dpi");
|
|
|
|
globalResolutionBtnL = new UIRadioButton("300dpi");
|
|
|
|
ButtonGroup globalResolutionBtnGroup = new ButtonGroup();
|
|
|
|
globalResolutionBtnGroup.add(globalResolutionBtnS);
|
|
|
|
globalResolutionBtnGroup.add(globalResolutionBtnM);
|
|
|
|
globalResolutionBtnGroup.add(globalResolutionBtnL);
|
|
|
|
|
|
|
|
globalFormatJpg = new UIRadioButton("jpg", true);
|
|
|
|
globalFormatPng = new UIRadioButton("png");
|
|
|
|
ButtonGroup globalFormatGroup = new ButtonGroup();
|
|
|
|
globalFormatGroup.add(globalFormatJpg);
|
|
|
|
globalFormatGroup.add(globalFormatPng);
|
|
|
|
|
|
|
|
globalRenderQuality = new UIRadioButton(Toolkit.i18nText("Fine-Design_Image_Export_Quality_First"), true);
|
|
|
|
globalRenderSpeed = new UIRadioButton(Toolkit.i18nText(("Fine-Design_Image_Export_Speed_Priority")));
|
|
|
|
ButtonGroup globalRenderGroup = new ButtonGroup();
|
|
|
|
globalRenderGroup.add(globalRenderQuality);
|
|
|
|
globalRenderGroup.add(globalRenderSpeed);
|
|
|
|
|
|
|
|
previewResolutionBtnS = new UIRadioButton("100%", true);
|
|
|
|
previewResolutionBtnM = new UIRadioButton("200%");
|
|
|
|
ButtonGroup previewResolutionBtnGroup = new ButtonGroup();
|
|
|
|
previewResolutionBtnGroup.add(previewResolutionBtnS);
|
|
|
|
previewResolutionBtnGroup.add(previewResolutionBtnM);
|
|
|
|
|
|
|
|
previewRenderSpeed = new UIRadioButton(Toolkit.i18nText("Fine-Design_Image_Export_Speed_Priority"));
|
|
|
|
previewRenderQuality = new UIRadioButton(Toolkit.i18nText("Fine-Design_Image_Export_Quality_First"));
|
|
|
|
ButtonGroup previewRenderGroup = new ButtonGroup();
|
|
|
|
previewRenderGroup.add(previewRenderQuality);
|
|
|
|
previewRenderGroup.add(previewRenderSpeed);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 展示界面
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public void populate(Object exportAttr) {
|
|
|
|
populateBean(exportAttr);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 提交数据
|
|
|
|
*
|
|
|
|
* @return 界面上的更新数据
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public void update(Object exportAttr) {
|
|
|
|
updateBean();
|
|
|
|
}
|
|
|
|
|
|
|
|
private ImageExportAttr getGlobalImageExportAttr() {
|
|
|
|
return ReportConfigManager.getProviderInstance().getImageExportAttr();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 标题
|
|
|
|
*
|
|
|
|
* @return 标题
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
protected String title4PopupWindow() {
|
|
|
|
return Toolkit.i18nText("Fine-Design_Image_Export_Export_Image_Setting");
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void populateBean(Object exportAttr) {
|
|
|
|
ImageExportAttr attr = getGlobalImageExportAttr();
|
|
|
|
switch (attr.getResolution()) {
|
|
|
|
case 192:
|
|
|
|
globalResolutionBtnM.setSelected(true);
|
|
|
|
break;
|
|
|
|
case 300:
|
|
|
|
globalResolutionBtnL.setSelected(true);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
globalResolutionBtnS.setSelected(true);
|
|
|
|
}
|
|
|
|
if (FileExtension.PNG.getExtension().equals(attr.getFormat())) {
|
|
|
|
globalFormatPng.setSelected(true);
|
|
|
|
} else {
|
|
|
|
globalFormatJpg.setSelected(true);
|
|
|
|
}
|
|
|
|
if (attr.getRenderQuality() == ImageExportAttr.RENDER_SPEED) {
|
|
|
|
globalRenderSpeed.setSelected(true);
|
|
|
|
} else {
|
|
|
|
globalRenderQuality.setSelected(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (attr.getPreviewRenderQuality() == ImageExportAttr.RENDER_SPEED) {
|
|
|
|
previewRenderSpeed.setSelected(true);
|
|
|
|
} else {
|
|
|
|
previewRenderQuality.setSelected(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (attr.getPreviewResolutionScale() == DPI_SCALE_S) {
|
|
|
|
previewResolutionBtnS.setSelected(true);
|
|
|
|
} else {
|
|
|
|
previewResolutionBtnM.setSelected(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void updateBean(Object exportAttr) {
|
|
|
|
ImageExportAttr attr = getGlobalImageExportAttr();
|
|
|
|
if (globalResolutionBtnS.isSelected()) {
|
|
|
|
attr.setResolution(RESOLUTION_S);
|
|
|
|
} else if (globalResolutionBtnM.isSelected()) {
|
|
|
|
attr.setResolution(RESOLUTION_M);
|
|
|
|
} else {
|
|
|
|
attr.setResolution(RESOLUTION_L);
|
|
|
|
}
|
|
|
|
if (globalFormatPng.isSelected()) {
|
|
|
|
attr.setFormat(FileExtension.PNG.getExtension());
|
|
|
|
} else {
|
|
|
|
attr.setFormat(FileExtension.JPG.getExtension());
|
|
|
|
}
|
|
|
|
if (globalRenderSpeed.isSelected()) {
|
|
|
|
attr.setRenderQuality(ImageExportAttr.RENDER_SPEED);
|
|
|
|
} else {
|
|
|
|
attr.setRenderQuality(ImageExportAttr.RENDER_QUALITY);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (previewRenderSpeed.isSelected()) {
|
|
|
|
attr.setPreviewRenderQuality(ImageExportAttr.RENDER_SPEED);
|
|
|
|
} else {
|
|
|
|
attr.setPreviewRenderQuality(ImageExportAttr.RENDER_QUALITY);
|
|
|
|
}
|
|
|
|
if (previewResolutionBtnS.isSelected()) {
|
|
|
|
attr.setPreviewResolutionScale(DPI_SCALE_S);
|
|
|
|
} else {
|
|
|
|
attr.setPreviewResolutionScale(DPI_SCALE_M);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String getTitle() {
|
|
|
|
return "Image";
|
|
|
|
}
|
|
|
|
}
|