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

120 lines
3.7 KiB

package com.fr.design.gui.frpane;
import com.fr.base.BaseUtils;
import com.fr.base.background.ImageBackground;
import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.style.background.image.ImageFileChooser;
import com.fr.design.style.background.image.ImagePreviewPane;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
public class ImgChoosePane extends BasicPane {
private ImagePreviewPane previewPane;
private UIButton chooseButton;
private UIButton clearButton;
private UILabel imgSizeLabel;
private ImageFileChooser imageFileChooser;
public ImgChoosePane() {
this.initComponents();
}
protected void initComponents() {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
JPanel previewContainner = new JPanel();
previewContainner.setBorder(BorderFactory.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview")));
previewPane = new ImagePreviewPane();
previewContainner.add(previewPane);
previewPane.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent evt) {
Image image = ((ImagePreviewPane) evt.getSource()).getImage();
if (image == null) {
imgSizeLabel.setText("");
} else {
imgSizeLabel.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Size_Detail",
image.getWidth(null) + "x" + image.getHeight(null)));
}
}
});
this.add(previewContainner, BorderLayout.CENTER);
JPanel choosePane = new JPanel(new BorderLayout(0, 10));
choosePane.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));
JPanel choosePane1 = new JPanel(new BorderLayout(0, 10));
initButton();
choosePane.add(chooseButton, BorderLayout.NORTH);
choosePane1.add(clearButton,BorderLayout.NORTH);
choosePane.add(choosePane1,BorderLayout.CENTER);
imgSizeLabel = new UILabel();
imgSizeLabel.setHorizontalAlignment(SwingConstants.CENTER);
choosePane1.add(imgSizeLabel,BorderLayout.CENTER);
this.add(choosePane,BorderLayout.EAST);
imageFileChooser = new ImageFileChooser();
}
private void initButton() {
chooseButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Image_Select_Picture"));
chooseButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int returnVal = imageFileChooser.showOpenDialog(ImgChoosePane.this);
if (returnVal != JFileChooser.CANCEL_OPTION) {
File selectedFile = imageFileChooser.getSelectedFile();
if (selectedFile != null && selectedFile.isFile()) {
Image image = BaseUtils.readImage(selectedFile.getPath());
previewPane.setImage(image);
previewPane.repaint();
} else {
previewPane.setImage(null);
}
}
}
});
clearButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Clear"));
clearButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
previewPane.setImage(null);
previewPane.repaint();
}
});
}
public void populate(ImageBackground background) {
if(background != null && background.getImage() != null) {
previewPane.setImage(background.getImage());
}
}
public ImageBackground update() {
if(previewPane.getImage() == null) {
return null;
}
return new ImageBackground(previewPane.getImage());
}
@Override
protected String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Image");
}
}