Browse Source

open

master
pioneer 2 years ago
commit
22cb435960
  1. 7
      README.md
  2. 28
      plugin.xml
  3. 614
      src/com/fr/plugin/lzljgdmap/LzljMapChart.java
  4. 10
      src/com/fr/plugin/lzljgdmap/LzljMapChartLocaleFinder.java
  5. 11
      src/com/fr/plugin/lzljgdmap/LzljMapChartProvider.java
  6. 44
      src/com/fr/plugin/lzljgdmap/LzljMapChartUI.java
  7. 187
      src/com/fr/plugin/lzljgdmap/data/LzljMapDataConfig.java
  8. 89
      src/com/fr/plugin/lzljgdmap/data/LzljMapDataPane.java
  9. 89
      src/com/fr/plugin/lzljgdmap/data/LzljMapReportDataPane.java
  10. BIN
      src/com/fr/plugin/lzljgdmap/images/demo.png
  11. BIN
      src/com/fr/plugin/lzljgdmap/images/icon.png
  12. 106
      src/com/fr/plugin/lzljgdmap/locale/lzljgdmap.properties
  13. 106
      src/com/fr/plugin/lzljgdmap/locale/lzljgdmap_zh_CN.properties
  14. 136
      src/com/fr/plugin/lzljgdmap/ui/ImageChooserPane.java
  15. 42
      src/com/fr/plugin/lzljgdmap/ui/ImageEntity.java
  16. 188
      src/com/fr/plugin/lzljgdmap/ui/LzljMapClusterPointStyleCreator.java
  17. 55
      src/com/fr/plugin/lzljgdmap/ui/LzljMapHyperLink.java
  18. 146
      src/com/fr/plugin/lzljgdmap/ui/LzljMapPointCondListPane.java
  19. 223
      src/com/fr/plugin/lzljgdmap/ui/LzljMapPointStyleCreator.java
  20. 192
      src/com/fr/plugin/lzljgdmap/ui/LzljMapStyleBaseMapPane.java
  21. 159
      src/com/fr/plugin/lzljgdmap/ui/LzljMapStyleHeatMapPane.java
  22. 198
      src/com/fr/plugin/lzljgdmap/ui/LzljMapStyleLabelsPane.java
  23. 84
      src/com/fr/plugin/lzljgdmap/ui/LzljMapStyleOtherPane.java
  24. 39
      src/com/fr/plugin/lzljgdmap/ui/LzljMapStylePane.java
  25. 167
      src/com/fr/plugin/lzljgdmap/ui/LzljMapStylePointMapPane.java
  26. 163
      src/com/fr/plugin/lzljgdmap/ui/LzljMapStyleTipsPane.java
  27. 142
      src/com/fr/plugin/lzljgdmap/ui/LzljMapStyleTitlePane.java
  28. 239
      src/com/fr/plugin/lzljgdmap/ui/LzljMapStyleToolsPane.java
  29. 94
      src/com/fr/plugin/lzljgdmap/ui/MapUtil.java
  30. 14
      src/com/fr/plugin/lzljgdmap/vo/ClusterPointMapStyleJson.java
  31. 23
      src/com/fr/plugin/lzljgdmap/vo/CustomJsonObject.java
  32. 14
      src/com/fr/plugin/lzljgdmap/vo/PointMapStyleJson.java
  33. 307
      src/com/fr/plugin/lzljgdmap/web/LzljMapChart.css
  34. 1754
      src/com/fr/plugin/lzljgdmap/web/LzljMapChartWrapper.js
  35. 3689
      src/com/fr/plugin/lzljgdmap/web/jstree.js

7
README.md

@ -0,0 +1,7 @@
# open-JSD-8935
JSD-8935 新增一种图表,支持在点地图上面显示热力块\
免责说明:该源码为第三方爱好者提供,不保证源码和方案的可靠性,也不提供任何形式的源码教学指导和协助!\
仅作为开发者学习参考使用!禁止用于任何商业用途!\
为保护开发者隐私,开发者信息已隐去!若原开发者希望公开自己的信息,可联系【pioneer】处理。

28
plugin.xml

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<plugin>
<main-package>com.fr.plugin.lzljgdmap</main-package>
<id>com.fr.plugin.lzljgdmap.v10</id>
<name><![CDATA[热力点组合图_EK]]></name>
<active>yes</active>
<version>1.0.2</version>
<env-version>10.0~11.0</env-version>
<jartime>2021-04-24</jartime>
<vendor >fr.open</vendor>
<description><![CDATA[<p>热力点组合图_</p>]]></description>
<change-notes><![CDATA[<p>[2022-08-25]开发1.0版本</p>]]></change-notes>
<extra-report/>
<extra-designer/>
<extra-platform/>
<extra-core>
<LocaleFinder class="com.fr.plugin.lzljgdmap.LzljMapChartLocaleFinder"/>
</extra-core>
<extra-chart>
<IndependentChartProvider class="com.fr.plugin.lzljgdmap.LzljMapChartProvider"
plotID="LzljMapChart"/>
</extra-chart>
<extra-chart-designer>
<IndependentChartUIProvider class="com.fr.plugin.lzljgdmap.LzljMapChartUI"
plotID="LzljMapChart"/>
</extra-chart-designer>
<function-recorder class="com.fr.plugin.lzljgdmap.LzljMapChart"/>
</plugin>

614
src/com/fr/plugin/lzljgdmap/LzljMapChart.java

