package com.fr.plugin.pielinecomb.ui; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextarea.UITextArea; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.style.color.ColorSelectBox; import com.fr.json.JSONObject; import com.fr.plugin.pielinecomb.vo.CustomJsonObject; import com.fr.plugin.pielinecomb.vo.ItemColorJson; import com.fr.plugin.pielinecomb.vo.ItemLabelJson; import com.fr.plugin.pielinecomb.vo.ItemTipsJson; import com.fr.van.chart.designer.AbstractVanChartScrollPane; import com.fr.van.chart.designer.TableLayout4VanChartHelper; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** * @author duan.jingliang */ public class PieLineCombLabelCondCreator extends AbstractVanChartScrollPane { private UITextArea condition; private ColorSelectBox bgcolor; @Override protected JPanel createContentPane() { return new ContentPane(); } @Override public void populateBean(CustomJsonObject json) { JSONObject chartConf = null; if (null != json) { chartConf = json.get(); } if (null != chartConf) { this.bgcolor.setSelectObject(MapUtil.toColor(chartConf.getString("bgcolor", "#ffffff"))); this.condition.setText(chartConf.getString("condition")); } } @Override public CustomJsonObject updateBean() { JSONObject chartConf = JSONObject.create(); chartConf.put("bgcolor", MapUtil.toHex(this.bgcolor.getSelectObject())); chartConf.put("condition", this.condition.getText()); CustomJsonObject json = new CustomJsonObject(); json.put(chartConf); return json; } @Override protected String title4PopupWindow() { return Toolkit.i18nText("Plugin-BmwGantt-Cond-condTaskBgTitle"); } protected class ContentPane extends JPanel { public ContentPane() { initComponents(); } private void initComponents() { this.setLayout(new BorderLayout()); JPanel condPane = createConditionPane(); JPanel linePane = createLinePane(); double p = TableLayout.PREFERRED; double f = TableLayout.FILL; double[] columnSize = {f}; double[] rowSize = {p, p, p}; Component[][] acomponents = new Component[][]{ new Component[]{condPane}, new Component[]{linePane} }; JPanel panel = TableLayoutHelper.createTableLayoutPane(acomponents, rowSize, columnSize); this.add(panel, BorderLayout.CENTER); this.setVisible(true); } } private JPanel createLinePane() { this.bgcolor = new ColorSelectBox(100); Component[][] components = new Component[][]{ {null, null}, new Component[]{new UILabel(Toolkit.i18nText("Plugin-BmwGantt-Cond-bgcolor")), this.bgcolor} }; double p = TableLayout.PREFERRED; double[] columnSize = {TableLayout.PREFERRED, TableLayout.FILL}; double[] rowSize = {p, p, p}; JPanel panel = TableLayout4VanChartHelper.createGapTableLayoutPane(components, rowSize, columnSize); return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-BmwGantt-Cond-BgStyleExpand"), panel); } private JPanel createConditionPane() { condition = new UITextArea(3, 6); final UITextField value = new UITextField(); final UIComboBox cond = new UIComboBox(new String[]{"==", "!="}); UILabel name = new UILabel(Toolkit.i18nText("Plugin-BmwGantt-Cond-groupNameLabel")); UIButton add = new UIButton(Toolkit.i18nText("Plugin-BmwGantt-Cond-addButton")); UIButton clear = new UIButton(Toolkit.i18nText("Plugin-BmwGantt-Cond-clearButton")); double p = TableLayout.PREFERRED; double f = TableLayout.FILL; Component[][] components = new Component[][]{ new Component[]{name, cond, value, add, clear} }; JPanel condPane = TableLayout4VanChartHelper.createGapTableLayoutPane(components, new double[]{p, p}, new double[]{p, p, f, p, p}); Component[][] comp1 = new Component[][]{ new Component[]{condition} }; JPanel areaPane = TableLayout4VanChartHelper.createGapTableLayoutPane(comp1, new double[]{p}, new double[]{f}); Component[][] comp = new Component[][]{ new Component[]{condPane}, new Component[]{areaPane} }; JPanel sumPane = TableLayout4VanChartHelper.createGapTableLayoutPane(comp, new double[]{p, p}, new double[]{f}); condition.setEnabled(false); add.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String srcStr = condition.getText(); if (null != srcStr && !"".equals(srcStr)) { srcStr += " && "; } String condstr = "'{分组名}' " + cond.getSelectedItem() + " '" + value.getText() + "'"; condition.setText(srcStr + condstr); } }); clear.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { condition.setText(""); } }); return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-BmwGantt-Cond-condTaskBgTitle"), sumPane); } public static class PieLineCombStyleColorCondCreator extends PieLineCombLabelCondCreator { @Override public CustomJsonObject updateBean() { ItemColorJson json = new ItemColorJson(); CustomJsonObject srcObj = super.updateBean(); srcObj.get().put("title", json.getTilte()); json.put(srcObj.get()); return json; } } public static class PieLineCombStyleLabelCondCreator extends PieLineCombLabelCondCreator { @Override public CustomJsonObject updateBean() { ItemLabelJson json = new ItemLabelJson(); CustomJsonObject srcObj = super.updateBean(); srcObj.get().put("title", json.getTilte()); json.put(srcObj.get()); return json; } } public static class PieLineCombStyleTipsCondCreator extends PieLineCombLabelCondCreator { @Override public CustomJsonObject updateBean() { ItemTipsJson json = new ItemTipsJson(); CustomJsonObject srcObj = super.updateBean(); srcObj.get().put("title", json.getTilte()); json.put(srcObj.get()); return json; } } }