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

166 lines
5.9 KiB

package com.fr.design.style.background;
import com.fr.base.background.ColorBackground;
import com.fr.base.background.GradientBackground;
import com.fr.base.background.ImageFileBackground;
import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.style.background.gradient.GradientBackgroundSelectPane;
import com.fr.design.style.background.image.ImageSelectPane;
import com.fr.design.style.color.ColorUIComboBoxPane;
import com.fr.general.Background;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Dimension;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
/**
* @author kunsnat E-mail:kunsnat@gmail.com
* @version 创建时间:2011-11-3 上午10:03:03
* 类说明: 通过选择box切换界面的背景选择pane. bug原型图@5471
*/
public class BackgroundUIComboBoxPane extends BasicPane {
private static final long serialVersionUID = -3751191424737067321L;
protected static final String none = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Data_Function_None");
protected static final String color = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Colors");
protected static final String image = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Image");
protected static final String gradient = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Gradient_Color");
protected CardLayout cardLayout;
protected JPanel layoutPane;
protected ColorUIComboBoxPane colorPane;
protected GradientBackgroundSelectPane gradientPane;
private UIComboBox selectBox;
private ImageSelectPane imagePane;
public BackgroundUIComboBoxPane() {
initPane();
}
protected void initPane() {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
JPanel pane = FRGUIPaneFactory.createLeftFlowZeroGapBorderPane();
this.add(pane);
selectBox = new UIComboBox(getSelectType());
selectBox.setPreferredSize(new Dimension(70, 20));
JPanel labelPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
pane.add(labelPane);
labelPane.setPreferredSize(new Dimension(150, 40));
JPanel northPane = FRGUIPaneFactory.createLeftFlowZeroGapBorderPane();
labelPane.add(northPane, BorderLayout.NORTH);
northPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Background_Setting") + ":"));
northPane.add(selectBox);
cardLayout = new CardLayout();
layoutPane = new JPanel();
pane.add(layoutPane);
layoutPane.setLayout(cardLayout);
initSelectPane();
selectBox.addItemListener(itemListener);
}
protected String[] getSelectType() {
return new String[]{none, color, image, gradient};
}
protected void initSelectPane() {
layoutPane.add(new JPanel(), "none");
layoutPane.add(colorPane = new ColorUIComboBoxPane(), "color");
layoutPane.add(imagePane = new ImageSelectPane(), "image");
layoutPane.add(gradientPane = new GradientBackgroundSelectPane(), "gradient");
cardLayout.show(layoutPane, "none");
}
ItemListener itemListener = new ItemListener() {
public void itemStateChanged(ItemEvent e) {
UIComboBox source = (UIComboBox)e.getSource();
Object select = source.getSelectedItem();
if(none.equals(select)) {
cardLayout.show(layoutPane, "none");
} else if(color.equals(select)) {
cardLayout.show(layoutPane, "color");
} else if(image.equals(select)) {
cardLayout.show(layoutPane, "image");
} else if(gradient.equals(select)) {
cardLayout.show(layoutPane, "gradient");
}
}
};
public void populate(Background background) {
if(background instanceof ColorBackground && colorPane != null) {
selectBox.setSelectedItem(color);
colorPane.populate(background);
} else if(background instanceof ImageFileBackground && imagePane != null) {
selectBox.setSelectedItem(image);
imagePane.populate(background);
} else if(background instanceof GradientBackground && gradientPane != null) {
selectBox.setSelectedItem(gradient);
gradientPane.populate(background);
}
}
public Background update() {
Background background = null;
Object select = selectBox.getSelectedItem();
if(none.equals(select)) {
} else if(color.equals(select) && colorPane != null) {
background = colorPane.update();
} else if(image.equals(select) && imagePane != null) {
background = imagePane.update();
} else if(gradient.equals(select) && gradientPane != null) {
background = gradientPane.update();
}
return background;
}
public void populateAlpha(int alpha) {
if(colorPane != null) {
colorPane.populateAlpha(alpha);
}
if(imagePane != null) {
imagePane.populateAlpha(alpha);
}
if(gradientPane != null) {
gradientPane.populateAlpha(alpha);
}
}
public float updateAlpha() {
float alpha = 1;
Object select = selectBox.getSelectedItem();
if(none.equals(select)) {
} else if(color.equals(select) && colorPane != null) {
alpha = colorPane.updateAlpha();
} else if(image.equals(select) && imagePane != null) {
alpha = imagePane.updateAlpha();
} else if(gradient.equals(select) && gradientPane != null) {
alpha = gradientPane.updateAlpha();
}
return alpha;
}
@Override
protected String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Background_Setting");
}
}