@ -0,0 +1,614 @@
package com.fr.plugin.lzljgdmap;
import com.fr.base.Base64;
import com.fr.extended.chart.AbstractChart;
import com.fr.extended.chart.HyperLinkPara;
import com.fr.extended.chart.StringFormula;
import com.fr.extended.chart.ToHyperlinkJSONHelper;
import com.fr.general.ComparatorUtils;
import com.fr.js.NameJavaScript;
import com.fr.js.NameJavaScriptGroup;
import com.fr.json.*;
import com.fr.log.FineLoggerFactory;
import com.fr.plugin.lzljgdmap.data.LzljMapDataConfig;
import com.fr.plugin.transform.ExecuteFunctionRecord;
import com.fr.plugin.transform.FunctionRecorder;
import com.fr.stable.AssistUtils;
import com.fr.stable.StringUtils;
import com.fr.stable.web.Repository;
import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLableReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @author fr.open
* @date 2022/8/19
*/
@FunctionRecorder
public class LzljMapChart extends AbstractChart<LzljMapDataConfig> {
private static final String ID = "LzljMapChart";
private static final String NAME = "热力点组合图__EK";
private JSONObject titleConf;
private JSONObject mapConf;
private JSONObject pointConf;
private JSONObject heatConf;
private JSONObject toolConf;
private JSONObject labelConf;
private JSONObject tipsConf;
private JSONArray pointStyleCond;
private NameJavaScriptGroup linkNameGroup;
@Override
protected String getChartID() {
return ID;
}
@Override
public String getChartName() {
return NAME;
}
@ExecuteFunctionRecord
@Override
protected void addJSON(LzljMapDataConfig dataConfig, JSONObject jsonObject, Repository repository, JSONPara jsonPara) throws JSONException {
jsonObject.put("titleConf", getTitleConf());
jsonObject.put("mapConf", getMapConf());
jsonObject.put("pointConf", getPointConf());
jsonObject.put("heatConf", getHeatConf());
jsonObject.put("toolConf", getToolConf());
jsonObject.put("labelConf", getLabelConf());
jsonObject.put("tipsConf", getTipsConf());
jsonObject.put("pointStyleCond", getPointStyleCond());
addAutoLinkJSON(jsonObject, jsonPara);
jsonObject.put("data", makeChartData(dataConfig, repository));
}
private JSONArray makeChartData(LzljMapDataConfig dataConfig, Repository repository) {
JSONArray dataArr = JSONFactory.createJSON(JSON.ARRAY);
if (null == dataConfig || null == dataConfig.getDatatype()) {
return dataArr;
}
List<Object> region = dataConfig.getRegion().getValues();
List<Object> area = dataConfig.getArea().getValues();
List<Object> county = dataConfig.getCounty().getValues();
List<Object> layertype = dataConfig.getLayertype().getValues();
List<Object> datatype = dataConfig.getDatatype().getValues();
List<Object> lng = dataConfig.getLng().getValues();
List<Object> lat = dataConfig.getLat().getValues();
List<Object> name = dataConfig.getName().getValues();
List<Object> val = dataConfig.getVal().getValues();
List<Object> desc = dataConfig.getDesc().getValues();
for (int i = 0; i < datatype.size(); i++) {
try {
JSONObject dataObj = JSONFactory.createJSON(JSON.OBJECT);
if(null == layertype || layertype.isEmpty()) {
continue;
}
if(null == datatype || datatype.isEmpty()) {
continue;
}
if(null == lng || lng.isEmpty() || null == lat || lat.isEmpty()) {
continue;
}
if(null != region && !region.isEmpty()) {
dataObj.put("region", region.get(i));
} else {
dataObj.put("region", "");
}
if(null != area && !area.isEmpty()) {
dataObj.put("area", area.get(i));
} else {
dataObj.put("area", "");
}
if(null != county && !county.isEmpty()) {
dataObj.put("county", county.get(i));
} else {
dataObj.put("county", "");
}
if(null != layertype && !layertype.isEmpty()) {
dataObj.put("layertype", layertype.get(i));
} else {
dataObj.put("layertype", "");
}
if(null != datatype && !datatype.isEmpty()) {
dataObj.put("datatype", datatype.get(i));
} else {
dataObj.put("datatype", "");
}
if(null != lng && !lng.isEmpty()) {
dataObj.put("lng", lng.get(i));
} else {
dataObj.put("lng", "");
}
if(null != lat && !lat.isEmpty()) {
dataObj.put("lat", lat.get(i));
} else {
dataObj.put("lat", "");
}
if(null != name && !name.isEmpty()) {
dataObj.put("name", name.get(i));
} else {
dataObj.put("name", "");
}
if(null != val && !val.isEmpty()) {
dataObj.put("val", val.get(i));
} else {
dataObj.put("val", "");
}
if(null != desc && !desc.isEmpty()) {
dataObj.put("desc", desc.get(i));
} else {
dataObj.put("desc", "");
}
dataArr.put(dataObj);
} catch (Exception e) {
FineLoggerFactory.getLogger().error("热力点组合图__EK,数据处理有错误," + e.getMessage(), e);
}
}
return dataArr;
}
@Override
protected String[] requiredJS() {
return new String[]{
"com/fr/plugin/lzljgdmap/web/jstree.js",
"com/fr/plugin/lzljgdmap/web/LzljMapChartWrapper.js"
};
}
@Override
protected String[] requiredCSS() {
return new String[]{
"com/fr/plugin/lzljgdmap/web/LzljMapChart.css"
};
}
@Override
protected String wrapperName() {
return "LzljMapChartWrapper";
}
private void addAutoLinkJSON(JSONObject paramJSONObject, JSONPara paramAbstractChart)
throws JSONException {
ToHyperlinkJSONHelper.addECNameToLinkGroup(paramAbstractChart.ecName, paramAbstractChart.sheetIndex, this.getLinkNameGroup());
paramJSONObject.put("pointLink", ToHyperlinkJSONHelper.addAutoLinkJSON(this.getLinkNameGroup(), hyperLinkParas()));
}
@Override
public NameJavaScriptGroup getHotHyperlink(String s) {
NameJavaScriptGroup retLinkGroup = new NameJavaScriptGroup();
for (int i = 0; i < linkNameGroup.size(); i++) {
NameJavaScript hyperlink = linkNameGroup.getNameHyperlink(i);
if ("pointLink".equals(s)) {
try {
retLinkGroup.addNameHyperlink((NameJavaScript)hyperlink.clone());
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
}
}
return retLinkGroup;
}
@Override
protected HyperLinkPara[] hyperLinkParas() {
return new HyperLinkPara[]{
new HyperLinkPara() {
@Override
public String getName() {
return "分类";
}
@Override
public String getFormulaContent() {
return "LAYERTYPE";
}
@Override
public String[] getProps() {
return new String[]{"layertype"};
}
},
new HyperLinkPara() {
@Override
public String getName() {
return "类型";
}
@Override
public String getFormulaContent() {
return "DATATYPE";
}
@Override
public String[] getProps() {
return new String[]{"datatype"};
}
},
new HyperLinkPara() {
@Override
public String getName() {
return "名称";
}
@Override
public String getFormulaContent() {
return "POINTNAME";
}
@Override
public String[] getProps() {
return new String[]{"name"};
}
},
new HyperLinkPara() {
@Override
public String getName() {
return "经度";
}
@Override
public String getFormulaContent() {
return "POINTLNG";
}
@Override
public String[] getProps() {
return new String[]{"lng"};
}
},
new HyperLinkPara() {
@Override
public String getName() {
return "纬度";
}
@Override
public String getFormulaContent() {
return "POINTLAT";
}
@Override
public String[] getProps() {
return new String[]{"lat"};
}
},
new HyperLinkPara() {
@Override
public String getName() {
return "描述";
}
@Override
public String getFormulaContent() {
return "POINTDESC";
}
@Override
public String[] getProps() {
return new String[]{"desc"};
}
}
};
}
@Override
protected void readAttr(XMLableReader xmLableReader) {
super.readAttr(xmLableReader);
String jsonStr = xmLableReader.getAttrAsString("titleConf", "");
if (StringUtils.isNotEmpty(jsonStr)) {
this.setTitleConf(new JSONObject(jsonStr));
}
jsonStr = xmLableReader.getAttrAsString("mapConf", "");
if (StringUtils.isNotEmpty(jsonStr)) {
this.setMapConf(new JSONObject(jsonStr));
}
jsonStr = xmLableReader.getAttrAsString("pointConf", "");
if (StringUtils.isNotEmpty(jsonStr)) {
this.setPointConf(new JSONObject(jsonStr));
}
jsonStr = xmLableReader.getAttrAsString("heatConf", "");
if (StringUtils.isNotEmpty(jsonStr)) {
this.setHeatConf(new JSONObject(jsonStr));
}
jsonStr = xmLableReader.getAttrAsString("toolConf", "");
if (StringUtils.isNotEmpty(jsonStr)) {
this.setToolConf(new JSONObject(jsonStr));
}
jsonStr = xmLableReader.getAttrAsString("labelConf", "");
if (StringUtils.isNotEmpty(jsonStr)) {
this.setLabelConf(new JSONObject(jsonStr));
}
jsonStr = xmLableReader.getAttrAsString("tipsConf", "");
if (StringUtils.isNotEmpty(jsonStr)) {
this.setTipsConf(new JSONObject(jsonStr));
}
jsonStr = xmLableReader.getAttrAsString("pointStyleCond", "");
if (StringUtils.isNotEmpty(jsonStr)) {
this.setPointStyleCond(new JSONArray(new String(Base64.decode(jsonStr))));
}
if (null == linkNameGroup) {
linkNameGroup = (NameJavaScriptGroup)xmLableReader.readXMLObject(new NameJavaScriptGroup());
}
}
@Override
protected void writeAttr(XMLPrintWriter xmlPrintWriter) {
super.writeAttr(xmlPrintWriter);
if (null != titleConf) {
xmlPrintWriter.attr("titleConf", titleConf.toString());
}
if (null != mapConf) {
xmlPrintWriter.attr("mapConf", mapConf.toString());
}
if (null != pointConf) {
xmlPrintWriter.attr("pointConf", pointConf.toString());
}
if (null != heatConf) {
xmlPrintWriter.attr("heatConf", heatConf.toString());
}
if (null != toolConf) {
xmlPrintWriter.attr("toolConf", toolConf.toString());
}
if (null != labelConf) {
xmlPrintWriter.attr("labelConf", labelConf.toString());
}
if (null != tipsConf) {
xmlPrintWriter.attr("tipsConf", tipsConf.toString());
}
if (null != pointStyleCond) {
xmlPrintWriter.attr("pointStyleCond", Base64.encode(pointStyleCond.toString().getBytes()));
}
if (null != linkNameGroup) {
linkNameGroup.writeXML(xmlPrintWriter);
}
}
@Override
public boolean equals(Object o) {
boolean isEq = super.equals(o)
&& o instanceof LzljMapChart
&& ComparatorUtils.equals(((LzljMapChart) o).getTitleConf(), this.titleConf)
&& ComparatorUtils.equals(((LzljMapChart) o).getMapConf(), this.mapConf)
&& ComparatorUtils.equals(((LzljMapChart) o).getPointConf(), this.pointConf)
&& ComparatorUtils.equals(((LzljMapChart) o).getHeatConf(), this.heatConf)
&& ComparatorUtils.equals(((LzljMapChart) o).getToolConf(), this.toolConf)
&& ComparatorUtils.equals(((LzljMapChart) o).getLabelConf(), this.labelConf)
&& ComparatorUtils.equals(((LzljMapChart) o).getTipsConf(), this.tipsConf)
&& ComparatorUtils.equals(((LzljMapChart) o).getPointStyleCond(), this.pointStyleCond)
&& ComparatorUtils.equals(((LzljMapChart) o).getLinkNameGroup(), this.linkNameGroup)
;
return isEq;
}
@Override
public int hashCode() {
return super.hashCode() + AssistUtils.hashCode(new Object[]{this.titleConf, this.mapConf,this.pointConf,this.heatConf,this.toolConf,this.labelConf, this.tipsConf, this.pointStyleCond});
}
@Override
public LzljMapChart clone() throws CloneNotSupportedException {
LzljMapChart chart = (LzljMapChart)super.clone();
if (this.linkNameGroup != null) {
chart.setLinkNameGroup((NameJavaScriptGroup) this.getLinkNameGroup().clone());
}
return chart;
}
@Override
protected List<StringFormula> formulas() {
List<StringFormula> formulaList = new ArrayList<StringFormula>();
return formulaList;
}
@Override
protected String demoImagePath() {
return "com/fr/plugin/lzljgdmap/images/demo.png";
}
public JSONObject getTitleConf() {
if (null == titleConf) {
titleConf = new JSONObject();
titleConf.put("titlevisiable", false);
titleConf.put("titlename", "热力点组合图");
titleConf.put("titleposition", 0);
titleConf.put("titlesize", 13);
titleConf.put("titlestyle", 1);
titleConf.put("titlefamily", "微软雅黑");
titleConf.put("titlecolor", "#ffffff");
titleConf.put("titlebgcolor", "#000000");
titleConf.put("titleBgOpacity", 55);
}
return titleConf;
}
public void setTitleConf(JSONObject titleConf) {
this.titleConf = titleConf;
}
public JSONObject getTipsConf() {
if (null == tipsConf) {
tipsConf = new JSONObject();
tipsConf.put("showPointTips", true);
tipsConf.put("tipBgColor", "#c0c0c0");
tipsConf.put("tipBgOpacity", 70.0);
tipsConf.put("showLayerType", true);
tipsConf.put("showDataType", true);
tipsConf.put("showDesc", true);
tipsConf.put("showLat", true);
tipsConf.put("showLng", true);
tipsConf.put("showName", true);
tipsConf.put("tipfamily", "微软雅黑");
tipsConf.put("tipstyle", 0);
tipsConf.put("tipsize", 12);
tipsConf.put("tipcolor", "#ffcc00");
}
return tipsConf;
}
public void setTipsConf(JSONObject tipsConf) {
this.tipsConf = tipsConf;
}
public JSONArray getPointStyleCond() {
if (null == pointStyleCond || pointStyleCond.size() == 0) {
pointStyleCond = JSONArray.create();
}
return pointStyleCond;
}
public void setPointStyleCond(JSONArray pointStyleCond) {
this.pointStyleCond = pointStyleCond;
}
public JSONObject getMapConf() {
if (null == mapConf) {
mapConf = new JSONObject();
mapConf.put("areaBorderColor", "#808080");
mapConf.put("centerx", "118.796452");
mapConf.put("centery", "32.058908");
mapConf.put("circleBorderColor", "#ff0000");
mapConf.put("circleBorderWidth", 2);
mapConf.put("circleFillColor", "#ff0000");
mapConf.put("circleOpacity", "#575656");
mapConf.put("countryBorderColor", 64);
mapConf.put("mapKey", "grey");
mapConf.put("mapzoom", 10);
mapConf.put("regionBorderColor", "#c0c0c0");
mapConf.put("regionBorderWidth", 3);
mapConf.put("showCircleDetail", true);
}
return mapConf;
}
public void setMapConf(JSONObject mapConf) {
this.mapConf = mapConf;
}
public JSONObject getPointConf() {
if (null == pointConf) {
pointConf = new JSONObject();
pointConf.put("clusterBgOpacity", 100);
pointConf.put("clusterBorderColor", "#3366ff");
pointConf.put("clusterFillColor", "#1fade5");
pointConf.put("clusterMaxZoom", 12);
pointConf.put("clusterPointSize", 32);
pointConf.put("clusterTextColor", "#ffffff");
pointConf.put("pointSize", 32);
pointConf.put("pointimg", "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAD60lEQVR4nO1YMWgUQRTd4mb2orYiJpnZw84gaGEhImIhCJJC0gixEQVJmiAowcJCECSdSRrRoGIhGAVNYWEhpEiCAdOI3u1tjhAbG1OoIMTu/D+5O3f3Ljszyc3MBefBh2V3/p/3/v75M7ue5+Dg4ODg4GAKqwUvX+G0b5n7/WAjNevHe/jMNj8tiHjuVMTprTL358ucVrPNn8ex6GOb946xHNABELUgFr2lLWAM2zqUEfWQoyGjz3cgPGEYC2Pa1iWFckAvlRn53i7xDcOYENu2vkxEgX+j7cJThnPY1tkSEaMXdYtvJAHmsq03AezYpsQ3ktApu0SJ0SOwba2YTwBdwblt6/e22e3XoYw/wJ7/AG3zmq6rxsG5rYqv7fMKpMn7MMidbHXiw3v4DMeoxLR6TigrHXLIhHxcMqGQhAWdGrfEMs+flSW5cijPVeOjj3QVABcdGjMBE4/JkCux3Om0b8jJNXi2BPYLmtmXkNO3rbY29JVMwpgZ1THUBIjKfjzuA+v1MNx/l+HzEb8Kk/OQcYkELBkVjw1LgtTvz91drO4DJ7jzcO+nyA8rIp4EjIGxRH5GP6WRoFBIQBfjPiDsqUJje5HwhVgin3TlaAX+wBCKYPRxfXxYyBcUxKP9KfZ5tO6PsUQ+yMlkAkbECSDDjQT05s4oJqCKPv8SQIYlEjBiLAFAaEgoIPZGdpqAUKriyJCxBGye2ASEAnq7Pl6mZ2RWAMQSjgdOxhJQ3O/tkxDxKu6D3V0hAd/ivhhL5IOcjCVggxQjs1mEQHAlKYLcl377nN6J+2IsQfnPGhWPKHH/ungZkCtxH7j3UmLpPEn4QAyRD3Ixqx5QLJBjqqWMiLj/cIuxP+DN30uPxxjC8gcuZlQ3k5sRkcMDUNrva7DnIJZ53UqMXvh0wNubHid5eJoxo7YFQuafk1nTpYBcVY2NPlL9Ajjo0CYNIDEt1dygUclsVRtbrKDBxmzahMZswqqHnIC+gaPt3TCgA1FvVw8aXuO9jWcKseJnBauAtfpMKQltMJzTtu4GKgVywnQCcE7buhOA8/ojU+JxLtt6m1D75F01kIBVnMu23pYIGbms/e3DHLZ1ZkLxz49q42s6VHUcNC6Fzi39NHQshY4v/TTauRR2RemngeUq/I6XE1/ZNaWfhtS/PFHpm/zbqwNh4N/ctnjwtc2/LYi4P6Ve+v6Ubd5tw+ZPVH9OPgH+nPGfnLoB3/jHQdiahPg1HGubrxbAd/+geN3TQds8tQJEjmYkYNQ2PyOIOJlsbnpk0jYvo4gYfd0QD9e2+RhH1fNyIaOLaHhtm48VFLvzHM02DwcHBwcHh/8UfwE/2Xk+00CsAAAAAABJRU5ErkJggg==");
pointConf.put("pointimgh", 64);
pointConf.put("pointimgw", 64);
pointConf.put("pointimgtype", "png");
}
return pointConf;
}
public void setPointConf(JSONObject pointConf) {
this.pointConf = pointConf;
}
public JSONObject getHeatConf() {
if (null == heatConf) {
heatConf = new JSONObject();
heatConf.put("bgOpacity", 100);
heatConf.put("interval", 4);
heatConf.put("intervalColors", "#0000ff|#0000ff|#00ff00|#ffea00|#ff0000");
heatConf.put("intervalPos", "0.0|0.1849315|0.47945204|0.760274|1.0");
heatConf.put("maxValue", 1);
heatConf.put("radius", 100);
}
return heatConf;
}
public void setHeatConf(JSONObject heatConf) {
this.heatConf = heatConf;
}
public JSONObject getToolConf() {
if (null == toolConf) {
toolConf = new JSONObject();
toolConf.put("toolBgColor", "#808080");
toolConf.put("toolBgOpacity", 80);
toolConf.put("toolBtnColor", "#fc8d51");
toolConf.put("toolcolor", "#ffffff");
toolConf.put("toolfamily", "微软雅黑");
toolConf.put("toolsize", 13);
toolConf.put("toolstyle", 0);
toolConf.put("detailBgColor", "#ffffff");
toolConf.put("detailTitleBgColor", "#ecb562");
toolConf.put("detailBgOpacity", 100);
toolConf.put("showRegion", true);
toolConf.put("showArea", true);
toolConf.put("showName", true);
toolConf.put("showLayerType", true);
toolConf.put("showDataType", true);
toolConf.put("showLng", true);
toolConf.put("showLat", true);
toolConf.put("showVal", true);
toolConf.put("showDesc", true);
toolConf.put("detailsize", 14);
toolConf.put("detailstyle", 0);
toolConf.put("detailfamily", "微软雅黑");
toolConf.put("detailcolor", "#333333");
}
return toolConf;
}
public void setToolConf(JSONObject toolConf) {
this.toolConf = toolConf;
}
public JSONObject getLabelConf() {
if (null == labelConf) {
labelConf = new JSONObject();
labelConf.put("labelBgColor", "transparent");
labelConf.put("labelJsPane", "");
labelConf.put("labelType", 1);
labelConf.put("labelcolor", "#ff0000");
labelConf.put("labelfamily", "微软雅黑");
labelConf.put("labelsize", 10);
labelConf.put("labelstyle", 0);
labelConf.put("showDataType", true);
labelConf.put("showDesc", true);
labelConf.put("showLat", true);
labelConf.put("showLng", true);
labelConf.put("showLayerType", true);
labelConf.put("showName", true);
labelConf.put("showPointLabel", true);
}
return labelConf;
}
public void setLabelConf(JSONObject labelConf) {
this.labelConf = labelConf;
}
public NameJavaScriptGroup getLinkNameGroup() {
return linkNameGroup;
}
public void setLinkNameGroup(NameJavaScriptGroup linkNameGroup) {
this.linkNameGroup = linkNameGroup;
}
}

10
src/com/fr/plugin/lzljgdmap/LzljMapChartLocaleFinder.java

@ -0,0 +1,10 @@
package com.fr.plugin.lzljgdmap;
import com.fr.stable.fun.impl.AbstractLocaleFinder;
public class LzljMapChartLocaleFinder extends AbstractLocaleFinder {
@Override
public String find() {
return "com/fr/plugin/lzljgdmap/locale/lzljgdmap";
}
}

11
src/com/fr/plugin/lzljgdmap/LzljMapChartProvider.java

@ -0,0 +1,11 @@
package com.fr.plugin.lzljgdmap;
import com.fr.extended.chart.AbstractChart;
import com.fr.extended.chart.AbstractExtentChartProvider;
public class LzljMapChartProvider extends AbstractExtentChartProvider {
@Override
protected AbstractChart createChart() {
return new LzljMapChart();
}
}

44
src/com/fr/plugin/lzljgdmap/LzljMapChartUI.java

@ -0,0 +1,44 @@
package com.fr.plugin.lzljgdmap;
import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.gui.data.report.AbstractReportDataContentPane;
import com.fr.extended.chart.AbstractExtendedChartTableDataPane;
import com.fr.extended.chart.AbstractExtendedChartUIProvider;
import com.fr.plugin.lzljgdmap.data.LzljMapDataPane;
import com.fr.plugin.lzljgdmap.data.LzljMapReportDataPane;
import com.fr.plugin.lzljgdmap.ui.LzljMapStylePane;
/**
* @author fr.open
* @date 2022/8/19
*/
public class LzljMapChartUI extends AbstractExtendedChartUIProvider {
@Override
protected AbstractExtendedChartTableDataPane getTableDataSourcePane() {
return new LzljMapDataPane();
}
@Override
protected AbstractReportDataContentPane getReportDataSourcePane() {
return new LzljMapReportDataPane();
}
@Override
public String getIconPath() {
return "com/fr/plugin/lzljgdmap/images/icon.png";
}
@Override
public AbstractChartAttrPane[] getAttrPaneArray(AttributeChangeListener attributeChangeListener) {
return new AbstractChartAttrPane[]{
new LzljMapStylePane(attributeChangeListener)
};
}
@Override
public String[] getDemoImagePath() {
return new String[]{"com/fr/plugin/lzljgdmap/images/demo.png"};
}
}

187
src/com/fr/plugin/lzljgdmap/data/LzljMapDataConfig.java

@ -0,0 +1,187 @@
package com.fr.plugin.lzljgdmap.data;
import com.fr.extended.chart.AbstractDataConfig;
import com.fr.extended.chart.ExtendedField;
import com.fr.stable.AssistUtils;
import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLableReader;
/**
* @author fr.open
* @date 2022/8/25
*/
public class LzljMapDataConfig extends AbstractDataConfig {
private ExtendedField region = new ExtendedField();
private ExtendedField area = new ExtendedField();
private ExtendedField county = new ExtendedField();
private ExtendedField layertype = new ExtendedField();
private ExtendedField datatype = new ExtendedField();
private ExtendedField lng = new ExtendedField();
private ExtendedField lat = new ExtendedField();
private ExtendedField name = new ExtendedField();
private ExtendedField val = new ExtendedField();
private ExtendedField desc = new ExtendedField();
@Override
protected void readAttr(XMLableReader xmLableReader) {
readExtendedField(region, "region", xmLableReader);
readExtendedField(area, "area", xmLableReader);
readExtendedField(county, "county", xmLableReader);
readExtendedField(layertype, "layertype", xmLableReader);
readExtendedField(datatype, "datatype", xmLableReader);
readExtendedField(lng, "lng", xmLableReader);
readExtendedField(lat, "lat", xmLableReader);
readExtendedField(name, "name", xmLableReader);
readExtendedField(val, "val", xmLableReader);
readExtendedField(desc, "desc", xmLableReader);
}
@Override
protected void writeAttr(XMLPrintWriter xmlPrintWriter) {
writeExtendedField(region, "region", xmlPrintWriter);
writeExtendedField(area, "area", xmlPrintWriter);
writeExtendedField(county, "county", xmlPrintWriter);
writeExtendedField(layertype, "layertype", xmlPrintWriter);
writeExtendedField(datatype, "datatype", xmlPrintWriter);
writeExtendedField(lng, "lng", xmlPrintWriter);
writeExtendedField(lat, "lat", xmlPrintWriter);
writeExtendedField(name, "name", xmlPrintWriter);
writeExtendedField(val, "val", xmlPrintWriter);
writeExtendedField(desc, "desc", xmlPrintWriter);
}
@Override
public ExtendedField[] dataSetFields() {
return new ExtendedField[]{
region,
area,
county,
layertype,
datatype,
lng,
lat,
name,
val,
desc
};
}
@Override
public LzljMapDataConfig clone() throws CloneNotSupportedException {
LzljMapDataConfig result = new LzljMapDataConfig();
result.setRegion(this.getRegion().clone());
result.setArea(this.getArea().clone());
result.setCounty(this.getCounty().clone());
result.setLayertype(this.getLayertype().clone());
result.setDatatype(this.getDatatype().clone());
result.setLng(this.getLng().clone());
result.setLat(this.getLat().clone());
result.setName(this.getName().clone());
result.setVal(this.getVal().clone());
result.setDesc(this.getDesc().clone());
return result;
}
@Override
public int hashCode() {
return super.hashCode() + AssistUtils.hashCode(this.getRegion(), this.getArea(), this.getCounty(), this.getLayertype(), this.getDatatype(), this.getLng(), this.getLat(), this.getName(),this.getVal(),this.getDesc());
}
@Override
public boolean equals(Object obj) {
return super.equals(obj)
&& obj instanceof LzljMapDataConfig
&& AssistUtils.equals(this.getRegion(), ((LzljMapDataConfig) obj).getRegion())
&& AssistUtils.equals(this.getArea(), ((LzljMapDataConfig) obj).getArea())
&& AssistUtils.equals(this.getCounty(), ((LzljMapDataConfig) obj).getCounty())
&& AssistUtils.equals(this.getLayertype(), ((LzljMapDataConfig) obj).getLayertype())
&& AssistUtils.equals(this.getDatatype(), ((LzljMapDataConfig) obj).getDatatype())
&& AssistUtils.equals(this.getLng(), ((LzljMapDataConfig) obj).getLng())
&& AssistUtils.equals(this.getLat(), ((LzljMapDataConfig) obj).getLat())
&& AssistUtils.equals(this.getName(), ((LzljMapDataConfig) obj).getName())
&& AssistUtils.equals(this.getVal(), ((LzljMapDataConfig) obj).getVal())
&& AssistUtils.equals(this.getDesc(), ((LzljMapDataConfig) obj).getDesc())
;
}
public ExtendedField getDatatype() {
return datatype;
}
public void setDatatype(ExtendedField datatype) {
this.datatype = datatype;
}
public ExtendedField getLayertype() {
return layertype;
}
public void setLayertype(ExtendedField layertype) {
this.layertype = layertype;
}
public ExtendedField getLng() {
return lng;
}
public void setLng(ExtendedField lng) {
this.lng = lng;
}
public ExtendedField getLat() {
return lat;
}
public void setLat(ExtendedField lat) {
this.lat = lat;
}
public ExtendedField getName() {
return name;
}
public void setName(ExtendedField name) {
this.name = name;
}
public ExtendedField getVal() {
return val;
}
public void setVal(ExtendedField val) {
this.val = val;
}
public ExtendedField getDesc() {
return desc;
}
public void setDesc(ExtendedField desc) {
this.desc = desc;
}
public ExtendedField getRegion() {
return region;
}
public void setRegion(ExtendedField region) {
this.region = region;
}
public ExtendedField getArea() {
return area;
}
public void setArea(ExtendedField area) {
this.area = area;
}
public ExtendedField getCounty() {
return county;
}
public void setCounty(ExtendedField county) {
this.county = county;
}
}

89
src/com/fr/plugin/lzljgdmap/data/LzljMapDataPane.java

@ -0,0 +1,89 @@
package com.fr.plugin.lzljgdmap.data;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.i18n.Toolkit;
import com.fr.extended.chart.AbstractExtendedChartTableDataPane;
/**
* @author fr.open
* @date 2022/8/25
*/
public class LzljMapDataPane extends AbstractExtendedChartTableDataPane<LzljMapDataConfig> {
private UIComboBox layertype;
private UIComboBox datatype;
private UIComboBox lng;
private UIComboBox lat;
private UIComboBox name;
private UIComboBox val;
private UIComboBox desc;
private UIComboBox region;
private UIComboBox area;
private UIComboBox county;
@Override
protected String[] fieldLabels() {
return new String[]{
Toolkit.i18nText("Plugin_LzljMap_region"),
Toolkit.i18nText("Plugin_LzljMap_area"),
Toolkit.i18nText("Plugin_LzljMap_county"),
Toolkit.i18nText("Plugin_LzljMap_layertype"),
Toolkit.i18nText("Plugin_LzljMap_datatype"),
Toolkit.i18nText("Plugin_LzljMap_lng"),
Toolkit.i18nText("Plugin_LzljMap_lat"),
Toolkit.i18nText("Plugin_LzljMap_name"),
Toolkit.i18nText("Plugin_LzljMap_val"),
Toolkit.i18nText("Plugin_LzljMap_desc")
};
}
@Override
protected UIComboBox[] filedComboBoxes() {
if (null == datatype) {
region = new UIComboBox();
area = new UIComboBox();
county = new UIComboBox();
layertype = new UIComboBox();
datatype = new UIComboBox();
lng = new UIComboBox();
lat = new UIComboBox();
name = new UIComboBox();
val = new UIComboBox();
desc = new UIComboBox();
}
return new UIComboBox[]{
region, area, county, layertype, datatype, lng, lat, name, val, desc
};
}
@Override
protected void populate(LzljMapDataConfig dataConfig) {
populateField(region, dataConfig.getRegion());
populateField(area, dataConfig.getArea());
populateField(county, dataConfig.getCounty());
populateField(layertype, dataConfig.getLayertype());
populateField(datatype, dataConfig.getDatatype());
populateField(lng, dataConfig.getLng());
populateField(lat, dataConfig.getLat());
populateField(name, dataConfig.getName());
populateField(val, dataConfig.getVal());
populateField(desc, dataConfig.getDesc());
}
@Override
protected LzljMapDataConfig update() {
LzljMapDataConfig dataConfig = new LzljMapDataConfig();
updateField(region, dataConfig.getRegion());
updateField(area, dataConfig.getArea());
updateField(county, dataConfig.getCounty());
updateField(layertype, dataConfig.getLayertype());
updateField(datatype, dataConfig.getDatatype());
updateField(lng, dataConfig.getLng());
updateField(lat, dataConfig.getLat());
updateField(name, dataConfig.getName());
updateField(val, dataConfig.getVal());
updateField(desc, dataConfig.getDesc());
return dataConfig;
}
}

89
src/com/fr/plugin/lzljgdmap/data/LzljMapReportDataPane.java

@ -0,0 +1,89 @@
package com.fr.plugin.lzljgdmap.data;
import com.fr.design.formula.TinyFormulaPane;
import com.fr.design.i18n.Toolkit;
import com.fr.extended.chart.AbstractExtendedChartReportDataPane;
/**
* @author fr.open
* @date 2022/8/25
*/
public class LzljMapReportDataPane extends AbstractExtendedChartReportDataPane<LzljMapDataConfig> {
private TinyFormulaPane layertype;
private TinyFormulaPane datatype;
private TinyFormulaPane lng;
private TinyFormulaPane lat;
private TinyFormulaPane name;
private TinyFormulaPane val;
private TinyFormulaPane desc;
private TinyFormulaPane region;
private TinyFormulaPane area;
private TinyFormulaPane county;
@Override
protected String[] fieldLabel() {
return new String[]{
Toolkit.i18nText("Plugin_LzljMap_region"),
Toolkit.i18nText("Plugin_LzljMap_area"),
Toolkit.i18nText("Plugin_LzljMap_county"),
Toolkit.i18nText("Plugin_LzljMap_layertype"),
Toolkit.i18nText("Plugin_LzljMap_datatype"),
Toolkit.i18nText("Plugin_LzljMap_lng"),
Toolkit.i18nText("Plugin_LzljMap_lat"),
Toolkit.i18nText("Plugin_LzljMap_name"),
Toolkit.i18nText("Plugin_LzljMap_val"),
Toolkit.i18nText("Plugin_LzljMap_desc")
};
}
@Override
protected TinyFormulaPane[] formulaPanes() {
if (null == datatype) {
region = new TinyFormulaPane();
area = new TinyFormulaPane();
county = new TinyFormulaPane();
layertype = new TinyFormulaPane();
datatype = new TinyFormulaPane();
lng = new TinyFormulaPane();
lat = new TinyFormulaPane();
name = new TinyFormulaPane();
val = new TinyFormulaPane();
desc = new TinyFormulaPane();
}
return new TinyFormulaPane[]{
region, area, county, layertype, datatype, lng, lat, name, val, desc
};
}
@Override
protected void populate(LzljMapDataConfig dataConfig) {
populateField(region, dataConfig.getRegion());
populateField(area, dataConfig.getArea());
populateField(county, dataConfig.getCounty());
populateField(layertype, dataConfig.getLayertype());
populateField(datatype, dataConfig.getDatatype());
populateField(lng, dataConfig.getLng());
populateField(lat, dataConfig.getLat());
populateField(name, dataConfig.getName());
populateField(val, dataConfig.getVal());
populateField(desc, dataConfig.getDesc());
}
@Override
protected LzljMapDataConfig update() {
LzljMapDataConfig dataConfig = new LzljMapDataConfig();
updateField(region, dataConfig.getRegion());
updateField(area, dataConfig.getArea());
updateField(county, dataConfig.getCounty());
updateField(layertype, dataConfig.getLayertype());
updateField(datatype, dataConfig.getDatatype());
updateField(lng, dataConfig.getLng());
updateField(lat, dataConfig.getLat());
updateField(name, dataConfig.getName());
updateField(val, dataConfig.getVal());
updateField(desc, dataConfig.getDesc());
return dataConfig;
}
}

BIN
src/com/fr/plugin/lzljgdmap/images/demo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

BIN
src/com/fr/plugin/lzljgdmap/images/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

106
src/com/fr/plugin/lzljgdmap/locale/lzljgdmap.properties

@ -0,0 +1,106 @@
Plugin_LzljMap_region=\u7701\u4EFD
Plugin_LzljMap_area=\u5730\u5E02
Plugin_LzljMap_county=\u533A\u53BF
Plugin_LzljMap_layertype=\u6570\u636E\u5206\u7C7B
Plugin_LzljMap_datatype=\u6570\u636E\u7C7B\u578B
Plugin_LzljMap_lng=\u7ECF\u5EA6
Plugin_LzljMap_lat=\u7EAC\u5EA6
Plugin_LzljMap_name=\u540D\u79F0
Plugin_LzljMap_val=\u6570\u503C
Plugin_LzljMap_desc=\u63CF\u8FF0
Plugin-LzljMap-isVisiableTitle=\u663E\u793A\u6807\u9898
Plugin-LzljMap-titleBgColor=\u80CC\u666F\u989C\u8272
Plugin-LzljMap-titleBgOpacity=\u4E0D\u900F\u660E\u5EA6
Plugin-LzljMap-TitleText=\u540D\u79F0
Plugin-LzljMap-TitlePosition=\u4F4D\u7F6E
Plugin-LzljMap-TitleExpand=\u6807\u9898\u8BBE\u7F6E
Plugin-LzljMap-TitleStyle=\u6807\u9898\u6837\u5F0F
Plugin-LzljMap-maptitle=\u5730\u56FE
Plugin-LzljMap-mapzoom=\u5730\u56FE\u7EA7\u522B
Plugin-LzljMap-centerx=\u4E2D\u5FC3\u70B9\u7ECF\u5EA6
Plugin-LzljMap-centery=\u4E2D\u5FC3\u70B9\u7EAC\u5EA6
Plugin-LzljMap-mapStyle=\u5730\u56FE\u6837\u5F0F
Plugin-LzljMap-mapKey=\u5730\u56FELicense
Plugin-LzljMap-regionBorderWidth=\u533A\u57DF\u8FB9\u754C\u5BBD
Plugin-LzljMap-regionBorderColor=\u7701\u4EFD\u8FB9\u754C\u989C\u8272
Plugin-LzljMap-areaBorderColor=\u5730\u5E02\u8FB9\u754C\u989C\u8272
Plugin-LzljMap-countryBorderColor=\u533A\u53BF\u8FB9\u754C\u989C\u8272
Plugin-LzljMap-RegionExpand=\u884C\u653F\u533A\u57DF\u6837\u5F0F
Plugin-LzljMap-BaseMapExpand=\u5730\u56FE\u53C2\u6570\u8BBE\u7F6E
Plugin-LzljMap-CircleExpand=\u5708\u9009\u533A\u57DF\u6837\u5F0F
Plugin-LzljMap-circleBorderWidth=\u8FB9\u6846\u5BBD\u5EA6
Plugin-LzljMap-circleBorderColor=\u8FB9\u6846\u989C\u8272
Plugin-LzljMap-circleFillColor=\u586B\u5145\u989C\u8272
Plugin-LzljMap-circleOpacity=\u4E0D\u900F\u660E\u5EA6
Plugin-LzljMap-showCircleDetail=\u663E\u793A\u5708\u9009\u6570\u636E\u8BE6\u60C5
Plugin-LzljMap-pointtitle=\u70B9\u5730\u56FE
Plugin-LzljMap-showCluster=\u663E\u793A\u805A\u5408\u6548\u679C
Plugin-LzljMap-clusterMaxZoom=\u6700\u5927\u805A\u5408\u7EA7\u522B
Plugin-LzljMap-pointSize=\u70B9\u5927\u5C0F
Plugin-LzljMap-clusterBorderColor=\u8FB9\u6846\u989C\u8272
Plugin-LzljMap-clusterFillColor=\u586B\u5145\u989C\u8272
Plugin-LzljMap-clusterTextColor=\u5B57\u4F53\u989C\u8272
Plugin-LzljMap-clusterBgOpacity=\u4E0D\u900F\u660E\u5EA6
Plugin-LzljMap-pointMapExpand=\u70B9\u6837\u5F0F\u914D\u7F6E
Plugin-LzljMap-clusterPointMapExpand=\u805A\u5408\u70B9\u6837\u5F0F\u914D\u7F6E
Plugin-LzljMap-heattitle=\u70ED\u529B\u56FE
Plugin-LzljMap-heatradius=\u534A\u5F84
Plugin-LzljMap-heatmaxValue=\u6700\u5927\u503C
Plugin-LzljMap-heatbgOpacity=\u4E0D\u900F\u660E\u5EA6
Plugin-LzljMap-heatinterval=\u5212\u5206\u9636\u6BB5
Plugin-LzljMap-heatMapExpand=\u70ED\u529B\u6837\u5F0F\u914D\u7F6E
Plugin-LzljMap-toolstitle=\u5DE5\u5177
Plugin-LzljMap-toolAlignment=\u4F4D\u7F6E
Plugin-LzljMap-toolBgColor=\u80CC\u666F\u989C\u8272
Plugin-LzljMap-toolBtnColor=\u6309\u94AE\u989C\u8272
Plugin-LzljMap-toolBgOpacity=\u4E0D\u900F\u660E\u5EA6
Plugin-LzljMap-toolAlignExpand=\u7B5B\u9009\u6837\u5F0F\u914D\u7F6E
Plugin-LzljMap-ToolsTextStyle=\u7B5B\u9009\u6587\u672C\u6837\u5F0F
Plugin-LzljMap-detailTitleBgColor=\u6807\u9898\u80CC\u666F\u8272
Plugin-LzljMap-detailAlignExpand=\u8BE6\u60C5\u6837\u5F0F\u914D\u7F6E
Plugin-LzljMap-detailColumnsExpand=\u8BE6\u60C5\u8868\u5B57\u6BB5\u914D\u7F6E
Plugin-LzljMap-showPointLabel=\u663E\u793A\u70B9\u6807\u7B7E
Plugin-LzljMap-labelBgColor=\u80CC\u666F\u989C\u8272
Plugin-LzljMap-labelstitle=\u6807\u7B7E
Plugin-LzljMap-labelTypeCheck=\u9009\u9879
Plugin-LzljMap-labelTypeJS=JS\u811A\u672C
Plugin-LzljMap-showName=\u540D\u79F0
Plugin-LzljMap-showLng=\u7ECF\u5EA6
Plugin-LzljMap-showLat=\u7EAC\u5EA6
Plugin-LzljMap-showDesc=\u63CF\u8FF0
Plugin-LzljMap-labelType=\u53D6\u503C\u65B9\u5F0F
Plugin-LzljMap-labelAlignExpand=\u6807\u7B7E\u65B9\u5F0F
Plugin-LzljMap-LabelsTextStyle=\u6587\u672C\u6837\u5F0F
Plugin-LzljMap-showPointTips=\u663E\u793A\u60AC\u6D6E\u63D0\u793A\u6846
Plugin-LzljMap-tipstitle=\u63D0\u793A
Plugin-LzljMap-showLayerType=\u6570\u636E\u5206\u7C7B
Plugin-LzljMap-showDataType=\u6570\u636E\u7C7B\u578B
Plugin-LzljMap-tipBgColor=\u80CC\u666F\u989C\u8272
Plugin-LzljMap-tipBgOpacity=\u4E0D\u900F\u660E\u5EA6
Plugin-LzljMap-tipsAlignExpand=\u63D0\u793A\u80CC\u666F
Plugin-LzljMap-tipsTextStyle=\u63D0\u793A\u6587\u672C
Plugin-LzljMap-otherstitle=\u7279\u6548
Plugin-LzljMap-LinkExpand=\u8D85\u7EA7\u94FE\u63A5\u914D\u7F6E
Plugin-LzljMap-pointStyleCondExpand=\u6761\u4EF6\u5C5E\u6027\u914D\u7F6E
Plugin-LzljMap-Cond-pointStyle=\u70B9\u6837\u5F0F
Plugin-LzljMap-Cond-clusterPointStyle=\u805A\u5408\u70B9\u6837\u5F0F
Plugin-LzljMap-Cond-AddCondtion=\u6DFB\u52A0
Plugin-LzljMap-Cond-pointMapTitle=\u5730\u56FE\u70B9\u6761\u4EF6\u5C5E\u6027
Plugin-LzljMap-Cond-pointSize=\u70B9\u5927\u5C0F
Plugin-LzljMap-Cond-PointMapStyleExpand=\u6837\u5F0F\u914D\u7F6E
Plugin-LzljMap-Cond-typeNameLabel=\u6570\u636E\u5206\u7C7B
Plugin-LzljMap-Cond-dataTypeLabel=\u6570\u636E\u7C7B\u578B
Plugin-LzljMap-Cond-valueNameLabel=\u6570\u503C
Plugin-LzljMap-Cond-clusterCountNameLabel=\u805A\u5408\u70B9\u6570\u91CF
Plugin-LzljMap-Cond-addButton=\u6DFB\u52A0
Plugin-LzljMap-Cond-clearButton=\u6E05\u7A7A\u6761\u4EF6
Plugin-LzljMap-Cond-condTaskStyleTitle=\u6761\u4EF6\u914D\u7F6E
Plugin-LzljMap-Cond-legendName=\u56FE\u4F8B\u540D\u79F0

106
src/com/fr/plugin/lzljgdmap/locale/lzljgdmap_zh_CN.properties

@ -0,0 +1,106 @@
Plugin_LzljMap_region=\u7701\u4EFD
Plugin_LzljMap_area=\u5730\u5E02
Plugin_LzljMap_county=\u533A\u53BF
Plugin_LzljMap_layertype=\u6570\u636E\u5206\u7C7B
Plugin_LzljMap_datatype=\u6570\u636E\u7C7B\u578B
Plugin_LzljMap_lng=\u7ECF\u5EA6
Plugin_LzljMap_lat=\u7EAC\u5EA6
Plugin_LzljMap_name=\u540D\u79F0
Plugin_LzljMap_val=\u6570\u503C
Plugin_LzljMap_desc=\u63CF\u8FF0
Plugin-LzljMap-isVisiableTitle=\u663E\u793A\u6807\u9898
Plugin-LzljMap-titleBgColor=\u80CC\u666F\u989C\u8272
Plugin-LzljMap-titleBgOpacity=\u4E0D\u900F\u660E\u5EA6
Plugin-LzljMap-TitleText=\u540D\u79F0
Plugin-LzljMap-TitlePosition=\u4F4D\u7F6E
Plugin-LzljMap-TitleExpand=\u6807\u9898\u8BBE\u7F6E
Plugin-LzljMap-TitleStyle=\u6807\u9898\u6837\u5F0F
Plugin-LzljMap-maptitle=\u5730\u56FE
Plugin-LzljMap-mapzoom=\u5730\u56FE\u7EA7\u522B
Plugin-LzljMap-centerx=\u4E2D\u5FC3\u70B9\u7ECF\u5EA6
Plugin-LzljMap-centery=\u4E2D\u5FC3\u70B9\u7EAC\u5EA6
Plugin-LzljMap-mapStyle=\u5730\u56FE\u6837\u5F0F
Plugin-LzljMap-mapKey=\u5730\u56FELicense
Plugin-LzljMap-regionBorderWidth=\u533A\u57DF\u8FB9\u754C\u5BBD
Plugin-LzljMap-regionBorderColor=\u7701\u4EFD\u8FB9\u754C\u989C\u8272
Plugin-LzljMap-areaBorderColor=\u5730\u5E02\u8FB9\u754C\u989C\u8272
Plugin-LzljMap-countryBorderColor=\u533A\u53BF\u8FB9\u754C\u989C\u8272
Plugin-LzljMap-RegionExpand=\u884C\u653F\u533A\u57DF\u6837\u5F0F
Plugin-LzljMap-BaseMapExpand=\u5730\u56FE\u53C2\u6570\u8BBE\u7F6E
Plugin-LzljMap-CircleExpand=\u5708\u9009\u533A\u57DF\u6837\u5F0F
Plugin-LzljMap-circleBorderWidth=\u8FB9\u6846\u5BBD\u5EA6
Plugin-LzljMap-circleBorderColor=\u8FB9\u6846\u989C\u8272
Plugin-LzljMap-circleFillColor=\u586B\u5145\u989C\u8272
Plugin-LzljMap-circleOpacity=\u4E0D\u900F\u660E\u5EA6
Plugin-LzljMap-showCircleDetail=\u663E\u793A\u5708\u9009\u6570\u636E\u8BE6\u60C5
Plugin-LzljMap-pointtitle=\u70B9\u5730\u56FE
Plugin-LzljMap-showCluster=\u663E\u793A\u805A\u5408\u6548\u679C
Plugin-LzljMap-clusterMaxZoom=\u6700\u5927\u805A\u5408\u7EA7\u522B
Plugin-LzljMap-pointSize=\u70B9\u5927\u5C0F
Plugin-LzljMap-clusterBorderColor=\u8FB9\u6846\u989C\u8272
Plugin-LzljMap-clusterFillColor=\u586B\u5145\u989C\u8272
Plugin-LzljMap-clusterTextColor=\u5B57\u4F53\u989C\u8272
Plugin-LzljMap-clusterBgOpacity=\u4E0D\u900F\u660E\u5EA6
Plugin-LzljMap-pointMapExpand=\u70B9\u6837\u5F0F\u914D\u7F6E
Plugin-LzljMap-clusterPointMapExpand=\u805A\u5408\u70B9\u6837\u5F0F\u914D\u7F6E
Plugin-LzljMap-heattitle=\u70ED\u529B\u56FE
Plugin-LzljMap-heatradius=\u534A\u5F84
Plugin-LzljMap-heatmaxValue=\u6700\u5927\u503C
Plugin-LzljMap-heatbgOpacity=\u4E0D\u900F\u660E\u5EA6
Plugin-LzljMap-heatinterval=\u5212\u5206\u9636\u6BB5
Plugin-LzljMap-heatMapExpand=\u70ED\u529B\u6837\u5F0F\u914D\u7F6E
Plugin-LzljMap-toolstitle=\u5DE5\u5177
Plugin-LzljMap-toolAlignment=\u4F4D\u7F6E
Plugin-LzljMap-toolBgColor=\u80CC\u666F\u989C\u8272
Plugin-LzljMap-toolBtnColor=\u6309\u94AE\u989C\u8272
Plugin-LzljMap-toolBgOpacity=\u4E0D\u900F\u660E\u5EA6
Plugin-LzljMap-toolAlignExpand=\u7B5B\u9009\u6837\u5F0F\u914D\u7F6E
Plugin-LzljMap-ToolsTextStyle=\u7B5B\u9009\u6587\u672C\u6837\u5F0F
Plugin-LzljMap-detailTitleBgColor=\u6807\u9898\u80CC\u666F\u8272
Plugin-LzljMap-detailAlignExpand=\u8BE6\u60C5\u6837\u5F0F\u914D\u7F6E
Plugin-LzljMap-detailColumnsExpand=\u8BE6\u60C5\u8868\u5B57\u6BB5\u914D\u7F6E
Plugin-LzljMap-showPointLabel=\u663E\u793A\u70B9\u6807\u7B7E
Plugin-LzljMap-labelBgColor=\u80CC\u666F\u989C\u8272
Plugin-LzljMap-labelstitle=\u6807\u7B7E
Plugin-LzljMap-labelTypeCheck=\u9009\u9879
Plugin-LzljMap-labelTypeJS=JS\u811A\u672C
Plugin-LzljMap-showName=\u540D\u79F0
Plugin-LzljMap-showLng=\u7ECF\u5EA6
Plugin-LzljMap-showLat=\u7EAC\u5EA6
Plugin-LzljMap-showDesc=\u63CF\u8FF0
Plugin-LzljMap-labelType=\u53D6\u503C\u65B9\u5F0F
Plugin-LzljMap-labelAlignExpand=\u6807\u7B7E\u65B9\u5F0F
Plugin-LzljMap-LabelsTextStyle=\u6587\u672C\u6837\u5F0F
Plugin-LzljMap-showPointTips=\u663E\u793A\u60AC\u6D6E\u63D0\u793A\u6846
Plugin-LzljMap-tipstitle=\u63D0\u793A
Plugin-LzljMap-showLayerType=\u6570\u636E\u5206\u7C7B
Plugin-LzljMap-showDataType=\u6570\u636E\u7C7B\u578B
Plugin-LzljMap-tipBgColor=\u80CC\u666F\u989C\u8272
Plugin-LzljMap-tipBgOpacity=\u4E0D\u900F\u660E\u5EA6
Plugin-LzljMap-tipsAlignExpand=\u63D0\u793A\u80CC\u666F
Plugin-LzljMap-tipsTextStyle=\u63D0\u793A\u6587\u672C
Plugin-LzljMap-otherstitle=\u7279\u6548
Plugin-LzljMap-LinkExpand=\u8D85\u7EA7\u94FE\u63A5\u914D\u7F6E
Plugin-LzljMap-pointStyleCondExpand=\u6761\u4EF6\u5C5E\u6027\u914D\u7F6E
Plugin-LzljMap-Cond-pointStyle=\u70B9\u6837\u5F0F
Plugin-LzljMap-Cond-clusterPointStyle=\u805A\u5408\u70B9\u6837\u5F0F
Plugin-LzljMap-Cond-AddCondtion=\u6DFB\u52A0
Plugin-LzljMap-Cond-pointMapTitle=\u5730\u56FE\u70B9\u6761\u4EF6\u5C5E\u6027
Plugin-LzljMap-Cond-pointSize=\u70B9\u5927\u5C0F
Plugin-LzljMap-Cond-PointMapStyleExpand=\u6837\u5F0F\u914D\u7F6E
Plugin-LzljMap-Cond-typeNameLabel=\u6570\u636E\u5206\u7C7B
Plugin-LzljMap-Cond-dataTypeLabel=\u6570\u636E\u7C7B\u578B
Plugin-LzljMap-Cond-valueNameLabel=\u6570\u503C
Plugin-LzljMap-Cond-clusterCountNameLabel=\u805A\u5408\u70B9\u6570\u91CF
Plugin-LzljMap-Cond-addButton=\u6DFB\u52A0
Plugin-LzljMap-Cond-clearButton=\u6E05\u7A7A\u6761\u4EF6
Plugin-LzljMap-Cond-condTaskStyleTitle=\u6761\u4EF6\u914D\u7F6E
Plugin-LzljMap-Cond-legendName=\u56FE\u4F8B\u540D\u79F0

136
src/com/fr/plugin/lzljgdmap/ui/ImageChooserPane.java

@ -0,0 +1,136 @@
package com.fr.plugin.lzljgdmap.ui;
import com.bulenkov.iconloader.util.Base64Converter;
import com.fr.base.BaseUtils;
import com.fr.base.Style;
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.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.style.background.image.ImageFileChooser;
import com.fr.design.style.background.image.ImagePreviewPane;
import com.fr.design.utils.ImageUtils;
import com.fr.general.ImageWithSuffix;
import com.fr.general.xml.GeneralXMLTools;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
public class ImageChooserPane extends BasicBeanPane<ImageEntity> {
private ImageFileChooser imageChooser;
private ImagePreviewPane imagePreview;
private UIButton imagebtn;
private ImageEntity imageEntity;
public ImageChooserPane() {
this.setLayout(new BorderLayout());
imagePreview = new ImagePreviewPane();
imageEntity = new ImageEntity();
imagebtn = new UIButton("选择图标");
UILabel imageLab = new UILabel("点图标");
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {p, f};
double[] rowSize = {p, p, p};
Component[][] acomponents = new Component[][]{
new Component[]{imageLab, imagebtn},
new Component[]{null, imagePreview}
};
JPanel panel = TableLayoutHelper.createTableLayoutPane(acomponents, rowSize, columnSize);
this.add(panel, BorderLayout.CENTER);
this.setVisible(true);
imageChooser = new ImageFileChooser();
imageChooser.setMultiSelectionEnabled(false);
initLiseners();
}
private void initLiseners() {
this.imagebtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int returnVal = imageChooser.showOpenDialog(ImageChooserPane.this);
if (returnVal != JFileChooser.CANCEL_OPTION) {
dealWithImageFile();
}
}
});
}
private void dealWithImageFile() {
final File selectedFile = imageChooser.getSelectedFile();
if (selectedFile != null && selectedFile.isFile()) {
BufferedImage image = BaseUtils.readImage(selectedFile.getPath());
if (null == image) {
return;
}
if (image.getWidth() > 300 || image.getHeight() > 300) {
JOptionPane.showMessageDialog(null,
"图片太大,请重新选择!大小不超过300*300,当前尺寸:" + image.getWidth() + "*" + image.getHeight(),
"信息提示",
JOptionPane.ERROR_MESSAGE);
return;
}
String type = ImageUtils.getImageType(selectedFile);
String iconBase64 = Base64Converter.encode(GeneralXMLTools.imageEncode(image, type));
if (null == this.imageEntity) {
this.imageEntity = new ImageEntity();
}
this.imageEntity.setImagestr(iconBase64);
this.imageEntity.setImagetype(type);
this.imageEntity.setWidth(image.getWidth());
this.imageEntity.setHeight(image.getHeight());
if (imagePreview != null) {
ImageWithSuffix imageWithSuffix = new ImageWithSuffix(image, type);
imagePreview.setImageStyle(Style.getInstance());
imagePreview.setImageWithSuffix(imageWithSuffix);
imagePreview.repaint();
}
}
}
@Override
public void populateBean(ImageEntity ob) {
if (null == ob || null == ob.getImagestr() || "".equals(ob.getImagestr())) {
this.imageEntity = new ImageEntity();
this.imagePreview.setImage(null);
this.imagePreview.repaint();
new ImagePreviewPane();
return;
}
this.imageEntity = ob;
BufferedImage image = (BufferedImage) GeneralXMLTools.imageDecode(Base64Converter.decode(ob.getImagestr().getBytes()));
if (imagePreview != null && null != image) {
ImageWithSuffix imageWithSuffix = new ImageWithSuffix(image, ob.getImagetype());
imagePreview.setImageStyle(Style.getInstance());
imagePreview.setImageWithSuffix(imageWithSuffix);
imagePreview.repaint();
}
}
@Override
public ImageEntity updateBean() {
return this.imageEntity;
}
@Override
protected String title4PopupWindow() {
return "点图标设置";
}
}

