package com.fr.plugin.pielinecomb.ui; import com.fr.chart.chartattr.Plot; import com.fr.design.beans.BasicBeanPane; import com.fr.design.gui.controlpane.NameObjectCreator; import com.fr.design.gui.controlpane.NameableCreator; import com.fr.design.gui.imenutable.UIMenuNameableCreator; import com.fr.design.i18n.Toolkit; import com.fr.general.NameObject; import com.fr.json.JSONArray; import com.fr.json.JSONObject; import com.fr.log.FineLoggerFactory; import com.fr.plugin.pielinecomb.PieLineCombChart; import com.fr.plugin.pielinecomb.vo.BgGridXJson; import com.fr.plugin.pielinecomb.vo.CustomJsonObject; import com.fr.stable.ListMap; import com.fr.stable.Nameable; import com.fr.van.chart.designer.component.VanChartUIListControlPane; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.HashMap; /** * @author duan.jingliang */ public class BgGridCondListPane extends VanChartUIListControlPane { private PieLineCombChart chart; private HashMap paneMap; private HashMap jsonMap; public BgGridCondListPane() { paneMap = new HashMap(6); paneMap.put(CustomJsonObject.BG_GRID_X, BgGridCondCreator.class); jsonMap = new HashMap(6); jsonMap.put(CustomJsonObject.BG_GRID_X, BgGridXJson.class); } @Override protected void update(Plot plot) { } public void populateStyle(PieLineCombChart chart) { this.chart = chart; JSONObject styleCond = chart.getStyleCond(); if (null != styleCond && null != styleCond.get("grid")) { JSONArray chartConf = styleCond.getJSONArray("grid"); ArrayList noList = new ArrayList(); for (int i = 0; null != chartConf && i < chartConf.size(); i++) { JSONObject line = chartConf.getJSONObject(i); if (null != line) { try { CustomJsonObject json = (CustomJsonObject)this.getJsonByTitle(line.getString("title")).newInstance(); json.put(line); UIMenuNameableCreator var11 = new UIMenuNameableCreator(line.getString("titleName"), json, this.getEditPaneByTitle(line.getString("title"))); noList.add(new NameObject(var11.getName(), var11.getObj())); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } } this.populate((Nameable[])noList.toArray(new NameObject[noList.size()])); this.doLayout(); } } public void updateStyle(PieLineCombChart chart) { Nameable[] nameables = this.update(); JSONArray objConf = JSONArray.create(); for (int i = 0; i < nameables.length; i++) { CustomJsonObject noObj = (CustomJsonObject)((NameObject)nameables[i]).getObject(); if (null == noObj) { noObj = new CustomJsonObject(); noObj.put(JSONObject.create()); } if (null == noObj.get()) { noObj.put(JSONObject.create()); } noObj.get().put("titleName", ((NameObject)nameables[i]).getName()); objConf.add(noObj.get()); } if (null == chart.getStyleCond()) { chart.setStyleCond(JSONObject.create()); } chart.getStyleCond().put("grid", objConf); } @Override public NameableCreator[] createNameableCreators() { ListMap creatorMap = new ListMap(); NameableCreator grid = new NameObjectCreator(Toolkit.i18nText("Plugin-Pielinecomb-bgGridX"), BgGridXJson.class, BgGridCondCreator.class); creatorMap.put(grid.menuName(), grid); return (NameableCreator[])creatorMap.values().toArray(new NameableCreator[creatorMap.size()]); } @Override protected String title4PopupWindow() { return Toolkit.i18nText("Plugin-Pielinecomb-Cond-AddCondtion"); } @Override protected String getAddItemText() { return Toolkit.i18nText("Plugin-Pielinecomb-Cond-CustomGrid"); } @Override public BasicBeanPane createPaneByCreators(NameableCreator nameableCreator) { Constructor var2 = null; try { var2 = nameableCreator.getUpdatePane().getConstructor(); return (BasicBeanPane)var2.newInstance(); } catch (InstantiationException var4) { FineLoggerFactory.getLogger().error(var4.getMessage(), var4); } catch (IllegalAccessException var5) { FineLoggerFactory.getLogger().error(var5.getMessage(), var5); } catch (NoSuchMethodException var6) { return super.createPaneByCreators(nameableCreator); } catch (InvocationTargetException var7) { FineLoggerFactory.getLogger().error(var7.getMessage(), var7); } return null; } private Class getEditPaneByTitle(String title) { return (Class)paneMap.get(title); } private Class getJsonByTitle(String title) { return (Class)jsonMap.get(title); } }