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.
 
 

149 lines
5.1 KiB

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<? extends BasicBeanPane> getEditPaneByTitle(String title) {
return (Class)paneMap.get(title);
}
private Class getJsonByTitle(String title) {
return (Class)jsonMap.get(title);
}
}