42
src/com/fr/plugin/lzljgdmap/ui/ImageEntity.java

@ -0,0 +1,42 @@
package com.fr.plugin.lzljgdmap.ui;
import java.io.Serializable;
public class ImageEntity implements Serializable {
private String imagestr;
private String imagetype;
private int width;
private int height;
public String getImagestr() {
return imagestr;
}
public void setImagestr(String imagestr) {
this.imagestr = imagestr;
}
public String getImagetype() {
return imagetype;
}
public void setImagetype(String imagetype) {
this.imagetype = imagetype;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
}

188
src/com/fr/plugin/lzljgdmap/ui/LzljMapClusterPointStyleCreator.java

@ -0,0 +1,188 @@
package com.fr.plugin.lzljgdmap.ui;
import com.fr.design.gui.frpane.UINumberDragPane;
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.design.style.color.ColorSelectBox;
import com.fr.json.JSONObject;
import com.fr.plugin.lzljgdmap.vo.ClusterPointMapStyleJson;
import com.fr.plugin.lzljgdmap.vo.CustomJsonObject;
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 fr.open
*/
public class LzljMapClusterPointStyleCreator extends AbstractVanChartScrollPane<CustomJsonObject> {
private UITextArea condition;
private UISpinner clusterPointSize;
private ColorSelectBox clusterBorderColor;
private ColorSelectBox clusterFillColor;
private ColorSelectBox clusterTextColor;
private UINumberDragPane clusterBgOpacity;
@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.clusterPointSize.setValue(chartConf.getDouble("clusterPointSize"));
this.clusterBorderColor.setSelectObject(MapUtil.toColor(chartConf.getString("clusterBorderColor")));
this.clusterFillColor.setSelectObject(MapUtil.toColor(chartConf.getString("clusterFillColor")));
this.clusterTextColor.setSelectObject(MapUtil.toColor(chartConf.getString("clusterTextColor")));
this.clusterBgOpacity.populateBean(chartConf.getDouble("clusterBgOpacity"));
this.condition.setText(chartConf.getString("condition"));
}
}
@Override
public CustomJsonObject updateBean() {
JSONObject chartConf = JSONObject.create();
chartConf.put("clusterPointSize", this.clusterPointSize.getValue());
chartConf.put("clusterBorderColor", MapUtil.toHex(this.clusterBorderColor.getSelectObject()));
chartConf.put("clusterFillColor", MapUtil.toHex(this.clusterFillColor.getSelectObject()));
chartConf.put("clusterTextColor", MapUtil.toHex(this.clusterTextColor.getSelectObject()));
chartConf.put("clusterBgOpacity", this.clusterBgOpacity.updateBean());
chartConf.put("condition", this.condition.getText());
ClusterPointMapStyleJson json = new ClusterPointMapStyleJson();
chartConf.put("title", json.getTilte());
json.put(chartConf);
return json;
}
@Override
protected String title4PopupWindow() {
return Toolkit.i18nText("Plugin-LzljMap-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.clusterPointSize = new UISpinner(0, 1000, 1, 32);
this.clusterBorderColor = new ColorSelectBox(100);
this.clusterFillColor = new ColorSelectBox(100);
this.clusterTextColor = new ColorSelectBox(100);
this.clusterBgOpacity = new UINumberDragPane(0, 100);
Component[][] components = new Component[][]{
{null, null},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-pointSize")), this.clusterPointSize},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-clusterBorderColor")), this.clusterBorderColor},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-clusterFillColor")), this.clusterFillColor},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-clusterTextColor")), this.clusterTextColor},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-clusterBgOpacity")), this.clusterBgOpacity}
};
double p = TableLayout.PREFERRED;
double[] columnSize = {TableLayout.PREFERRED, TableLayout.FILL};
double[] rowSize = {p, p, p, p, p, p, p};
JPanel sizePane = TableLayout4VanChartHelper.createGapTableLayoutPane(components, rowSize, columnSize);
Component[][] comp1 = new Component[][]{
new Component[]{sizePane}
};
JPanel panel = TableLayout4VanChartHelper.createGapTableLayoutPane(comp1, new double[]{p, p, p}, new double[]{TableLayout.FILL});
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-Cond-PointMapStyleExpand"), 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-LzljMap-Cond-clusterCountNameLabel"));
UIButton add = new UIButton(Toolkit.i18nText("Plugin-LzljMap-Cond-addButton"));
UIButton clear = new UIButton(Toolkit.i18nText("Plugin-LzljMap-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, 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);
}
});
clear.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
condition.setText("");
}
});
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-Cond-condTaskStyleTitle"), sumPane);
}
}

