package com.fr.plugin.heatpointmapbox.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.ispinner.UISpinner; 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.json.JSONObject; import com.fr.plugin.heatpointmapbox.vo.CustomJsonObject; import com.fr.plugin.heatpointmapbox.vo.PointMapStyleJson; 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 xx */ public class HeatPointMapPointStyleCreator extends AbstractVanChartScrollPane { private UITextArea condition; private UITextField legendName; private UISpinner pointSize; private ImageChooserPane pointPane; @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.legendName.setText(chartConf.getString("legendName")); this.pointSize.setValue(chartConf.getDouble("pointSize")); this.condition.setText(chartConf.getString("condition")); ImageEntity imgEnt = new ImageEntity(); imgEnt.setImagestr(chartConf.getString("pointimg")); imgEnt.setImagetype(chartConf.getString("pointimgtype")); imgEnt.setWidth(chartConf.getInt("pointimgw")); imgEnt.setHeight(chartConf.getInt("pointimgh")); this.pointPane.populateBean(imgEnt); } } @Override public CustomJsonObject updateBean() { JSONObject chartConf = JSONObject.create(); chartConf.put("legendName", this.legendName.getText()); chartConf.put("pointSize", this.pointSize.getValue()); chartConf.put("condition", this.condition.getText()); ImageEntity imgEnt = this.pointPane.updateBean(); if (null != imgEnt) { chartConf.put("pointimg", imgEnt.getImagestr()); chartConf.put("pointimgtype", imgEnt.getImagetype()); chartConf.put("pointimgw", imgEnt.getWidth()); chartConf.put("pointimgh", imgEnt.getHeight()); } PointMapStyleJson json = new PointMapStyleJson(); chartConf.put("title", json.getTilte()); json.put(chartConf); return json; } @Override protected String title4PopupWindow() { return Toolkit.i18nText("Plugin-HeatPointMap-Cond-pointMapTitle"); } protected class ContentPane extends JPanel { public ContentPane() { initComponents(); } private void initComponents() { this.setLayout(new BorderLayout()); JPanel condPane = createConditionPane(); JPanel stylePane = createStylePane(); 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[]{stylePane} }; JPanel panel = TableLayoutHelper.createTableLayoutPane(acomponents, rowSize, columnSize); this.add(panel, BorderLayout.CENTER); this.setVisible(true); } } private JPanel createStylePane() { this.legendName = new UITextField(); this.pointSize = new UISpinner(0, 1000, 1, 32); this.pointPane = new ImageChooserPane(); Component[][] components = new Component[][]{ {null, null}, //new Component[]{new UILabel(Toolkit.i18nText("Plugin-HeatPointMap-Cond-legendName")), this.legendName}, new Component[]{new UILabel(Toolkit.i18nText("Plugin-HeatPointMap-Cond-pointSize")), this.pointSize} }; double p = TableLayout.PREFERRED; double[] columnSize = {TableLayout.PREFERRED, TableLayout.FILL}; double[] rowSize = {p, p, p}; JPanel sizePane = TableLayout4VanChartHelper.createGapTableLayoutPane(components, rowSize, columnSize); Component[][] comp1 = new Component[][]{ new Component[]{sizePane}, new Component[]{pointPane} }; JPanel panel = TableLayout4VanChartHelper.createGapTableLayoutPane(comp1, new double[]{p, p, p}, new double[]{TableLayout.FILL}); return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-HeatPointMap-Cond-PointMapStyleExpand"), panel); } private JPanel createConditionPane() { condition = new UITextArea(3, 6); final UITextField typevalue = new UITextField(); final UIComboBox typecond = new UIComboBox(new String[]{"=="}); UILabel type = new UILabel(Toolkit.i18nText("Plugin-HeatPointMap-Cond-typeNameLabel")); UIButton addType = new UIButton(Toolkit.i18nText("Plugin-HeatPointMap-Cond-addButton")); final UITextField datavalue = new UITextField(); final UIComboBox datacond = new UIComboBox(new String[]{"=="}); UILabel data = new UILabel(Toolkit.i18nText("Plugin-HeatPointMap-Cond-dataTypeLabel")); UIButton addData = new UIButton(Toolkit.i18nText("Plugin-HeatPointMap-Cond-addButton")); final UITextField value = new UITextField(); final UIComboBox cond = new UIComboBox(new String[]{"==", ">", "<"}); UILabel name = new UILabel(Toolkit.i18nText("Plugin-HeatPointMap-Cond-valueNameLabel")); UIButton add = new UIButton(Toolkit.i18nText("Plugin-HeatPointMap-Cond-addButton")); UIButton clear = new UIButton(Toolkit.i18nText("Plugin-HeatPointMap-Cond-clearButton")); double p = TableLayout.PREFERRED; double f = TableLayout.FILL; Component[][] components = new Component[][]{ new Component[]{type, typecond, typevalue, addType, null}, new Component[]{data, datacond, datavalue, addData, null}, new Component[]{name, cond, value, add, clear} }; JPanel condPane = TableLayout4VanChartHelper.createGapTableLayoutPane(components, new double[]{p, p, p, 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); } }); addData.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String srcStr = condition.getText(); if (null != srcStr && !"".equals(srcStr)) { srcStr += " && "; } String condstr = "'{数据类型}' " + datacond.getSelectedItem() + " '" + datavalue.getText() + "'"; condition.setText(srcStr + condstr); } }); addType.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String srcStr = condition.getText(); if (null != srcStr && !"".equals(srcStr)) { srcStr += " && "; } String condstr = "'{数据分类}' " + typecond.getSelectedItem() + " '" + typevalue.getText() + "'"; condition.setText(srcStr + condstr); } }); clear.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { condition.setText(""); } }); return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-HeatPointMap-Cond-condTaskStyleTitle"), sumPane); } }