|
|
|
@ -1,26 +1,73 @@
|
|
|
|
|
package com.fr.design.mainframe.chart.gui.style; |
|
|
|
|
|
|
|
|
|
import java.awt.*; |
|
|
|
|
|
|
|
|
|
import com.fr.chart.base.AttrFillStyle; |
|
|
|
|
import com.fr.base.ChartColorMatching; |
|
|
|
|
import com.fr.chart.base.ChartConstants; |
|
|
|
|
import com.fr.design.beans.BasicBeanPane; |
|
|
|
|
import com.fr.design.gui.ibutton.UIButton; |
|
|
|
|
import com.fr.design.gui.ilable.UILabel; |
|
|
|
|
import com.fr.design.layout.FRGUIPaneFactory; |
|
|
|
|
import com.fr.design.layout.TableLayout; |
|
|
|
|
import com.fr.design.layout.TableLayoutHelper; |
|
|
|
|
import com.fr.design.style.background.gradient.FixedGradientBar; |
|
|
|
|
import com.fr.general.Inter; |
|
|
|
|
|
|
|
|
|
import javax.swing.JPanel; |
|
|
|
|
import java.awt.BorderLayout; |
|
|
|
|
import java.awt.CardLayout; |
|
|
|
|
import java.awt.Color; |
|
|
|
|
import java.awt.Component; |
|
|
|
|
import java.awt.Dimension; |
|
|
|
|
import java.awt.FlowLayout; |
|
|
|
|
import java.awt.event.ActionEvent; |
|
|
|
|
import java.awt.event.ActionListener; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.Arrays; |
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 预定义的图表配色界面, 其中和属性表中ChartFillStylePane 主要的不同就是标签的位置. |
|
|
|
|
* 预定义的图表配色界面. |
|
|
|
|
* @author kunsnat E-mail:kunsnat@gmail.com |
|
|
|
|
* @version 创建时间:2013-8-21 下午03:16:27 |
|
|
|
|
*/ |
|
|
|
|
public class ChartPreFillStylePane extends ChartFillStylePane { |
|
|
|
|
public class ChartPreFillStylePane extends BasicBeanPane<ChartColorMatching> { |
|
|
|
|
|
|
|
|
|
private JPanel changeColorSetPane; |
|
|
|
|
private CardLayout cardLayout; |
|
|
|
|
|
|
|
|
|
private UIButton accButton; |
|
|
|
|
private UIButton gradientButton; |
|
|
|
|
|
|
|
|
|
private ChartAccColorPane colorAcc; |
|
|
|
|
private FixedGradientBar colorGradient; |
|
|
|
|
|
|
|
|
|
private ChartColorMatching chartColorMatching; |
|
|
|
|
|
|
|
|
|
public ChartPreFillStylePane() { |
|
|
|
|
|
|
|
|
|
initComponents(); |
|
|
|
|
|
|
|
|
|
initListener(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected void initLayout() {// 仅仅是服务器预定 风格界面布局, 和属性表 有所不同.
|
|
|
|
|
private void initComponents() { |
|
|
|
|
|
|
|
|
|
JPanel customPane = new JPanel(FRGUIPaneFactory.createBorderLayout()); |
|
|
|
|
|
|
|
|
|
JPanel buttonPane = new JPanel(); |
|
|
|
|
buttonPane.setLayout(new FlowLayout(FlowLayout.LEFT)); |
|
|
|
|
buttonPane.add(accButton = new UIButton(Inter.getLocText("FR-Designer_Chart_Acc_Set"))); |
|
|
|
|
buttonPane.add(gradientButton = new UIButton(Inter.getLocText("FR-Designer_Gradient-Color"))); |
|
|
|
|
customPane.add(buttonPane, BorderLayout.NORTH); |
|
|
|
|
|
|
|
|
|
changeColorSetPane = new JPanel(cardLayout = new CardLayout()); |
|
|
|
|
changeColorSetPane.add(colorGradient = new FixedGradientBar(4, 130), "gradient"); |
|
|
|
|
changeColorSetPane.add(colorAcc = new ChartAccColorPane(), "acc"); |
|
|
|
|
cardLayout.show(changeColorSetPane, "acc"); |
|
|
|
|
customPane.add(changeColorSetPane, BorderLayout.CENTER); |
|
|
|
|
|
|
|
|
|
accButton.setSelected(true); |
|
|
|
|
|
|
|
|
|
customPane.setPreferredSize(new Dimension(200, 200)); |
|
|
|
|
colorGradient.setPreferredSize(new Dimension(120, 30)); |
|
|
|
|
|
|
|
|
@ -32,66 +79,92 @@ public class ChartPreFillStylePane extends ChartFillStylePane {
|
|
|
|
|
new Component[]{null, customPane}, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
this.setLayout(new BorderLayout()); |
|
|
|
|
this.add(TableLayoutHelper.createTableLayoutPane(components,rowSize,columnSize), BorderLayout.WEST); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void populateBean(AttrFillStyle condition) { |
|
|
|
|
styleSelectBox.setSelectedIndex(styleSelectBox.getItemCount()-1); |
|
|
|
|
private void initListener() { |
|
|
|
|
|
|
|
|
|
if(condition == null || condition.getColorStyle() == ChartConstants.COLOR_DEFAULT) { |
|
|
|
|
colorAcc.populateBean(ChartConstants.CHART_COLOR_ARRAY);// 新建时 保持默认样式
|
|
|
|
|
accButton.addActionListener(new ActionListener() { |
|
|
|
|
@Override |
|
|
|
|
public void actionPerformed(ActionEvent e) { |
|
|
|
|
accButton.setSelected(true); |
|
|
|
|
gradientButton.setSelected(false); |
|
|
|
|
cardLayout.show(changeColorSetPane, "acc"); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
gradientButton.addActionListener(new ActionListener() { |
|
|
|
|
@Override |
|
|
|
|
public void actionPerformed(ActionEvent e) { |
|
|
|
|
gradientButton.setSelected(true); |
|
|
|
|
accButton.setSelected(false); |
|
|
|
|
cardLayout.show(changeColorSetPane, "gradient"); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
protected String title4PopupWindow() { |
|
|
|
|
return Inter.getLocText("ServerM-Predefined_Styles"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void populateBean(ChartColorMatching condition) { |
|
|
|
|
chartColorMatching = condition; |
|
|
|
|
|
|
|
|
|
colorGradient.getSelectColorPointBtnP1().setColorInner(Color.WHITE); |
|
|
|
|
colorGradient.getSelectColorPointBtnP2().setColorInner(Color.black);// 控件中的位置无效.
|
|
|
|
|
} else { |
|
|
|
|
int colorStyle = condition.getColorStyle(); |
|
|
|
|
gradientButton.setSelected(colorStyle == ChartConstants.COLOR_GRADIENT); |
|
|
|
|
accButton.setSelected(colorStyle == ChartConstants.COLOR_ACC); |
|
|
|
|
colorGradient.getSelectColorPointBtnP2().setColorInner(Color.black); |
|
|
|
|
colorAcc.populateBean(ChartConstants.CHART_COLOR_ARRAY); |
|
|
|
|
|
|
|
|
|
if (condition == null) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int colorSize = condition.getColorSize(); |
|
|
|
|
if(colorSize == 2 && gradientButton.isSelected() ) { |
|
|
|
|
boolean isGradient = condition.getGradient(); |
|
|
|
|
List<Color> colorList = condition.getColorList(); |
|
|
|
|
if (isGradient) { |
|
|
|
|
gradientButton.setSelected(true); |
|
|
|
|
accButton.setSelected(false); |
|
|
|
|
cardLayout.show(changeColorSetPane, "gradient"); |
|
|
|
|
|
|
|
|
|
Color endColor = condition.getColorIndex(1); |
|
|
|
|
Color startColor = condition.getColorIndex(0); |
|
|
|
|
colorGradient.getSelectColorPointBtnP1().setColorInner(startColor); |
|
|
|
|
colorGradient.getSelectColorPointBtnP2().setColorInner(endColor); |
|
|
|
|
if (colorList.size() == 2) { |
|
|
|
|
colorGradient.getSelectColorPointBtnP1().setColorInner(colorList.get(0)); |
|
|
|
|
colorGradient.getSelectColorPointBtnP2().setColorInner(colorList.get(1)); |
|
|
|
|
colorGradient.repaint(); |
|
|
|
|
} else if(colorSize > 2 && accButton.isSelected()){ |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
accButton.setSelected(true); |
|
|
|
|
gradientButton.setSelected(false); |
|
|
|
|
cardLayout.show(changeColorSetPane, "acc"); |
|
|
|
|
|
|
|
|
|
Color[] colors = new Color[colorSize]; |
|
|
|
|
for(int i = 0; i < colorSize; i++) { |
|
|
|
|
colors[i] = condition.getColorIndex(i); |
|
|
|
|
} |
|
|
|
|
colorAcc.populateBean(colors); |
|
|
|
|
if (colorList.size() > 0) { |
|
|
|
|
colorAcc.populateBean(colorList.toArray(new Color[colorList.size()])); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public AttrFillStyle updateBean() { |
|
|
|
|
AttrFillStyle condition = new AttrFillStyle(); |
|
|
|
|
condition.clearColors(); |
|
|
|
|
public ChartColorMatching updateBean() { |
|
|
|
|
chartColorMatching = chartColorMatching == null ? new ChartColorMatching() : chartColorMatching; |
|
|
|
|
|
|
|
|
|
List<Color> colorList = new ArrayList<Color>(); |
|
|
|
|
|
|
|
|
|
if(gradientButton.isSelected()) { |
|
|
|
|
condition.setColorStyle(ChartConstants.COLOR_GRADIENT); |
|
|
|
|
chartColorMatching.setGradient(true); |
|
|
|
|
|
|
|
|
|
Color start = colorGradient.getSelectColorPointBtnP1().getColorInner(); |
|
|
|
|
Color end = colorGradient.getSelectColorPointBtnP2().getColorInner(); |
|
|
|
|
condition.addFillColor(start); |
|
|
|
|
condition.addFillColor(end); |
|
|
|
|
colorList.add(start); |
|
|
|
|
colorList.add(end); |
|
|
|
|
} else { |
|
|
|
|
condition.setColorStyle(ChartConstants.COLOR_ACC); |
|
|
|
|
chartColorMatching.setGradient(false); |
|
|
|
|
|
|
|
|
|
Color[] colors = colorAcc.updateBean(); |
|
|
|
|
for(int i = 0, length = colors.length; i < length; i++) { |
|
|
|
|
condition.addFillColor(colors[i]); |
|
|
|
|
} |
|
|
|
|
colorList = Arrays.asList(colors); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return condition; |
|
|
|
|
chartColorMatching.setColorList(colorList); |
|
|
|
|
|
|
|
|
|
return chartColorMatching; |
|
|
|
|
} |
|
|
|
|
} |