55
src/com/fr/plugin/lzljgdmap/ui/LzljMapHyperLink.java

@ -0,0 +1,55 @@
package com.fr.plugin.lzljgdmap.ui;
import com.fr.base.BaseFormula;
import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.gui.controlpane.NameableCreator;
import com.fr.js.NameJavaScriptGroup;
import com.fr.plugin.lzljgdmap.LzljMapChart;
import com.fr.van.chart.custom.component.VanChartHyperLinkPane;
import java.util.Map;
public class LzljMapHyperLink extends VanChartHyperLinkPane {
private LzljMapChart chart;
public void populateBean(LzljMapChart paramAbstractECharts) {
this.chart = paramAbstractECharts;
populate(paramAbstractECharts.getPlot());
}
public void updateBean(LzljMapChart paramAbstractECharts) {
update(paramAbstractECharts.getPlot());
}
@Override
public NameableCreator[] createNameableCreators() {
return super.createNameableCreators();
}
@Override
public BasicBeanPane createPaneByCreators(NameableCreator nameableCreator) {
return super.createPaneByCreators(nameableCreator);
}
@Override
protected Map<String, BaseFormula> getHyperLinkEditorMap() {
return this.chart.getHyperLinkEditorMap();
}
@Override
public void refreshNameableCreator(NameableCreator[] nameableCreators) {
super.refreshNameableCreator(nameableCreators);
}
@Override
protected NameJavaScriptGroup populateHotHyperLink(Plot paramPlot) {
return this.chart.getLinkNameGroup();
}
@Override
protected void updateHotHyperLink(Plot paramPlot, NameJavaScriptGroup paramNameJavaScriptGroup) {
this.chart.setLinkNameGroup(paramNameJavaScriptGroup);
}
}

146
src/com/fr/plugin/lzljgdmap/ui/LzljMapPointCondListPane.java

@ -0,0 +1,146 @@
package com.fr.plugin.lzljgdmap.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.lzljgdmap.LzljMapChart;
import com.fr.plugin.lzljgdmap.vo.ClusterPointMapStyleJson;
import com.fr.plugin.lzljgdmap.vo.CustomJsonObject;
import com.fr.plugin.lzljgdmap.vo.PointMapStyleJson;
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 fr.open
*/
public class LzljMapPointCondListPane extends VanChartUIListControlPane {
private LzljMapChart chart;
private HashMap paneMap;
private HashMap jsonMap;
public LzljMapPointCondListPane() {
paneMap = new HashMap(6);
paneMap.put(CustomJsonObject.POINT_MAP_TITLE, LzljMapPointStyleCreator.class);
paneMap.put(CustomJsonObject.CLUSTER_POINT_MAP_TITLE, LzljMapClusterPointStyleCreator.class);
jsonMap = new HashMap(6);
jsonMap.put(CustomJsonObject.POINT_MAP_TITLE, PointMapStyleJson.class);
jsonMap.put(CustomJsonObject.CLUSTER_POINT_MAP_TITLE, ClusterPointMapStyleJson.class);
}
@Override
protected void update(Plot plot) {
}
public void populateStyle(LzljMapChart chart) {
this.chart = chart;
JSONArray pointStyleCond = chart.getPointStyleCond();
ArrayList noList = new ArrayList();
for (int i = 0; null != pointStyleCond && i < pointStyleCond.size(); i++) {
JSONObject line = pointStyleCond.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(LzljMapChart 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());
}
chart.setPointStyleCond(objConf);
}
@Override
public NameableCreator[] createNameableCreators() {
ListMap creatorMap = new ListMap();
NameableCreator mon = new NameObjectCreator(Toolkit.i18nText("Plugin-LzljMap-Cond-pointStyle"), PointMapStyleJson.class, LzljMapPointStyleCreator.class);
creatorMap.put(mon.menuName(), mon);
NameableCreator cluster = new NameObjectCreator(Toolkit.i18nText("Plugin-LzljMap-Cond-clusterPointStyle"), ClusterPointMapStyleJson.class, LzljMapClusterPointStyleCreator.class);
creatorMap.put(cluster.menuName(), cluster);
return (NameableCreator[])creatorMap.values().toArray(new NameableCreator[creatorMap.size()]);
}
@Override
protected String title4PopupWindow() {
return Toolkit.i18nText("Plugin-LzljMap-Cond-AddCondtion");
}
@Override
protected String getAddItemText() {
return Toolkit.i18nText("Plugin-LzljMap-Cond-AddCondtion");
}
@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);
}
}

223
src/com/fr/plugin/lzljgdmap/ui/LzljMapPointStyleCreator.java

@ -0,0 +1,223 @@
package com.fr.plugin.lzljgdmap.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.lzljgdmap.vo.CustomJsonObject;
import com.fr.plugin.lzljgdmap.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 fr.open
*/
public class LzljMapPointStyleCreator extends AbstractVanChartScrollPane<CustomJsonObject> {
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-LzljMap-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-LzljMap-Cond-legendName")), this.legendName},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-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-LzljMap-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-LzljMap-Cond-typeNameLabel"));
UIButton addType = new UIButton(Toolkit.i18nText("Plugin-LzljMap-Cond-addButton"));
final UITextField datavalue = new UITextField();
final UIComboBox datacond = new UIComboBox(new String[]{"=="});
UILabel data = new UILabel(Toolkit.i18nText("Plugin-LzljMap-Cond-dataTypeLabel"));
UIButton addData = new UIButton(Toolkit.i18nText("Plugin-LzljMap-Cond-addButton"));
final UITextField value = new UITextField();
final UIComboBox cond = new UIComboBox(new String[]{"==", ">", "<"});
UILabel name = new UILabel(Toolkit.i18nText("Plugin-LzljMap-Cond-valueNameLabel"));
UIButton add = new UIButton(Toolkit.i18nText("Plugin-LzljMap-Cond-addButton"));
UIButton clear = new UIButton(Toolkit.i18nText("Plugin-LzljMap-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-LzljMap-Cond-condTaskStyleTitle"), sumPane);
}
}

192
src/com/fr/plugin/lzljgdmap/ui/LzljMapStyleBaseMapPane.java

@ -0,0 +1,192 @@
package com.fr.plugin.lzljgdmap.ui;
import com.fr.design.gui.frpane.UINumberDragPane;
import com.fr.design.gui.frpane.UINumberDragPaneWithPercent;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.ispinner.UISpinner;
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.extended.chart.ExtendedScrollPane;
import com.fr.json.JSONObject;
import com.fr.plugin.lzljgdmap.LzljMapChart;
import com.fr.van.chart.designer.TableLayout4VanChartHelper;
import javax.swing.*;
import java.awt.*;
/**
* @author fr.open
*/
public class LzljMapStyleBaseMapPane extends ExtendedScrollPane<LzljMapChart> {
private UISpinner mapzoom;
private UITextField centerx;
private UITextField centery;
private UITextField mapStyle;
private UITextField mapKey;
private UISpinner regionBorderWidth;
private ColorSelectBox regionBorderColor;
private ColorSelectBox areaBorderColor;
private ColorSelectBox countryBorderColor;
private UISpinner circleBorderWidth;
private ColorSelectBox circleBorderColor;
private ColorSelectBox circleFillColor;
private UINumberDragPane circleOpacity;
private UICheckBox showCircleDetail;
@Override
protected JPanel createContentPane() {
return new ContentPane();
}
@Override
public void populateBean(LzljMapChart chart) {
JSONObject regionConf = chart.getMapConf();
this.mapzoom.setValue(regionConf.getDouble("mapzoom"));
this.centerx.setText(regionConf.getString("centerx"));
this.centery.setText(regionConf.getString("centery"));
this.mapStyle.setText(regionConf.getString("mapStyle"));
this.mapKey.setText(regionConf.getString("mapKey"));
this.regionBorderWidth.setValue(regionConf.getDouble("regionBorderWidth"));
this.regionBorderColor.setSelectObject(MapUtil.toColor(regionConf.getString("regionBorderColor")));
this.areaBorderColor.setSelectObject(MapUtil.toColor(regionConf.getString("areaBorderColor")));
this.countryBorderColor.setSelectObject(MapUtil.toColor(regionConf.getString("countryBorderColor")));
this.circleBorderWidth.setValue(regionConf.getDouble("circleBorderWidth"));
this.circleBorderColor.setSelectObject(MapUtil.toColor(regionConf.getString("circleBorderColor")));
this.circleFillColor.setSelectObject(MapUtil.toColor(regionConf.getString("circleFillColor")));
this.circleOpacity.populateBean(regionConf.getDouble("circleOpacity"));
this.showCircleDetail.setSelected(regionConf.getBoolean("showCircleDetail"));
}
@Override
public void updateBean(LzljMapChart chart) {
JSONObject regionConf = JSONObject.create();
regionConf.put("mapzoom", this.mapzoom.getValue());
regionConf.put("centerx", this.centerx.getText());
regionConf.put("centery", this.centery.getText());
regionConf.put("mapStyle", this.mapStyle.getText());
regionConf.put("mapKey", this.mapKey.getText());
regionConf.put("regionBorderWidth", this.regionBorderWidth.getValue());
regionConf.put("regionBorderColor", MapUtil.toHex(this.regionBorderColor.getSelectObject()));
regionConf.put("areaBorderColor", MapUtil.toHex(this.areaBorderColor.getSelectObject()));
regionConf.put("countryBorderColor", MapUtil.toHex(this.countryBorderColor.getSelectObject()));
regionConf.put("circleBorderWidth", this.circleBorderWidth.getValue());
regionConf.put("circleBorderColor", MapUtil.toHex(this.circleBorderColor.getSelectObject()));
regionConf.put("circleFillColor", MapUtil.toHex(this.circleFillColor.getSelectObject()));
regionConf.put("circleOpacity", this.circleOpacity.updateBean());
regionConf.put("showCircleDetail", this.showCircleDetail.isSelected());
chart.setMapConf(regionConf);
}
@Override
protected String title4PopupWindow() {
return Toolkit.i18nText("Plugin-LzljMap-maptitle");
}
private class ContentPane extends JPanel {
public ContentPane() {
initComponents();
}
private void initComponents() {
this.setLayout(new BorderLayout());
JPanel mapContentPane = createMapContentPane();
JPanel regionContentPane = createRegionContentPane();
JPanel circleContentPane = createCircleContentPane();
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f};
double[] rowSize = {p, p, p, p};
Component[][] acomponents = new Component[][]{
new Component[]{mapContentPane},
new Component[]{regionContentPane},
new Component[]{circleContentPane}
};
JPanel panel = TableLayoutHelper.createTableLayoutPane(acomponents,rowSize,columnSize);
this.add(panel,BorderLayout.CENTER);
this.setVisible(true);
}
}
private JPanel createMapContentPane(){
mapzoom = new UISpinner(1, 18, 1, 1);
centerx = new UITextField();
centery = new UITextField();
mapStyle = new UITextField();
mapKey = new UITextField();
Component[][] components = new Component[][]{
{null, null},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-mapzoom")), this.mapzoom},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-centerx")), this.centerx},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-centery")), this.centery},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-mapStyle")), this.mapStyle},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-mapKey")), this.mapKey}
} ;
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
JPanel pane = TableLayout4VanChartHelper.createGapTableLayoutPane(components, new double[]{p, p, p, p, p, p, p}, new double[]{p, f});
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-BaseMapExpand"), pane);
}
private JPanel createRegionContentPane(){
regionBorderWidth = new UISpinner(0, 100, 1, 1);
regionBorderColor = new ColorSelectBox(100);
areaBorderColor = new ColorSelectBox(100);
countryBorderColor = new ColorSelectBox(100);
Component[][] components = new Component[][]{
{null, null},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-regionBorderWidth")), this.regionBorderWidth},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-regionBorderColor")), this.regionBorderColor},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-areaBorderColor")), this.areaBorderColor},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-countryBorderColor")), this.countryBorderColor},
} ;
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
JPanel pane = TableLayout4VanChartHelper.createGapTableLayoutPane(components, new double[]{p, p, p, p, p, p}, new double[]{p, f});
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-RegionExpand"), pane);
}
private JPanel createCircleContentPane(){
circleBorderWidth = new UISpinner(0, 100, 1, 1);
circleBorderColor = new ColorSelectBox(100);
circleFillColor = new ColorSelectBox(100);
circleOpacity = new UINumberDragPane(0, 100);
showCircleDetail = new UICheckBox(Toolkit.i18nText("Plugin-LzljMap-showCircleDetail"));
Component[][] components = new Component[][]{
{null, null},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-circleBorderWidth")), this.circleBorderWidth},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-circleBorderColor")), this.circleBorderColor},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-circleFillColor")), this.circleFillColor},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-circleOpacity")), this.circleOpacity},
new Component[]{null, this.showCircleDetail}
} ;
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
JPanel pane = TableLayout4VanChartHelper.createGapTableLayoutPane(components, new double[]{p, p, p, p, p, p, p}, new double[]{p, f});
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-CircleExpand"), pane);
}
}

159
src/com/fr/plugin/lzljgdmap/ui/LzljMapStyleHeatMapPane.java

@ -0,0 +1,159 @@
package com.fr.plugin.lzljgdmap.ui;
import com.fr.design.gui.frpane.UINumberDragPane;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.ispinner.UISpinner;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.extended.chart.ExtendedScrollPane;
import com.fr.json.JSONObject;
import com.fr.plugin.chart.range.GradualIntervalConfig;
import com.fr.plugin.chart.range.glyph.GradualColorDist;
import com.fr.plugin.lzljgdmap.LzljMapChart;
import com.fr.stable.StringUtils;
import com.fr.van.chart.designer.TableLayout4VanChartHelper;
import com.fr.van.chart.range.component.LegendGradientBar;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
import java.util.ArrayList;
/**
* @author fr.open
*/
public class LzljMapStyleHeatMapPane extends ExtendedScrollPane<LzljMapChart> {
private UISpinner radius;
private UISpinner maxValue;
private UINumberDragPane bgOpacity;
private UINumberDragPane interval;
private LegendGradientBar intervalLegend;
@Override
protected JPanel createContentPane() {
return new ContentPane();
}
@Override
public void populateBean(LzljMapChart chart) {
JSONObject heatConf = chart.getHeatConf();
this.radius.setValue(heatConf.getDouble("radius"));
this.maxValue.setValue(heatConf.getDouble("maxValue"));
this.bgOpacity.populateBean(heatConf.getDouble("bgOpacity"));
this.interval.populateBean(heatConf.getDouble("interval"));
GradualIntervalConfig intervalConfig = new GradualIntervalConfig();
String intervalColors = heatConf.getString("intervalColors");
String intervalPos = heatConf.getString("intervalPos");
if (StringUtils.isNotEmpty(intervalColors)
&& StringUtils.isNotEmpty(intervalPos)) {
String[] intervalArr = intervalColors.split("\\|");
String[] intervalPosArr = intervalPos.split("\\|");
ArrayList<GradualColorDist> colorsList = new ArrayList();
for (int i = 0; i < intervalArr.length; i++) {
colorsList.add(new GradualColorDist(Float.parseFloat(intervalPosArr[i]), MapUtil.toColor(intervalArr[i])));
}
intervalConfig.setDivStage(intervalArr.length - 1);
intervalConfig.setGradualColorDistList(colorsList);
}
intervalLegend.populate(intervalConfig);
}
@Override
public void updateBean(LzljMapChart chart) {
JSONObject heatConf = JSONObject.create();
heatConf.put("radius", this.radius.getValue());
heatConf.put("maxValue", this.maxValue.getValue());
heatConf.put("bgOpacity", this.bgOpacity.updateBean());
heatConf.put("interval", this.interval.updateBean());
GradualIntervalConfig intervalConfig = new GradualIntervalConfig();
intervalLegend.update(intervalConfig);
ArrayList<GradualColorDist> colorsList = intervalConfig.getGradualColorDistList();
String intervalColors = "";
String intervalPos = "";
if (null != colorsList && colorsList.size() > 0) {
for (int i = 0; i < colorsList.size(); i++) {
if (i > 0) {
intervalColors += "|";
intervalPos += "|";
}
intervalColors += MapUtil.toHex(colorsList.get(i).getColor());
intervalPos += colorsList.get(i).getPosition();
}
}
heatConf.put("intervalColors", intervalColors);
heatConf.put("intervalPos", intervalPos);
chart.setHeatConf(heatConf);
}
@Override
protected String title4PopupWindow() {
return Toolkit.i18nText("Plugin-LzljMap-heattitle");
}
private class ContentPane extends JPanel {
public ContentPane() {
initComponents();
}
private void initComponents() {
this.setLayout(new BorderLayout());
JPanel regionContentPane = createHeatContentPane();
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f};
double[] rowSize = {p, p};
Component[][] acomponents = new Component[][]{
new Component[]{regionContentPane}
};
JPanel panel = TableLayoutHelper.createTableLayoutPane(acomponents, rowSize, columnSize);
this.add(panel, BorderLayout.CENTER);
this.setVisible(true);
}
}
private JPanel createHeatContentPane() {
radius = new UISpinner(1, 10000, 1, 30);
maxValue = new UISpinner(1, 10000000, 1, 1);
bgOpacity = new UINumberDragPane(0, 100);
interval = new UINumberDragPane(1, 6);
intervalLegend = new LegendGradientBar();
interval.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
Double num = interval.updateBean();
intervalLegend.refreshColorSelectionBtnNum(num.intValue());
}
});
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
Component[][] components = new Component[][]{
{null, null},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-heatradius")), this.radius},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-heatmaxValue")), this.maxValue},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-heatbgOpacity")), this.bgOpacity},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-heatinterval")), this.interval},
new Component[]{null, this.intervalLegend}
};
JPanel sizePane = TableLayout4VanChartHelper.createGapTableLayoutPane(components, new double[]{p, p, p, p, p, p, p}, new double[]{p, f});
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-heatMapExpand"), sizePane);
}
}

198
src/com/fr/plugin/lzljgdmap/ui/LzljMapStyleLabelsPane.java

@ -0,0 +1,198 @@
package com.fr.plugin.lzljgdmap.ui;
import com.fr.chart.base.TextAttr;
import com.fr.design.gui.ibutton.UIButtonGroup;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itextarea.UITextArea;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.chart.gui.style.ChartTextAttrPane;
import com.fr.design.style.color.ColorSelectBox;
import com.fr.extended.chart.ExtendedScrollPane;
import com.fr.general.FRFont;
import com.fr.json.JSONObject;
import com.fr.plugin.lzljgdmap.LzljMapChart;
import com.fr.van.chart.designer.TableLayout4VanChartHelper;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
/**
* @author fr.open
*/
public class LzljMapStyleLabelsPane extends ExtendedScrollPane<LzljMapChart> {
private UICheckBox showPointLabel;
private ColorSelectBox labelBgColor;
private UIButtonGroup<Integer> labelType;
private UICheckBox showLayerType;
private UICheckBox showDataType;
private UICheckBox showName;
private UICheckBox showLng;
private UICheckBox showLat;
private UICheckBox showDesc;
private UITextArea labelJsPane;
private CardLayout cardLayout;
private ChartTextAttrPane textAttrPane;
@Override
protected JPanel createContentPane() {
return new ContentPane();
}
@Override
public void populateBean(LzljMapChart chart) {
JSONObject labelConf = chart.getLabelConf();
this.showPointLabel.setSelected(labelConf.getBoolean("showPointLabel"));
this.labelBgColor.setSelectObject(MapUtil.toColor(labelConf.getString("labelBgColor")));
this.labelType.setSelectedItem(labelConf.getInt("labelType"));
this.showLayerType.setSelected(labelConf.getBoolean("showLayerType"));
this.showDataType.setSelected(labelConf.getBoolean("showDataType"));
this.showName.setSelected(labelConf.getBoolean("showName"));
this.showLng.setSelected(labelConf.getBoolean("showLng"));
this.showLat.setSelected(labelConf.getBoolean("showLat"));
this.showDesc.setSelected(labelConf.getBoolean("showDesc"));
labelJsPane.setText(labelConf.getString("labelJsPane"));
FRFont labelFont = FRFont.getInstance(labelConf.getString("labelfamily"),
labelConf.getInt("labelstyle"),
labelConf.getInt("labelsize"),
MapUtil.toColor(labelConf.getString("labelcolor")));
this.textAttrPane.populate(labelFont);
}
@Override
public void updateBean(LzljMapChart chart) {
JSONObject labelConf = JSONObject.create();
labelConf.put("showPointLabel", this.showPointLabel.isSelected());
labelConf.put("labelBgColor", MapUtil.toHex(this.labelBgColor.getSelectObject()));
labelConf.put("labelType", this.labelType.getSelectedItem());
labelConf.put("showLayerType", this.showLayerType.isSelected());
labelConf.put("showDataType", this.showDataType.isSelected());
labelConf.put("showName", this.showName.isSelected());
labelConf.put("showLng", this.showLng.isSelected());
labelConf.put("showLat", this.showLat.isSelected());
labelConf.put("showDesc", this.showDesc.isSelected());
labelConf.put("labelJsPane", this.labelJsPane.getText());
TextAttr labelAttr = this.textAttrPane.update();
labelConf.put("labelsize", labelAttr.getFRFont().getSize());
labelConf.put("labelstyle", labelAttr.getFRFont().getStyle());
labelConf.put("labelfamily", labelAttr.getFRFont().getFamily());
labelConf.put("labelcolor", MapUtil.toHex(labelAttr.getFRFont().getForeground()));
chart.setLabelConf(labelConf);
}
@Override
protected String title4PopupWindow() {
return Toolkit.i18nText("Plugin-LzljMap-labelstitle");
}
private class ContentPane extends JPanel {
public ContentPane() {
initComponents();
}
private void initComponents() {
this.setLayout(new BorderLayout());
JPanel toolContentPane = createLabelContentPane();
JPanel textStylePane = createLabelTextStylePane();
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f};
double[] rowSize = {p, p, p, p};
Component[][] acomponents = new Component[][]{
new Component[]{showPointLabel},
new Component[]{toolContentPane},
new Component[]{textStylePane}
};
JPanel panel = TableLayoutHelper.createTableLayoutPane(acomponents, rowSize, columnSize);
this.add(panel, BorderLayout.CENTER);
this.setVisible(true);
}
}
private JPanel createLabelContentPane() {
showPointLabel = new UICheckBox(Toolkit.i18nText("Plugin-LzljMap-showPointLabel"));
labelBgColor = new ColorSelectBox(100);
labelType = new UIButtonGroup<Integer>(new String[]{
Toolkit.i18nText("Plugin-LzljMap-labelTypeCheck"),
Toolkit.i18nText("Plugin-LzljMap-labelTypeJS")
},
new Integer[]{1, 2}
);
labelType.setSelectedItem(1);
showLayerType = new UICheckBox(Toolkit.i18nText("Plugin-LzljMap-showLayerType"));
showDataType = new UICheckBox(Toolkit.i18nText("Plugin-LzljMap-showDataType"));
showName = new UICheckBox(Toolkit.i18nText("Plugin-LzljMap-showName"));
showLng = new UICheckBox(Toolkit.i18nText("Plugin-LzljMap-showLng"));
showLat = new UICheckBox(Toolkit.i18nText("Plugin-LzljMap-showLat"));
showDesc = new UICheckBox(Toolkit.i18nText("Plugin-LzljMap-showDesc"));
labelJsPane = new UITextArea(6, 6);
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
Component[][] compLabel = new Component[][]{
{null, null},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-labelBgColor")), this.labelBgColor},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-labelType")), this.labelType}
};
JPanel labelTypePane = TableLayout4VanChartHelper.createGapTableLayoutPane(compLabel, new double[]{p, p, p, p}, new double[]{p, f});
Component[][] compCheck = new Component[][]{
new Component[]{showLayerType, showDataType},
new Component[]{showName, showLng},
new Component[]{showLat, showDesc}
};
final JPanel checkPane = TableLayout4VanChartHelper.createGapTableLayoutPane(compCheck, new double[]{p, p, p, p}, new double[]{p, f});
final JPanel cardPane = new JPanel(this.cardLayout = new CardLayout()){
@Override
public Dimension getPreferredSize() {
if (null != labelType.getSelectedItem() && labelType.getSelectedItem() == 2) {
return labelJsPane.getPreferredSize();
} else {
return checkPane.getPreferredSize();
}
}
};
cardPane.add(checkPane, "check");
cardPane.add(labelJsPane, "js");
this.cardLayout.show(cardPane, "check");
labelType.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent var1x) {
if (labelType.getSelectedItem() == 1) {
cardLayout.show(cardPane, "check");
} else {
cardLayout.show(cardPane, "js");
}
}
});
Component[][] comp = new Component[][]{
new Component[]{labelTypePane},
new Component[]{cardPane}
};
JPanel pane = TableLayout4VanChartHelper.createGapTableLayoutPane(comp, new double[]{p, p, p}, new double[]{f});
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-labelAlignExpand"), pane);
}
private JPanel createLabelTextStylePane() {
this.textAttrPane = new ChartTextAttrPane();
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-LabelsTextStyle"), this.textAttrPane);
}
}

84
src/com/fr/plugin/lzljgdmap/ui/LzljMapStyleOtherPane.java

@ -0,0 +1,84 @@
package com.fr.plugin.lzljgdmap.ui;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.extended.chart.ExtendedScrollPane;
import com.fr.plugin.lzljgdmap.LzljMapChart;
import com.fr.van.chart.designer.TableLayout4VanChartHelper;
import javax.swing.*;
import java.awt.*;
public class LzljMapStyleOtherPane extends ExtendedScrollPane<LzljMapChart> {
private LzljMapHyperLink hyperLink;
private LzljMapPointCondListPane pointCondListPane;
@Override
protected JPanel createContentPane() {
return new ContentPane();
}
@Override
public void populateBean(LzljMapChart chart) {
hyperLink.populateBean(chart);
pointCondListPane.populateStyle(chart);
}
@Override
public void updateBean(LzljMapChart chart) {
hyperLink.updateBean(chart);
pointCondListPane.updateStyle(chart);
}
@Override
protected String title4PopupWindow() {
return Toolkit.i18nText("Plugin-LzljMap-otherstitle");
}
private class ContentPane extends JPanel {
public ContentPane() {
initComponents();
}
private void initComponents() {
this.setLayout(new BorderLayout());
JPanel linkPane = createLinkPane();
JPanel pointCondPane = createPointStyleCondPane();
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f};
double[] rowSize = {p, p, p};
Component[][] acomponents = new Component[][]{
new Component[]{linkPane},
new Component[]{pointCondPane}
};
JPanel panel = TableLayoutHelper.createTableLayoutPane(acomponents,rowSize,columnSize);
this.add(panel,BorderLayout.CENTER);
this.setVisible(true);
}
}
private JPanel createLinkPane() {
this.hyperLink = new LzljMapHyperLink();
Component[][] components = new Component[][]{
new Component[]{hyperLink}
};
double p = TableLayout.PREFERRED;
double[] columnSize = {TableLayout.FILL};
double[] rowSize = {p, p};
JPanel panel = TableLayout4VanChartHelper.createGapTableLayoutPane(components, rowSize, columnSize);
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-LinkExpand"), panel);
}
private JPanel createPointStyleCondPane() {
this.pointCondListPane = new LzljMapPointCondListPane();
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-pointStyleCondExpand"), this.pointCondListPane);
}
}

39
src/com/fr/plugin/lzljgdmap/ui/LzljMapStylePane.java

@ -0,0 +1,39 @@
package com.fr.plugin.lzljgdmap.ui;
import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.extended.chart.AbstractExtendedStylePane;
import com.fr.extended.chart.ExtendedScrollPane;
import com.fr.plugin.lzljgdmap.LzljMapChart;
import java.util.ArrayList;
import java.util.List;
/**
* @author fr.open
* @date 2022/8/19
*/
public class LzljMapStylePane extends AbstractExtendedStylePane<LzljMapChart> {
private AttributeChangeListener attributeChangeListener;
public LzljMapStylePane(){
super();
}
public LzljMapStylePane(AttributeChangeListener attributeChangeListener){
super(attributeChangeListener);
}
@Override
protected List<ExtendedScrollPane<LzljMapChart>> initPaneList() {
List<ExtendedScrollPane<LzljMapChart>> list = new ArrayList<ExtendedScrollPane<LzljMapChart>>();
list.add(new LzljMapStyleTitlePane());
list.add(new LzljMapStyleBaseMapPane());
list.add(new LzljMapStylePointMapPane());
list.add(new LzljMapStyleHeatMapPane());
list.add(new LzljMapStyleToolsPane());
list.add(new LzljMapStyleLabelsPane());
list.add(new LzljMapStyleTipsPane());
list.add(new LzljMapStyleOtherPane());
return list;
}
}

167
src/com/fr/plugin/lzljgdmap/ui/LzljMapStylePointMapPane.java

@ -0,0 +1,167 @@
package com.fr.plugin.lzljgdmap.ui;
import com.fr.design.gui.frpane.UINumberDragPane;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.ispinner.UISpinner;
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.extended.chart.ExtendedScrollPane;
import com.fr.json.JSONObject;
import com.fr.plugin.lzljgdmap.LzljMapChart;
import com.fr.van.chart.designer.TableLayout4VanChartHelper;
import javax.swing.*;
import java.awt.*;
/**
* @author fr.open
*/
public class LzljMapStylePointMapPane extends ExtendedScrollPane<LzljMapChart> {
private UISpinner pointSize;
private ImageChooserPane pointPane;
//private UICheckBox showCluster;
private UISpinner clusterMaxZoom;
private UISpinner clusterPointSize;
private ColorSelectBox clusterBorderColor;
private ColorSelectBox clusterFillColor;
private ColorSelectBox clusterTextColor;
private UINumberDragPane clusterBgOpacity;
@Override
protected JPanel createContentPane() {
return new ContentPane();
}
@Override
public void populateBean(LzljMapChart chart) {
JSONObject pointConf = chart.getPointConf();
this.pointSize.setValue(pointConf.getDouble("pointSize"));
ImageEntity imgEnt = new ImageEntity();
imgEnt.setImagestr(pointConf.getString("pointimg"));
imgEnt.setImagetype(pointConf.getString("pointimgtype"));
imgEnt.setWidth(pointConf.getInt("pointimgw"));
imgEnt.setHeight(pointConf.getInt("pointimgh"));
this.pointPane.populateBean(imgEnt);
this.clusterMaxZoom.setValue(pointConf.getDouble("clusterMaxZoom"));
this.clusterPointSize.setValue(pointConf.getDouble("clusterPointSize"));
this.clusterBorderColor.setSelectObject(MapUtil.toColor(pointConf.getString("clusterBorderColor")));
this.clusterFillColor.setSelectObject(MapUtil.toColor(pointConf.getString("clusterFillColor")));
this.clusterTextColor.setSelectObject(MapUtil.toColor(pointConf.getString("clusterTextColor")));
this.clusterBgOpacity.populateBean(pointConf.getDouble("clusterBgOpacity"));
}
@Override
public void updateBean(LzljMapChart chart) {
JSONObject pointConf = JSONObject.create();
pointConf.put("pointSize", this.pointSize.getValue());
ImageEntity imgEnt = this.pointPane.updateBean();
if (null != imgEnt) {
pointConf.put("pointimg", imgEnt.getImagestr());
pointConf.put("pointimgtype", imgEnt.getImagetype());
pointConf.put("pointimgw", imgEnt.getWidth());
pointConf.put("pointimgh", imgEnt.getHeight());
}
pointConf.put("clusterMaxZoom", this.clusterMaxZoom.getValue());
pointConf.put("clusterPointSize", this.clusterPointSize.getValue());
pointConf.put("clusterBorderColor", MapUtil.toHex(this.clusterBorderColor.getSelectObject()));
pointConf.put("clusterFillColor", MapUtil.toHex(this.clusterFillColor.getSelectObject()));
pointConf.put("clusterTextColor", MapUtil.toHex(this.clusterTextColor.getSelectObject()));
pointConf.put("clusterBgOpacity", this.clusterBgOpacity.updateBean());
chart.setPointConf(pointConf);
}
@Override
protected String title4PopupWindow() {
return Toolkit.i18nText("Plugin-LzljMap-pointtitle");
}
private class ContentPane extends JPanel {
public ContentPane() {
initComponents();
}
private void initComponents() {
this.setLayout(new BorderLayout());
JPanel pointContentPane = createPointContentPane();
JPanel clusterPointPane = createClusterPointContentPane();
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f};
double[] rowSize = {p, p, p};
Component[][] acomponents = new Component[][]{
new Component[]{pointContentPane},
new Component[]{clusterPointPane}
};
JPanel panel = TableLayoutHelper.createTableLayoutPane(acomponents, rowSize, columnSize);
this.add(panel, BorderLayout.CENTER);
this.setVisible(true);
}
}
private JPanel createPointContentPane() {
pointSize = new UISpinner(1, 200, 1, 32);
pointPane = new ImageChooserPane();
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
Component[][] components = new Component[][]{
{null, null},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-pointSize")), this.pointSize}
};
JPanel sizePane = TableLayout4VanChartHelper.createGapTableLayoutPane(components, new double[]{p, p, p}, new double[]{p, f});
Component[][] comp1 = new Component[][]{
new Component[]{sizePane},
new Component[]{pointPane}
};
JPanel pane = TableLayout4VanChartHelper.createGapTableLayoutPane(comp1, new double[]{p, p, p}, new double[]{f});
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-pointMapExpand"), pane);
}
private JPanel createClusterPointContentPane() {
clusterMaxZoom = new UISpinner(1, 30, 1, 18);
clusterPointSize = new UISpinner(1, 200, 1, 64);
clusterBorderColor = new ColorSelectBox(100);
clusterFillColor = new ColorSelectBox(100);
clusterTextColor = new ColorSelectBox(100);
clusterBgOpacity = new UINumberDragPane(0, 100);
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
Component[][] components = new Component[][]{
{null, null},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-clusterMaxZoom")), this.clusterMaxZoom},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-pointSize")), this.clusterPointSize},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-clusterBorderColor")), this.clusterBorderColor},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-clusterFillColor")), this.clusterFillColor},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-clusterTextColor")), this.clusterTextColor},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-clusterBgOpacity")), this.clusterBgOpacity}
};
JPanel sizePane = TableLayout4VanChartHelper.createGapTableLayoutPane(components, new double[]{p, p, p, p, p, p, p, p}, new double[]{p, f});
Component[][] comp1 = new Component[][]{
new Component[]{sizePane}
};
JPanel pane = TableLayout4VanChartHelper.createGapTableLayoutPane(comp1, new double[]{p, p, p}, new double[]{f});
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-clusterPointMapExpand"), pane);
}
}

163
src/com/fr/plugin/lzljgdmap/ui/LzljMapStyleTipsPane.java

@ -0,0 +1,163 @@
package com.fr.plugin.lzljgdmap.ui;
import com.fr.chart.base.TextAttr;
import com.fr.design.gui.frpane.UINumberDragPane;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.chart.gui.style.ChartTextAttrPane;
import com.fr.design.style.color.ColorSelectBox;
import com.fr.extended.chart.ExtendedScrollPane;
import com.fr.general.FRFont;
import com.fr.json.JSONObject;
import com.fr.plugin.lzljgdmap.LzljMapChart;
import com.fr.van.chart.designer.TableLayout4VanChartHelper;
import javax.swing.*;
import java.awt.*;
/**
* @author fr.open
*/
public class LzljMapStyleTipsPane extends ExtendedScrollPane<LzljMapChart> {
private UICheckBox showPointTips;
private ColorSelectBox tipBgColor;
private UINumberDragPane tipBgOpacity;
private UICheckBox showLayerType;
private UICheckBox showDataType;
private UICheckBox showName;
private UICheckBox showLng;
private UICheckBox showLat;
private UICheckBox showDesc;
private ChartTextAttrPane textAttrPane;
@Override
protected JPanel createContentPane() {
return new ContentPane();
}
@Override
public void populateBean(LzljMapChart chart) {
JSONObject tipsConf = chart.getTipsConf();
this.showPointTips.setSelected(tipsConf.getBoolean("showPointTips"));
this.tipBgColor.setSelectObject(MapUtil.toColor(tipsConf.getString("tipBgColor")));
this.tipBgOpacity.populateBean(tipsConf.getDouble("tipBgOpacity"));
this.showLayerType.setSelected(tipsConf.getBoolean("showLayerType"));
this.showDataType.setSelected(tipsConf.getBoolean("showDataType"));
this.showName.setSelected(tipsConf.getBoolean("showName"));
this.showLng.setSelected(tipsConf.getBoolean("showLng"));
this.showLat.setSelected(tipsConf.getBoolean("showLat"));
this.showDesc.setSelected(tipsConf.getBoolean("showDesc"));
FRFont tipFont = FRFont.getInstance(tipsConf.getString("tipfamily"),
tipsConf.getInt("tipstyle"),
tipsConf.getInt("tipsize"),
MapUtil.toColor(tipsConf.getString("tipcolor")));
this.textAttrPane.populate(tipFont);
}
@Override
public void updateBean(LzljMapChart chart) {
JSONObject tipsConf = JSONObject.create();
tipsConf.put("showPointTips", this.showPointTips.isSelected());
tipsConf.put("tipBgColor", MapUtil.toHex(this.tipBgColor.getSelectObject()));
tipsConf.put("tipBgOpacity", this.tipBgOpacity.updateBean());
tipsConf.put("showLayerType", this.showLayerType.isSelected());
tipsConf.put("showDataType", this.showDataType.isSelected());
tipsConf.put("showName", this.showName.isSelected());
tipsConf.put("showLng", this.showLng.isSelected());
tipsConf.put("showLat", this.showLat.isSelected());
tipsConf.put("showDesc", this.showDesc.isSelected());
TextAttr labelAttr = this.textAttrPane.update();
tipsConf.put("tipsize", labelAttr.getFRFont().getSize());
tipsConf.put("tipstyle", labelAttr.getFRFont().getStyle());
tipsConf.put("tipfamily", labelAttr.getFRFont().getFamily());
tipsConf.put("tipcolor", MapUtil.toHex(labelAttr.getFRFont().getForeground()));
chart.setTipsConf(tipsConf);
}
@Override
protected String title4PopupWindow() {
return Toolkit.i18nText("Plugin-LzljMap-tipstitle");
}
private class ContentPane extends JPanel {
public ContentPane() {
initComponents();
}
private void initComponents() {
this.setLayout(new BorderLayout());
JPanel contentPane = createTipsContentPane();
JPanel textStylePane = createTipsTextStylePane();
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f};
double[] rowSize = {p, p, p, p};
Component[][] comps = new Component[][]{
new Component[]{showPointTips},
new Component[]{contentPane},
new Component[]{textStylePane}
};
JPanel panel = TableLayoutHelper.createTableLayoutPane(comps, rowSize, columnSize);
this.add(panel, BorderLayout.CENTER);
this.setVisible(true);
}
}
private JPanel createTipsContentPane() {
showPointTips = new UICheckBox(Toolkit.i18nText("Plugin-LzljMap-showPointTips"));
tipBgColor = new ColorSelectBox(100);
tipBgOpacity = new UINumberDragPane(0, 100);
showLayerType = new UICheckBox(Toolkit.i18nText("Plugin-LzljMap-showLayerType"));
showDataType = new UICheckBox(Toolkit.i18nText("Plugin-LzljMap-showDataType"));
showName = new UICheckBox(Toolkit.i18nText("Plugin-LzljMap-showName"));
showLng = new UICheckBox(Toolkit.i18nText("Plugin-LzljMap-showLng"));
showLat = new UICheckBox(Toolkit.i18nText("Plugin-LzljMap-showLat"));
showDesc = new UICheckBox(Toolkit.i18nText("Plugin-LzljMap-showDesc"));
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
Component[][] compLabel = new Component[][]{
{null, null},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-tipBgColor")), this.tipBgColor},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-tipBgOpacity")), this.tipBgOpacity}
};
JPanel bgPane = TableLayout4VanChartHelper.createGapTableLayoutPane(compLabel, new double[]{p, p, p}, new double[]{p, f});
Component[][] compCheck = new Component[][]{
new Component[]{showLayerType, showDataType},
new Component[]{showName, showLng},
new Component[]{showLat, showDesc}
};
JPanel checkPane = TableLayout4VanChartHelper.createGapTableLayoutPane(compCheck, new double[]{p, p, p, p}, new double[]{p, f});
Component[][] comp = new Component[][]{
new Component[]{bgPane},
new Component[]{checkPane}
};
JPanel pane = TableLayout4VanChartHelper.createGapTableLayoutPane(comp, new double[]{p, p, p}, new double[]{f});
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-tipsAlignExpand"), pane);
}
private JPanel createTipsTextStylePane() {
this.textAttrPane = new ChartTextAttrPane();
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-tipsTextStyle"), this.textAttrPane);
}
}

142
src/com/fr/plugin/lzljgdmap/ui/LzljMapStyleTitlePane.java

@ -0,0 +1,142 @@
package com.fr.plugin.lzljgdmap.ui;
import com.fr.base.BaseUtils;
import com.fr.chart.base.TextAttr;
import com.fr.design.formula.TinyFormulaPane;
import com.fr.design.gui.frpane.UINumberDragPane;
import com.fr.design.gui.ibutton.UIButtonGroup;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.chart.PaneTitleConstants;
import com.fr.design.mainframe.chart.gui.style.ChartTextAttrPane;
import com.fr.design.style.color.ColorSelectBox;
import com.fr.extended.chart.ExtendedScrollPane;
import com.fr.general.FRFont;
import com.fr.json.JSONObject;
import com.fr.plugin.lzljgdmap.LzljMapChart;
import com.fr.van.chart.designer.TableLayout4VanChartHelper;
import javax.swing.*;
import java.awt.*;
public class LzljMapStyleTitlePane extends ExtendedScrollPane<LzljMapChart> {
private UICheckBox isTitleVisable;
private ColorSelectBox titleBgColor;
private UINumberDragPane titleBgOpacity;
private TinyFormulaPane titleName;
private UIButtonGroup<Integer> titleAlignment;
private ChartTextAttrPane textAttrPane;
@Override
protected JPanel createContentPane() {
return new ContentPane();
}
@Override
public void populateBean(LzljMapChart chart) {
JSONObject titleConf = chart.getTitleConf();
this.isTitleVisable.setSelected(titleConf.getBoolean("titlevisiable"));
this.titleBgColor.setSelectObject(MapUtil.toColor(titleConf.getString("titlebgcolor")));
this.titleBgOpacity.populateBean(titleConf.getDouble("titleBgOpacity"));
this.titleName.populateBean(titleConf.getString("titlename"));
this.titleAlignment.setSelectedItem(titleConf.getInt("titleposition"));
FRFont titleFont = FRFont.getInstance(titleConf.getString("titlefamily"),
titleConf.getInt("titlestyle"),
titleConf.getInt("titlesize"),
MapUtil.toColor(titleConf.getString("titlecolor")));
this.textAttrPane.populate(titleFont);
}
@Override
public void updateBean(LzljMapChart chart) {
JSONObject titleConf = JSONObject.create();
titleConf.put("titlevisiable", this.isTitleVisable.isSelected());
titleConf.put("titlebgcolor", MapUtil.toHex(this.titleBgColor.getSelectObject()));
titleConf.put("titleBgOpacity", this.titleBgOpacity.updateBean());
titleConf.put("titlename", this.titleName.updateBean());
titleConf.put("titleposition", titleAlignment.getSelectedItem());
TextAttr titleAttr = this.textAttrPane.update();
titleConf.put("titlesize", titleAttr.getFRFont().getSize());
titleConf.put("titlestyle", titleAttr.getFRFont().getStyle());
titleConf.put("titlefamily", titleAttr.getFRFont().getFamily());
titleConf.put("titlecolor", MapUtil.toHex(titleAttr.getFRFont().getForeground()));
chart.setTitleConf(titleConf);
}
@Override
protected String title4PopupWindow() {
return PaneTitleConstants.CHART_STYLE_TITLE_TITLE;
}
private class ContentPane extends JPanel {
public ContentPane() {
initComponents();
}
private void initComponents() {
this.setLayout(new BorderLayout());
// 内容
JPanel titleContentPane = createTitleContentPane();
// 样式
JPanel stylePane = createTitleStylePane();
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f};
double[] rowSize = {p, p, p, p};
Component[][] acomponents = new Component[][]{
new Component[]{isTitleVisable},
new Component[]{titleContentPane},
new Component[]{stylePane}
} ;
JPanel panel = TableLayoutHelper.createTableLayoutPane(acomponents,rowSize,columnSize);
this.add(panel,BorderLayout.CENTER);
this.setVisible(true);
}
}
private JPanel createTitleContentPane(){
// 内容
this.isTitleVisable = new UICheckBox(Toolkit.i18nText("Plugin-LzljMap-isVisiableTitle"));
this.titleBgColor = new ColorSelectBox(100);
this.titleBgOpacity = new UINumberDragPane(0, 100);
this.titleName = new TinyFormulaPane();
// 位置
Icon[] titlePositonIcons = new Icon[]{BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_left_normal.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_center_normal.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_right_normal.png")};
Integer[] titlePositionVal = new Integer[]{2, 0, 4};
this.titleAlignment = new UIButtonGroup(titlePositonIcons, titlePositionVal);
Component[][] components = new Component[][]{
{null, null},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-titleBgColor")), this.titleBgColor},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-titleBgOpacity")), this.titleBgOpacity},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-TitleText")), this.titleName},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-TitlePosition"), 2), this.titleAlignment}
} ;
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-TitleExpand"), components);
}
private JPanel createTitleStylePane() {
this.textAttrPane = new ChartTextAttrPane();
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-TitleStyle"), this.textAttrPane);
}
}

239
src/com/fr/plugin/lzljgdmap/ui/LzljMapStyleToolsPane.java

@ -0,0 +1,239 @@
package com.fr.plugin.lzljgdmap.ui;
import com.fr.base.BaseUtils;
import com.fr.chart.base.TextAttr;
import com.fr.design.gui.frpane.UINumberDragPane;
import com.fr.design.gui.frpane.UINumberDragPaneWithPercent;
import com.fr.design.gui.ibutton.UIButtonGroup;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.chart.gui.style.ChartTextAttrPane;
import com.fr.design.style.color.ColorSelectBox;
import com.fr.extended.chart.ExtendedScrollPane;
import com.fr.general.FRFont;
import com.fr.json.JSONObject;
import com.fr.plugin.lzljgdmap.LzljMapChart;
import com.fr.van.chart.designer.TableLayout4VanChartHelper;
import javax.swing.*;
import java.awt.*;
/**
* @author fr.open
*/
public class LzljMapStyleToolsPane extends ExtendedScrollPane<LzljMapChart> {
private ColorSelectBox toolBgColor;
private ColorSelectBox toolBtnColor;
private UINumberDragPane toolBgOpacity;
private ChartTextAttrPane textAttrPane;
private ColorSelectBox detailBgColor;
private ColorSelectBox detailTitleBgColor;
private UINumberDragPane detailBgOpacity;
private UICheckBox showRegion;
private UICheckBox showArea;
private UICheckBox showCounty;
private UICheckBox showName;
private UICheckBox showLayerType;
private UICheckBox showDataType;
private UICheckBox showLng;
private UICheckBox showLat;
private UICheckBox showVal;
private UICheckBox showDesc;
private ChartTextAttrPane detailTextAttrPane;
@Override
protected JPanel createContentPane() {
return new ContentPane();
}
@Override
public void populateBean(LzljMapChart chart) {
JSONObject toolConf = chart.getToolConf();
this.toolBgColor.setSelectObject(MapUtil.toColor(toolConf.getString("toolBgColor")));
this.toolBtnColor.setSelectObject(MapUtil.toColor(toolConf.getString("toolBtnColor")));
this.toolBgOpacity.populateBean(toolConf.getDouble("toolBgOpacity"));
FRFont toolFont = FRFont.getInstance(toolConf.getString("toolfamily"),
toolConf.getInt("toolstyle"),
toolConf.getInt("toolsize"),
MapUtil.toColor(toolConf.getString("toolcolor")));
this.textAttrPane.populate(toolFont);
this.detailBgColor.setSelectObject(MapUtil.toColor(toolConf.getString("detailBgColor")));
this.detailTitleBgColor.setSelectObject(MapUtil.toColor(toolConf.getString("detailTitleBgColor")));
this.detailBgOpacity.populateBean(toolConf.getDouble("detailBgOpacity"));
this.showRegion.setSelected(toolConf.getBoolean("showRegion"));
this.showArea.setSelected(toolConf.getBoolean("showArea"));
this.showCounty.setSelected(toolConf.getBoolean("showCounty"));
this.showName.setSelected(toolConf.getBoolean("showName"));
this.showLayerType.setSelected(toolConf.getBoolean("showLayerType"));
this.showDataType.setSelected(toolConf.getBoolean("showDataType"));
this.showLng.setSelected(toolConf.getBoolean("showLng"));
this.showLat.setSelected(toolConf.getBoolean("showLat"));
this.showVal.setSelected(toolConf.getBoolean("showVal"));
this.showDesc.setSelected(toolConf.getBoolean("showDesc"));
FRFont detailFont = FRFont.getInstance(toolConf.getString("detailfamily"),
toolConf.getInt("detailstyle"),
toolConf.getInt("detailsize"),
MapUtil.toColor(toolConf.getString("detailcolor")));
this.detailTextAttrPane.populate(detailFont);
}
@Override
public void updateBean(LzljMapChart chart) {
JSONObject toolConf = JSONObject.create();
toolConf.put("toolBgColor", MapUtil.toHex(this.toolBgColor.getSelectObject()));
toolConf.put("toolBtnColor", MapUtil.toHex(this.toolBtnColor.getSelectObject()));
toolConf.put("toolBgOpacity", this.toolBgOpacity.updateBean());
TextAttr toolAttr = this.textAttrPane.update();
toolConf.put("toolsize", toolAttr.getFRFont().getSize());
toolConf.put("toolstyle", toolAttr.getFRFont().getStyle());
toolConf.put("toolfamily", toolAttr.getFRFont().getFamily());
toolConf.put("toolcolor", MapUtil.toHex(toolAttr.getFRFont().getForeground()));
toolConf.put("detailBgColor", MapUtil.toHex(this.detailBgColor.getSelectObject()));
toolConf.put("detailTitleBgColor", MapUtil.toHex(this.detailTitleBgColor.getSelectObject()));
toolConf.put("detailBgOpacity", this.detailBgOpacity.updateBean());
toolConf.put("showRegion", this.showRegion.isSelected());
toolConf.put("showArea", this.showArea.isSelected());
toolConf.put("showCounty", this.showCounty.isSelected());
toolConf.put("showName", this.showName.isSelected());
toolConf.put("showLayerType", this.showLayerType.isSelected());
toolConf.put("showDataType", this.showDataType.isSelected());
toolConf.put("showLng", this.showLng.isSelected());
toolConf.put("showLat", this.showLat.isSelected());
toolConf.put("showVal", this.showVal.isSelected());
toolConf.put("showDesc", this.showDesc.isSelected());
TextAttr detailAttr = this.detailTextAttrPane.update();
toolConf.put("detailsize", detailAttr.getFRFont().getSize());
toolConf.put("detailstyle", detailAttr.getFRFont().getStyle());
toolConf.put("detailfamily", detailAttr.getFRFont().getFamily());
toolConf.put("detailcolor", MapUtil.toHex(detailAttr.getFRFont().getForeground()));
chart.setToolConf(toolConf);
}
@Override
protected String title4PopupWindow() {
return Toolkit.i18nText("Plugin-LzljMap-toolstitle");
}
private class ContentPane extends JPanel {
public ContentPane() {
initComponents();
}
private void initComponents() {
this.setLayout(new BorderLayout());
JPanel toolContentPane = createToolContentPane();
JPanel detailContentPane = createDetailContentPane();
JPanel columnsPane = createColumnsContentPane();
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f};
double[] rowSize = {p, p, p, p};
Component[][] acomponents = new Component[][]{
new Component[]{toolContentPane},
new Component[]{detailContentPane},
new Component[]{columnsPane}
};
JPanel panel = TableLayoutHelper.createTableLayoutPane(acomponents, rowSize, columnSize);
this.add(panel, BorderLayout.CENTER);
this.setVisible(true);
}
}
private JPanel createToolContentPane() {
this.toolBgColor = new ColorSelectBox(100);
this.toolBgOpacity = new UINumberDragPaneWithPercent(0, 100);
this.toolBtnColor = new ColorSelectBox(100);
this.textAttrPane = new ChartTextAttrPane();
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {p, f};
double[] rowSize = {p, p, p, p};
Component[][] components = new Component[][]{
{null, null},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-toolBgColor")), this.toolBgColor},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-toolBgOpacity")), this.toolBgOpacity},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-toolBtnColor")), this.toolBtnColor}
};
JPanel bgPane = TableLayoutHelper.createTableLayoutPane(components,rowSize,columnSize);
Component[][] comps = new Component[][]{
new Component[]{bgPane},
new Component[]{this.textAttrPane}
};
JPanel pane = TableLayoutHelper.createTableLayoutPane(comps, new double[]{p, p}, new double[]{p, f});
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-toolAlignExpand"), pane);
}
private JPanel createDetailContentPane() {
this.detailBgColor = new ColorSelectBox(100);
this.detailBgOpacity = new UINumberDragPaneWithPercent(0, 100);
this.detailTitleBgColor = new ColorSelectBox(100);
this.detailTextAttrPane = new ChartTextAttrPane();
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {p, f};
double[] rowSize = {p, p, p, p};
Component[][] components = new Component[][]{
{null, null},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-toolBgColor")), this.detailBgColor},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-toolBgOpacity")), this.detailBgOpacity},
new Component[]{new UILabel(Toolkit.i18nText("Plugin-LzljMap-detailTitleBgColor")), this.detailTitleBgColor}
};
JPanel bgPane = TableLayoutHelper.createTableLayoutPane(components,rowSize,columnSize);
Component[][] comps = new Component[][]{
new Component[]{bgPane},
new Component[]{this.detailTextAttrPane}
};
JPanel pane = TableLayoutHelper.createTableLayoutPane(comps, new double[]{p, p}, new double[]{p, f});
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-detailAlignExpand"), pane);
}
private JPanel createColumnsContentPane() {
showRegion = new UICheckBox(Toolkit.i18nText("Plugin_LzljMap_region"));
showArea = new UICheckBox(Toolkit.i18nText("Plugin_LzljMap_area"));
showCounty = new UICheckBox(Toolkit.i18nText("Plugin_LzljMap_county"));
showName = new UICheckBox(Toolkit.i18nText("Plugin_LzljMap_name"));
showLayerType = new UICheckBox(Toolkit.i18nText("Plugin_LzljMap_layertype"));
showDataType = new UICheckBox(Toolkit.i18nText("Plugin_LzljMap_datatype"));
showLng = new UICheckBox(Toolkit.i18nText("Plugin_LzljMap_lng"));
showLat = new UICheckBox(Toolkit.i18nText("Plugin_LzljMap_lat"));
showVal = new UICheckBox(Toolkit.i18nText("Plugin_LzljMap_val"));
showDesc = new UICheckBox(Toolkit.i18nText("Plugin_LzljMap_desc"));
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
Component[][] compCheck = new Component[][]{
new Component[]{showRegion, showArea},
new Component[]{showLayerType, showDataType},
new Component[]{showName, showVal},
new Component[]{showLng, showLat},
new Component[]{showDesc, showCounty}
};
JPanel checkPane = TableLayoutHelper.createTableLayoutPane(compCheck, new double[]{p, p, p, p, p, p}, new double[]{f, f});
return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Plugin-LzljMap-detailColumnsExpand"), checkPane);
}
}

94
src/com/fr/plugin/lzljgdmap/ui/MapUtil.java

@ -0,0 +1,94 @@
package com.fr.plugin.lzljgdmap.ui;
import java.awt.*;
import java.util.Map;
/**
* @author fr.open
*/
public class MapUtil {
public static String getString(Map map, String key) {
return getString(map, key, null);
}
public static String getString(Map map, String key, String def) {
if (null == map) {
return def;
}
if (null != map.get(key)) {
return map.get(key).toString();
} else {
return def;
}
}
public static Integer getInteger(Map map, String key) {
return getInteger(map, key, null);
}
public static Integer getInteger(Map map, String key, Integer def) {
if (null == map) {
return def;
}
if (null != map.get(key)) {
return Integer.parseInt(map.get(key).toString());
} else {
return def;
}
}
public static Double getDouble(Map map, String key) {
return getDouble(map, key, null);
}
public static Double getDouble(Map map, String key, Double def) {
if (null == map) {
return def;
}
if (null != map.get(key)) {
return Double.parseDouble(map.get(key).toString());
} else {
return def;
}
}
public static Boolean getBoolean(Map map, String key) {
return getBoolean(map, key, null);
}
public static Boolean getBoolean(Map map, String key, Boolean def) {
if (null == map) {
return def;
}
String s = getString(map, key);
if (null != s) {
if ("true".equals(s)) {
return true;
} else if ("false".equals(s)){
return false;
} else {
return def;
}
} else {
return def;
}
}
public static String toHex(Color c) {
if (null == c) {
return "transparent";
}
String hex = Integer.toHexString(c.getRGB());
if (hex.length() == 8) {
hex = "#" + hex.substring(2);
}
return hex;
}
public static Color toColor(String c) {
if (null != c && c.startsWith("#")) {
c = c.substring(1);
return new Color(Integer.parseInt(c, 16));
}
return null;
}
}

14
src/com/fr/plugin/lzljgdmap/vo/ClusterPointMapStyleJson.java

@ -0,0 +1,14 @@
package com.fr.plugin.lzljgdmap.vo;
/**
* @author fr.open
* @date 2022/8/25 18:35
* @description
*/
public class ClusterPointMapStyleJson extends CustomJsonObject {
private String tilte = CLUSTER_POINT_MAP_TITLE;
public String getTilte() {
return tilte;
}
}

23
src/com/fr/plugin/lzljgdmap/vo/CustomJsonObject.java

@ -0,0 +1,23 @@
package com.fr.plugin.lzljgdmap.vo;
import com.fr.json.JSONObject;
/**
* @author fr.open
* @date 2022/8/25 18:33
* @description
*/
public class CustomJsonObject {
private JSONObject obj = JSONObject.create();
public JSONObject get() {
return obj;
}
public void put(JSONObject obj) {
this.obj = obj;
}
public static final String POINT_MAP_TITLE = "pointmap";
public static final String CLUSTER_POINT_MAP_TITLE = "clusterpointmap";
}

14
src/com/fr/plugin/lzljgdmap/vo/PointMapStyleJson.java

@ -0,0 +1,14 @@
package com.fr.plugin.lzljgdmap.vo;
/**
* @author fr.open
* @date 2022/8/25 18:35
* @description
*/
public class PointMapStyleJson extends CustomJsonObject {
private String tilte = POINT_MAP_TITLE;
public String getTilte() {
return tilte;
}
}

307
src/com/fr/plugin/lzljgdmap/web/LzljMapChart.css

@ -0,0 +1,307 @@
.lzlj_gd_amap_chart_title {
position: absolute;
top: 0px;
left: 0px;
width: 100%;
background: rgba(255, 255, 255, 0.7);
color: #000000;
font-size: 12px;
font-family: sans-serif;
font-weight: bold;
font-style: normal;
text-align: center;
padding: 5px 10px;
}
.lzlj_amap_container {
position: absolute;
background: rgba(51, 51, 51, 0.7);
}
.lzlj_amap_container_hide {
position: absolute;
background: rgba(51, 51, 51, 0.9);
padding: 3px 10px;
color: #ffffff;
font-size: 12px;
font-family: sans-serif;
border-radius: 0px 10px 10px 0px;
cursor: pointer;
}
.lzlj_pos_left {
top: 50px;
left: 0px;
border-radius: 0px 10px 10px 0px;
}
.lzlj_amap_container .tools {
font-weight: bold;
padding: 5px 10px;
}
.lzlj_amap_container .row {
display: flex;
justify-content: space-between;
padding: 5px 10px;
}
.lzlj_amap_container .row .tool_circle {
padding: 2px 10px;
border-radius: 20px;
cursor: pointer;
width: 100%;
text-align: center;
}
.lzlj_amap_container .row .tool_circle_clear {
padding: 2px 10px;
cursor: pointer;
}
.lzlj_amap_container .row .tool_region {
padding: 2px 10px;
border-radius: 20px;
cursor: pointer;
width: 100%;
text-align: center;
}
.lzlj_amap_container .row .tool_region_clear {
padding: 2px 10px;
cursor: pointer;
}
.lzlj_amap_container .active {
background-color: #FF7F50;
border: #FF7F50 solid 1px;
}
.lzlj_amap_container .inactive {
border: #FF7F50 solid 1px;
background: transparent;
}
.lzlj_amap_container .filter_row {
padding: 10px;
}
.lzlj_amap_container .add_layer {
padding: 2px 10px;
border-radius: 20px;
cursor: pointer;
text-align: center;
}
.lzlj_amap_container .layer_active {
margin-top: 5px;
background-color: #FF7F50;
padding: 2px 10px;
border-radius: 20px;
}
.lzlj_amap_container .layer_inactive {
margin-top: 5px;
padding: 2px 10px;
border: #FF7F50 solid 1px;
border-radius: 20px;
}
.lzlj_amap_container .chart_type {
margin-top: 5px;
}
.lzlj_amap_container .data_type {
margin-top: 10px;
}
.lzlj_amap_container .close {
width: 16px;
height: 16px;
position: absolute;
right: 4px;
top: 4px;
cursor: pointer;
}
.lzlj_amap_container .legend_c {
display: flex;
flex-direction: column;
font-weight: bold;
padding: 5px 10px;
}
.lzlj_amap_container .legend_e {
display: flex;
align-items: center;
}
.lzlj_gd_amap_region {
position: absolute;
width: 300px;
top: 50px;
left: 100px;
background: rgba(255, 255, 255, 1);
z-index: 100;
}
.lzlj_gd_amap_region .ok {
position: absolute;
right: 10px;
top: 5px;
cursor: pointer;
padding: 2px 5px;
border-radius: 4px;
}
.lzlj_gd_amap_region .treebar {
height: 500px;
overflow: auto;
margin-top: 25px;
padding: 5px;
font-family: sans-serif;
font-size: 12px;
}
.lzlj_gd_amap_region .nodeBar {
clear: both;
height: 20px;
background: #ffffff;
}
.lzlj_gd_amap_region .nodeSplitor {
clear: both;
display: block;
width: 100%;
height: 1px;
margin-top: 1px;
margin-bottom: 3px;
border-bottom-style: solid;
border-bottom-width: 1px;
border-bottom-color: #cccccc;
}
.lzlj_gd_amap_region .nodeBarSelected {
clear: both;
height: 20px;
background: #d9d9d9;
}
.lzlj_gd_amap_region .nodeBarOver {
clear: both;
height: 20px;
}
.lzlj_gd_amap_region .nodeFlag {
float: left;
width: 12px;
height: 100%;
}
.lzlj_gd_amap_region .nodePlus {
float: left;
width: 16px;
height: 16px;
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAZFJREFUWEfll7FKA0EQhv+V3Kyk0UILRXwBQUFBbCwEtbfQRrDQFxBBLNUnsLQylZVpbLUQtRQbC30CUbS0iPhvYOTkIndnDDFs2GAWDm6XZf5v/50b5gwCDxNYHx0JMCAi26o67dMdY8wNyZ18zB8OiMgtgCmf4ulYJDOamYmILAM4UdUN51zJJ0QURevGmCNVPXDObdVi5wH2AOzmKX2BiIiq6qVzbu7fAFgA8fPWjEveHRCRMwB9JGdCAbwD6G02Z9rhgMYnDwZgrb1S1X6SE0GuoHsAROQOwHjK5sfkfRBAD4CXZD6S2vNAchLAR22t5SS01h6q6iKAGOR7GGNmVTUCcJHLgVj4muRaer1lgN8SrHtyoGMdiO80dCF6TQqRBClEIlJS1VHn3HwQgGZE2/oZegew1m7GPVuhUBiuVCrPfxVotL9YLA5Vq9UnAKckl+q2ZNbaBVU9B7BPMu4PvQ0R+eo387HrteXHAFa9KWcDlUmuZMp5PaGkPR/zDHFPspyP2ZG/Zp4P3jhccAc+AV1FhTChwafSAAAAAElFTkSuQmCC') 0px 0px no-repeat;
background-size: 100% 100%;
cursor: pointer;
}
.lzlj_gd_amap_region .nodeSub {
float: left;
width: 16px;
height: 16px;
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAUVJREFUWEftV7FKBDEUnMjuC2ytheIfCBYe2FlYaG+hjWChPyDCYan3BZZWWll5jbWFiKXYWOgXiOIPLDhZeLKyJ7txETwCe2BelYQwM5limBh0PKZjfkykgGkR6avqckh3jDH3JA99zB8OiMgDgF5I8joWyQZnYyMimwAuVXXPOXceUkSaprvGmDNVPXHOHYywfQHHAI58laGEiIiq6q1zbjUKiA5EB6IDf3JARB4BLNYC6aVazwCYAvBe7edrd55JLgH4GJ2NHUTW2lNVXQdQCvkeY8yKqqYAbry0LInvSO7Uz8cWEKM4OhAd+D8OWGv3y86WJMlcnudvoV5e4mRZNlsUxSuAK5IbrVFsrV1T1WsAA5JlPww2IvLVN33stlp+AWA7GHMTaEhyqxHnbURVPV8ILOKJ5NDHnMivWeCH/w7XuQOf+9M8MKmeDQ8AAAAASUVORK5CYII=') 0px 0px no-repeat;
background-size: 100% 100%;
cursor: pointer;
}
.lzlj_gd_amap_region .nodeLevel {
float: left;
height: 100%;
width: 6px;
}
.lzlj_gd_amap_region .nodeImg {
float: left;
width: 18px;
padding-left: 3px;
padding-top: 3px;
}
.lzlj_gd_amap_region .nodeCheck {
float: left;
width: 16px;
height: 16px;
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAKZJREFUWEftl8EJQjEQROeHsFUoWIrWYiFqKVby7UQPVjGEKAsqGi//kM/+w+w1YWZ47GF2QPAMwf5YXgAzOwLYA1h1pnMDcCbp+p/5IfAyP3Q2buVO3yHaAFcAm1rrrpRy6Rkk57xNKY0A7iTXb+02wMMfSM6yG2b2p68AIiACIiACIiACIiACiyMQXkq9s8fVcm/EoYdJzztgqtYs/X+quf8LD/AE20fQIQrJsZAAAAAASUVORK5CYII=') 0px 0px no-repeat;
background-size: 100% 100%;
}
.lzlj_gd_amap_region .nodeChecked {
float: left;
width: 16px;
height: 16px;
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAXNJREFUWEftlyFPw0AYhp9b1q+rQqGABBQJGAQhIUEwRQjBIHAofgjwUxAYxEj4A0NhCBIcAYFDova165FLumV0Y4y2W4Hs5LX3vU/fu699ayh5mJL1+X0AInIKHAPzBbvzApyrqqvfHZ8cSMRPChZOlzvrhUgDPAOLcRzXoyi6KRKkWq1uVyqVJvCqqgud2mkA6y6o6ljOhoj01Z8CTB34fw74vr9srb2w1r6HYVjvbeWxd0GtVluK47gBrAH3qro+MYAgCOba7bYT3wAegENVfZwUwKzv+w1r7dZX4g4k8xZ4ntc0xvjGmKNWq/WUekXPeJ53ZYxx+z3wyTv3ZwYQkVtgE7hT1T3gLSkaiMgVsPOdeC4HRGQFuARWrbXNMAx3gSgR3x9FPBdAsrgLAVw7AOBgVPHcAAMg3NTQPU9/zjOfgVQrdZxw032tNixDFAKQJ6RMAf6EA6WHUpfZy4vlSa+X92OSp8Wyrh1L/v8JTOkAH9paLjBtTnOxAAAAAElFTkSuQmCC') 0px 0px no-repeat;
background-size: 100% 100%;
}
.lzlj_gd_amap_region .nodeChecked_part {
float: left;
width: 16px;
height: 16px;
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAL5JREFUWEftl8ENwjAMRX+jyFOAxCiwSSQGATYJk8AmcGAKKwrICKoSOFRRinuwr22/X157+O2gPJ3yfswPgIj2ALYAFo3tXAEcmVny+/kw8Fq+a7y4jDsMIUqAC4BVznmTUjq3BPHer51zJwA3Zl6+s0uAu1xg5km+DSL6yp8/QIzxSV07IYT+kFUGDMAMmAEzYAbMgBlQN1DbA349V9UH/g2gXkqls+vVctGt+mPS8n2PzZqk/49dLvepAzwA9bAQMMgDzMEAAAAASUVORK5CYII=') 0px 0px no-repeat;
background-size: 100% 100%;
}
.lzlj_gd_amap_region .nodeTxt {
float: left;
height: 22px;
color: #000000;
padding-top: 2px;
}
.lzlj_gd_amap_data_list {
position: absolute;
right: 0px;
top: 0px;
height: 100%;
background-color: #ffffff;
}
.lzlj_gd_amap_data_list .list_title {
display: flex;
padding: 10px 10px;
padding-right: 17px;
background-color: #d9d9d9;
}
.lzlj_gd_amap_data_list .list_content_ul {
padding: 0px 10px;
margin: 0px;
overflow-y: scroll;
scrollbar-width: thin;
}
.lzlj_gd_amap_data_list .list_content_li {
display: flex;
padding: 10px 0px;
border-bottom: 1px solid #d9d9d9;
word-break: break-word;
}
.lzlj_gd_amap_data_list .close_list {
margin-left: 20px;
color: #0583f2;
cursor: pointer;
}
::-webkit-scrollbar {
width: 7px;
height: 7px;
background-color: #f5f5f5;
}
::-webkit-scrollbar-thumb {
border-radius: 10px;
box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1);
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1);
background-color: #c8c8c8;
}

1754
src/com/fr/plugin/lzljgdmap/web/LzljMapChartWrapper.js

File diff suppressed because it is too large Load Diff

3689
src/com/fr/plugin/lzljgdmap/web/jstree.js

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save