Browse Source

Merge pull request #3 in SL/plugin-iframe from ~PALIN/plugin-iframe:master to master

* commit '0888382ebc8e7824977b6721a91ea9877c8c9cca':
  改正
  修改
  按要求修改完善
  Signed-off-by: Palin <Palin@fanruan.com>
  modify
master
richie 6 years ago
parent
commit
2c67082d15
  1. 6
      build.xml
  2. 4
      pom.xml
  3. 8
      src/main/java/com/fr/plugin/form/widget/conf/RHIframeMarkInCell.java
  4. 6
      src/main/java/com/fr/plugin/form/widget/conf/RHIframeMarkInForm.java
  5. 37
      src/main/java/com/fr/plugin/form/widget/core/RHIframe.java
  6. 43
      src/main/java/com/fr/plugin/form/widget/core/RHIframeAttr.java
  7. 9
      src/main/java/com/fr/plugin/form/widget/core/RHIframeSource.java
  8. 56
      src/main/java/com/fr/plugin/form/widget/core/TemplateSource.java
  9. 82
      src/main/java/com/fr/plugin/form/widget/core/URLSource.java
  10. 26
      src/main/java/com/fr/plugin/form/widget/monitor/RHFunctionProcessor.java
  11. 4
      src/main/java/com/fr/plugin/form/widget/ui/RHCellPane.java
  12. 10
      src/main/java/com/fr/plugin/form/widget/ui/RHFramePane.java
  13. 2
      src/main/java/com/fr/plugin/form/widget/ui/SourceRadioPane.java
  14. 7
      src/main/java/com/fr/plugin/form/widget/ui/TemplateSourcePane.java
  15. 6
      src/main/java/com/fr/plugin/form/widget/ui/URLSourcePane.java
  16. 27
      src/main/java/com/fr/plugin/form/widget/ui/XRHIframe.java
  17. 2
      src/main/java/com/fr/plugin/form/widget/ui/editor/RHIframeModelWrapper.java

6
build.xml

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="jar" name="plugin"> <project basedir="." default="jar" name="plugin">
<!-- JDK路径,根据自己机器上实际位置修改--> <!-- JDK路径,根据自己机器上实际位置修改-->
<property name="jdk.home" value="/Library/Java/JavaVirtualMachines/JDK1.8/Contents/Home"/> <property name="jdk.home" value="C:\Program Files\Java\jdk1.8.0_66"/>
<property name="libs" value="${basedir}/lib"/> <property name="libs" value="${basedir}/lib"/>
<property name="publicLibs" value=""/> <property name="publicLibs" value=""/>
@ -84,8 +84,8 @@
<param name="resources_from" value="${basedir}"/> <param name="resources_from" value="${basedir}"/>
</antcall> </antcall>
<antcall target="compile_javas"> <antcall target="compile_javas">
<param name="source_jdk_version" value="1.6"/> <param name="source_jdk_version" value="1.8"/>
<param name="target_jdk_version" value="1.6"/> <param name="target_jdk_version" value="1.8"/>
<param name="compile_jdk_version" value="${jdk.home}"/> <param name="compile_jdk_version" value="${jdk.home}"/>
<param name="compile_files" value="${basedir}/src"/> <param name="compile_files" value="${basedir}/src"/>
</antcall> </antcall>

4
pom.xml

@ -20,8 +20,8 @@
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<configuration> <configuration>
<source>6</source> <source>8</source>
<target>6</target> <target>8</target>
</configuration> </configuration>
</plugin> </plugin>
</plugins> </plugins>

8
src/main/java/com/fr/plugin/form/widget/conf/RHIframeMarkInCell.java

@ -3,7 +3,7 @@ package com.fr.plugin.form.widget.conf;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.fun.impl.AbstractCellWidgetOptionProvider; import com.fr.design.fun.impl.AbstractCellWidgetOptionProvider;
import com.fr.form.ui.Widget; import com.fr.form.ui.Widget;
import com.fr.general.Inter; import com.fanruan.api.design.DesignKit;
import com.fr.plugin.form.widget.core.RHIframe; import com.fr.plugin.form.widget.core.RHIframe;
import com.fr.plugin.form.widget.ui.RHCellPane; import com.fr.plugin.form.widget.ui.RHCellPane;
@ -12,12 +12,13 @@ import com.fr.plugin.form.widget.ui.RHCellPane;
*/ */
public class RHIframeMarkInCell extends AbstractCellWidgetOptionProvider { public class RHIframeMarkInCell extends AbstractCellWidgetOptionProvider {
@Override
public int currentAPILevel() { public int currentAPILevel() {
return 1; return 1;
} }
@Override @Override
public Class<? extends Widget> classForWidget() { public Class<? extends Widget> classForWidget() {
return RHIframe.class; return RHIframe.class;
} }
@ -28,9 +29,10 @@ public class RHIframeMarkInCell extends AbstractCellWidgetOptionProvider {
@Override @Override
public String nameForWidget() { public String nameForWidget() {
return Inter.getLocText("Plugin-RH_Iframe_Name"); return DesignKit.i18nText("Plugin-RH_Iframe_Name");
} }
@Override @Override
public Class<? extends BasicBeanPane<? extends Widget>> appearanceForWidget() { public Class<? extends BasicBeanPane<? extends Widget>> appearanceForWidget() {
return RHCellPane.class; return RHCellPane.class;

6
src/main/java/com/fr/plugin/form/widget/conf/RHIframeMarkInForm.java

@ -2,7 +2,7 @@ package com.fr.plugin.form.widget.conf;
import com.fr.design.fun.impl.AbstractFormWidgetOptionProvider; import com.fr.design.fun.impl.AbstractFormWidgetOptionProvider;
import com.fr.form.ui.Widget; import com.fr.form.ui.Widget;
import com.fr.general.Inter; import com.fanruan.api.design.DesignKit;
import com.fr.plugin.form.widget.core.RHIframe; import com.fr.plugin.form.widget.core.RHIframe;
import com.fr.plugin.form.widget.ui.XRHIframe; import com.fr.plugin.form.widget.ui.XRHIframe;
@ -10,7 +10,7 @@ import com.fr.plugin.form.widget.ui.XRHIframe;
* Created by richie on 15/12/2. * Created by richie on 15/12/2.
*/ */
public class RHIframeMarkInForm extends AbstractFormWidgetOptionProvider { public class RHIframeMarkInForm extends AbstractFormWidgetOptionProvider {
@Override
public int currentAPILevel() { public int currentAPILevel() {
return 1; return 1;
} }
@ -32,6 +32,6 @@ public class RHIframeMarkInForm extends AbstractFormWidgetOptionProvider {
@Override @Override
public String nameForWidget() { public String nameForWidget() {
return Inter.getLocText("Plugin-RH_Iframe_Name"); return DesignKit.i18nText("Plugin-RH_Iframe_Name");
} }
} }

37
src/main/java/com/fr/plugin/form/widget/core/RHIframe.java

@ -2,24 +2,21 @@ package com.fr.plugin.form.widget.core;
import com.fr.form.ui.FieldEditor; import com.fr.form.ui.FieldEditor;
import com.fr.form.ui.Interactive; import com.fr.form.ui.Interactive;
import com.fr.general.xml.GeneralXMLTools; import com.fanruan.api.xml.XmlKit;
import com.fr.intelli.record.Focus; import com.fr.intelli.record.Focus;
import com.fr.intelli.record.Original; import com.fr.intelli.record.Original;
import com.fr.json.JSONArray; import com.fr.json.JSONArray;
import com.fr.json.JSONException; import com.fanruan.api.err.JSONException;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
import com.fr.plugin.ExtraClassManager;
import com.fr.plugin.form.widget.monitor.RHFunctionProcessor;
import com.fr.record.analyzer.EnableMetrics; import com.fr.record.analyzer.EnableMetrics;
import com.fr.script.Calculator; import com.fr.script.Calculator;
import com.fr.stable.ArrayUtils; import com.fanruan.api.util.ArrayKit;
import com.fr.stable.core.NodeVisitor; import com.fanruan.api.report.analy.data.NodeVisitor;
import com.fr.stable.fun.FunctionProcessor;
import com.fr.stable.script.CalculatorProvider; import com.fr.stable.script.CalculatorProvider;
import com.fr.stable.web.Repository; import com.fr.stable.web.Repository;
import com.fr.stable.xml.XMLPrintWriter; import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLableReader; import com.fr.stable.xml.XMLableReader;
import com.fr.web.core.TemplateSessionIDInfo; import com.fr.stable.web.SessionProvider;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -64,24 +61,24 @@ public class RHIframe extends FieldEditor implements Interactive {
this.overflowY = overflowY; this.overflowY = overflowY;
} }
@Override
@Focus(id=Constants.PLUGIN_ID, text = "Plugin-RH_Iframe_Name", source = Original.PLUGIN) @Focus(id=Constants.PLUGIN_ID, text = "Plugin-RH_Iframe_Name", source = Original.PLUGIN)
public JSONObject createJSONConfig(Repository repo, Calculator c, NodeVisitor nodeVisitor) throws JSONException { public JSONObject createJSONConfig(Repository repo, Calculator c, NodeVisitor nodeVisitor) throws JSONException {
JSONObject jo = super.createJSONConfig(repo, c, nodeVisitor); JSONObject jo = super.createJSONConfig(repo, c, nodeVisitor);
attr.mixConfig(jo, c, repo.getHttpServletRequest()); attr.mixConfig(jo, c, repo.getHttpServletRequest());
jo.put("showOverFlowX", overflowX); jo.put("showOverFlowX", overflowX);
jo.put("showOverFlowY", overflowY); jo.put("showOverFlowY", overflowY);
FunctionProcessor processor = ExtraClassManager.getInstance().getFunctionProcessor(); // FunctionProcessor processor = ExtraClassManager.getInstance().getFunctionProcessor();
if (processor != null){ // if (processor != null){
processor.recordFunction(RHFunctionProcessor.getInstance()); // processor.recordFunction(RHFunctionProcessor.getInstance());
} // }
return jo; return jo;
} }
@Override
public JSONArray createJSONData(TemplateSessionIDInfo sessionIDInfor, Calculator c, HttpServletRequest req) throws Exception { public JSONArray createJSONData(SessionProvider sessionIDInfor, Calculator c, HttpServletRequest req) throws Exception {
JSONArray ja = super.createJSONData(sessionIDInfor, c, req); JSONArray ja = super.createJSONData(sessionIDInfor, c, req);
attr.mixJSONData(ja, sessionIDInfor, c); attr.mixJSONData(ja,sessionIDInfor, c);
return ja; return ja;
} }
@ -103,13 +100,13 @@ public class RHIframe extends FieldEditor implements Interactive {
@Override @Override
public String[] dependence(CalculatorProvider ca) { public String[] dependence(CalculatorProvider ca) {
if (attr == null) { if (attr == null) {
return ArrayUtils.EMPTY_STRING_ARRAY; return ArrayKit.EMPTY_STRING_ARRAY;
} }
return attr.dependence(ca); return attr.dependence(ca);
} }
@Override @Override
public void readXML(XMLableReader reader) { public void readXML( XMLableReader reader) {
super.readXML(reader); super.readXML(reader);
if (reader.isChildNode()) { if (reader.isChildNode()) {
String nodeName = reader.getTagName(); String nodeName = reader.getTagName();
@ -117,7 +114,7 @@ public class RHIframe extends FieldEditor implements Interactive {
this.overflowX = reader.getAttrAsBoolean("scrollX", true); this.overflowX = reader.getAttrAsBoolean("scrollX", true);
this.overflowY = reader.getAttrAsBoolean("scrollY", true); this.overflowY = reader.getAttrAsBoolean("scrollY", true);
} else if (RHIframeAttr.XML_TAG.equals(nodeName)) { } else if (RHIframeAttr.XML_TAG.equals(nodeName)) {
this.attr = (RHIframeAttr) GeneralXMLTools.readXMLable(reader); this.attr = (RHIframeAttr) XmlKit.readXMLable(reader);
} }
} }
} }
@ -130,7 +127,7 @@ public class RHIframe extends FieldEditor implements Interactive {
writer.attr("scrollY", overflowY); writer.attr("scrollY", overflowY);
writer.end(); writer.end();
if (attr != null) { if (attr != null) {
GeneralXMLTools.writeXMLable(writer, attr, RHIframeAttr.XML_TAG); XmlKit.writeXMLable(writer,attr, RHIframeAttr.XML_TAG);
} }
} }

43
src/main/java/com/fr/plugin/form/widget/core/RHIframeAttr.java

@ -1,23 +1,22 @@
package com.fr.plugin.form.widget.core; package com.fr.plugin.form.widget.core;
import com.fr.base.ParameterMapNameSpace; import com.fanruan.api.cal.ParameterKit;
import com.fr.general.xml.GeneralXMLTools; import com.fanruan.api.xml.XmlKit;
import com.fr.json.JSONArray; import com.fr.json.JSONArray;
import com.fr.json.JSONException; import com.fanruan.api.err.JSONException;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
import com.fr.script.Calculator; import com.fr.script.Calculator;
import com.fr.stable.ArrayUtils; import com.fanruan.api.util.ArrayKit;
import com.fr.stable.DependenceProvider; import com.fr.stable.DependenceProvider;
import com.fr.stable.ParameterProvider; import com.fr.stable.ParameterProvider;
import com.fr.stable.UtilEvalError; import com.fanruan.api.err.UtilEvalError;
import com.fr.stable.script.CalculatorProvider; import com.fr.stable.script.CalculatorProvider;
import com.fr.stable.script.NameSpace; import com.fr.stable.script.NameSpace;
import com.fr.stable.xml.StableXMLUtils; import com.fr.stable.web.SessionProvider;
import com.fr.stable.xml.XMLPrintWriter; import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLReadable; import com.fr.stable.xml.XMLReadable;
import com.fr.stable.xml.XMLable; import com.fr.stable.xml.XMLable;
import com.fr.stable.xml.XMLableReader; import com.fr.stable.xml.XMLableReader;
import com.fr.web.core.TemplateSessionIDInfo;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList; import java.util.ArrayList;
@ -53,7 +52,7 @@ public class RHIframeAttr implements XMLable, DependenceProvider {
@Override @Override
public String[] dependence(CalculatorProvider ca) { public String[] dependence(CalculatorProvider ca) {
if (source == null) { if (source == null) {
return ArrayUtils.EMPTY_STRING_ARRAY; return ArrayKit.EMPTY_STRING_ARRAY;
} }
List<String> data = new ArrayList<String>(); List<String> data = new ArrayList<String>();
data.addAll(Arrays.asList(source.dependence(ca))); data.addAll(Arrays.asList(source.dependence(ca)));
@ -69,7 +68,7 @@ public class RHIframeAttr implements XMLable, DependenceProvider {
if (source != null) { if (source != null) {
jo.put("src", source.getCalculatedUrl(c, req)); jo.put("src", source.getCalculatedUrl(c, req));
String[] dependence = dependence(c); String[] dependence = dependence(c);
if (!ArrayUtils.isEmpty(dependence)) { if (!ArrayKit.isEmpty(dependence)) {
jo.put("dependence", dependence); jo.put("dependence", dependence);
jo.put("valueDependence", dependence); jo.put("valueDependence", dependence);
} }
@ -77,26 +76,33 @@ public class RHIframeAttr implements XMLable, DependenceProvider {
} }
} }
public void mixJSONData(JSONArray ja, TemplateSessionIDInfo sessionIDInfor, Calculator c) throws JSONException, UtilEvalError { public void mixJSONData(JSONArray ja, SessionProvider sessionIDInfor, Calculator c) throws JSONException, UtilEvalError {
NameSpace ns = ParameterMapNameSpace.create(sessionIDInfor.getParameterMap4Execute()); NameSpace ns = ParameterKit.createParameterMapNameSpace(sessionIDInfor.getParameterMap());
c.pushNameSpace(ns); c.pushNameSpace(ns);
if (source != null) { if (source != null) {
source.mixCalculatedParameters(c, ja, parameters); try {
source.mixCalculatedParameters(c, ja, parameters);
} catch (Exception e) {
}
} }
} }
@Override @Override
public void readXML(XMLableReader reader) { public void readXML(XMLableReader reader) {
if (reader.isChildNode()) { if (reader.isChildNode()) {
String tmpName = reader.getTagName(); String tmpName = reader.getTagName();
if (ParameterProvider.ARRAY_XML_TAG.equals(tmpName)) {//读取Parameters. if (ParameterProvider.ARRAY_XML_TAG.equals(tmpName)) {
//读取Parameters.
final List<ParameterProvider> tmpParameterList = new ArrayList<ParameterProvider>(); final List<ParameterProvider> tmpParameterList = new ArrayList<ParameterProvider>();
reader.readXMLObject(new XMLReadable() { reader.readXMLObject(new XMLReadable() {
@Override
public void readXML(XMLableReader reader) { public void readXML(XMLableReader reader) {
if (ParameterProvider.XML_TAG.equals(reader.getTagName())) { if (ParameterProvider.XML_TAG.equals(reader.getTagName())) {
tmpParameterList.add(StableXMLUtils.readParameter(reader)); tmpParameterList.add(XmlKit.readParameter(reader));
} }
} }
}); });
@ -106,7 +112,7 @@ public class RHIframeAttr implements XMLable, DependenceProvider {
this.parameters = tmpParameterList.toArray(new ParameterProvider[tmpParameterList.size()]); this.parameters = tmpParameterList.toArray(new ParameterProvider[tmpParameterList.size()]);
} }
} else if (tmpName.equals(RHIframeSource.XML_TAG)) { } else if (tmpName.equals(RHIframeSource.XML_TAG)) {
this.source = (RHIframeSource) GeneralXMLTools.readXMLable(reader); this.source = (RHIframeSource) XmlKit.readXMLable(reader);
} }
} }
} }
@ -114,9 +120,9 @@ public class RHIframeAttr implements XMLable, DependenceProvider {
@Override @Override
public void writeXML(XMLPrintWriter writer) { public void writeXML(XMLPrintWriter writer) {
if (source != null) { if (source != null) {
GeneralXMLTools.writeXMLable(writer, source, RHIframeSource.XML_TAG); XmlKit.writeXMLable(writer, source, RHIframeSource.XML_TAG);
} }
StableXMLUtils.writeParameters(writer, parameters); XmlKit.writeParameters(writer, parameters);
} }
@Override @Override
@ -126,4 +132,5 @@ public class RHIframeAttr implements XMLable, DependenceProvider {
cloned.parameters = parameters; cloned.parameters = parameters;
return cloned; return cloned;
} }
} }

9
src/main/java/com/fr/plugin/form/widget/core/RHIframeSource.java

@ -1,15 +1,14 @@
package com.fr.plugin.form.widget.core; package com.fr.plugin.form.widget.core;
import com.fr.json.JSONArray; import com.fr.json.JSONArray;
import com.fr.json.JSONException; import com.fanruan.api.err.JSONException;
import com.fr.json.JSONObject;
import com.fr.script.Calculator;
import com.fr.stable.DependenceProvider; import com.fr.stable.DependenceProvider;
import com.fr.stable.ParameterProvider; import com.fr.stable.ParameterProvider;
import com.fr.stable.UtilEvalError; import com.fanruan.api.err.UtilEvalError;
import com.fr.stable.xml.XMLPrintWriter; import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLable; import com.fr.stable.xml.XMLable;
import com.fr.stable.xml.XMLableReader; import com.fr.stable.xml.XMLableReader;
import com.fr.script.Calculator;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -20,7 +19,7 @@ public abstract class RHIframeSource implements XMLable, DependenceProvider {
public static final String XML_TAG = "RHIframeSource"; public static final String XML_TAG = "RHIframeSource";
@Override
public String toString() { public String toString() {
return "source"; return "source";
} }

56
src/main/java/com/fr/plugin/form/widget/core/TemplateSource.java

@ -1,22 +1,21 @@
package com.fr.plugin.form.widget.core; package com.fr.plugin.form.widget.core;
import com.fr.base.Formula; import com.fanruan.api.err.UtilEvalError;
import com.fr.base.Parameter; import com.fanruan.api.cal.ParameterKit;
import com.fr.base.ParameterHelper; import com.fanruan.api.net.NetworkKit;
import com.fr.base.TemplateUtils; import com.fanruan.api.util.RenderKit;
import com.fr.data.NetworkHelper; import com.fr.stable.ArrayProvider;
import com.fr.general.FArray;
import com.fr.json.JSONArray; import com.fr.json.JSONArray;
import com.fr.json.JSONException; import com.fanruan.api.err.JSONException;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
import com.fr.plugin.form.widget.URLUtils; import com.fr.plugin.form.widget.URLUtils;
import com.fr.script.Calculator; import com.fr.script.Calculator;
import com.fr.stable.CodeUtils; import com.fr.stable.FormulaProvider;
import com.fanruan.api.util.CodeKit;
import com.fr.stable.ParameterProvider; import com.fr.stable.ParameterProvider;
import com.fr.stable.ProductConstants; import com.fanruan.api.macro.ProductConstants;
import com.fr.stable.StringUtils; import com.fanruan.api.util.StringKit;
import com.fr.stable.UtilEvalError; import com.fanruan.api.report.form.WidgetName;
import com.fr.stable.js.WidgetName;
import com.fr.stable.script.CalculatorProvider; import com.fr.stable.script.CalculatorProvider;
import com.fr.stable.xml.XMLPrintWriter; import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLableReader; import com.fr.stable.xml.XMLableReader;
@ -54,7 +53,7 @@ public class TemplateSource extends RHIframeSource {
@Override @Override
public String getCalculatedUrl(Calculator calculator, HttpServletRequest req) { public String getCalculatedUrl(Calculator calculator, HttpServletRequest req) {
try { try {
String realPath = TemplateUtils.render(path, calculator); String realPath = RenderKit.render(path, calculator);
List<NameValuePair> pairs = URLUtils.parse("__emb__=" + realPath); List<NameValuePair> pairs = URLUtils.parse("__emb__=" + realPath);
List<NameValuePair> extraPairs = new ArrayList<NameValuePair>(); List<NameValuePair> extraPairs = new ArrayList<NameValuePair>();
for (NameValuePair pair : pairs) { for (NameValuePair pair : pairs) {
@ -67,15 +66,15 @@ public class TemplateSource extends RHIframeSource {
if (realPath.contains(".cpt")) { if (realPath.contains(".cpt")) {
if (isNewerThan9()) { if (isNewerThan9()) {
return NetworkHelper.createServletURL(req) + "/view/report?viewlet=" + CodeUtils.encodeURIComponent(realPath) + createQueryString(extraPairs); return NetworkKit.createServletURL(req) + "/view/report?viewlet=" + CodeKit.encodeURIComponent(realPath) + createQueryString(extraPairs);
} else { } else {
return NetworkHelper.createServletURL(req) + "?reportlet=" + CodeUtils.encodeURIComponent(realPath) + createQueryString(extraPairs); return NetworkKit.createServletURL(req) + "?reportlet=" + CodeKit.encodeURIComponent(realPath) + createQueryString(extraPairs);
} }
} else if (realPath.contains(".frm")) { } else if (realPath.contains(".frm")) {
if (isNewerThan9()) { if (isNewerThan9()) {
return NetworkHelper.createServletURL(req) + "/view/form?viewlet=" + CodeUtils.encodeURIComponent(realPath) + createQueryString(extraPairs); return NetworkKit.createServletURL(req) + "/view/form?viewlet=" + CodeKit.encodeURIComponent(realPath) + createQueryString(extraPairs);
} }
return NetworkHelper.createServletURL(req) + "?formlet=" + CodeUtils.encodeURIComponent(realPath) + createQueryString(extraPairs); return NetworkKit.createServletURL(req) + "?formlet=" + CodeKit.encodeURIComponent(realPath) + createQueryString(extraPairs);
} }
} catch (Exception e) { } catch (Exception e) {
return null; return null;
@ -94,24 +93,24 @@ public class TemplateSource extends RHIframeSource {
sb.append("&"); sb.append("&");
String key = pair.getName(); String key = pair.getName();
if (key == null) { if (key == null) {
key = StringUtils.EMPTY; key = StringKit.EMPTY;
} }
sb.append(CodeUtils.encodeURIComponent(key)); sb.append(CodeKit.encodeURIComponent(key));
sb.append("="); sb.append("=");
String value = pair.getValue(); String value = pair.getValue();
if (value == null) { if (value == null) {
value = StringUtils.EMPTY; value = StringKit.EMPTY;
} }
sb.append(CodeUtils.encodeURIComponent(value)); sb.append(CodeKit.encodeURIComponent(value));
} }
return sb.toString(); return sb.toString();
} }
@Override @Override
public String[] dependence(CalculatorProvider ca) { public String[] dependence(CalculatorProvider ca) {
Parameter[] parameters = ParameterHelper.analyze4Parameters(path, false); ParameterProvider[] parameters = ParameterKit.analyze4Parameters(path, false);
List<String> collections = new ArrayList<String>(); List<String> collections = new ArrayList<String>();
for (Parameter parameter : parameters) { for (ParameterProvider parameter : parameters) {
collections.addAll(Arrays.asList(parameter.dependence(ca))); collections.addAll(Arrays.asList(parameter.dependence(ca)));
} }
return collections.toArray(new String[collections.size()]); return collections.toArray(new String[collections.size()]);
@ -127,13 +126,16 @@ public class TemplateSource extends RHIframeSource {
JSONObject jo = JSONObject.create(); JSONObject jo = JSONObject.create();
String key = parameter.getName(); String key = parameter.getName();
Object obj = parameter.getValue(); Object obj = parameter.getValue();
if (obj instanceof Formula) { if (obj instanceof FormulaProvider) {
String content = ((Formula) obj).getContent(); try{
obj = c.evalValue(content); String content = ((FormulaProvider) obj).getContent();
obj = c.evalValue(content);
}catch (Exception e) {
}
} }
if (obj instanceof String) { if (obj instanceof String) {
jo.put(parameter.getName(), obj); jo.put(parameter.getName(), obj);
} else if (obj instanceof FArray) { } else if (obj instanceof ArrayProvider) {
jo.put(key, obj); jo.put(key, obj);
} else if (obj instanceof WidgetName) { } else if (obj instanceof WidgetName) {
jo.put("widgetName", ((WidgetName) obj).getName()); jo.put("widgetName", ((WidgetName) obj).getName());

82
src/main/java/com/fr/plugin/form/widget/core/URLSource.java

@ -1,25 +1,23 @@
package com.fr.plugin.form.widget.core; package com.fr.plugin.form.widget.core;
import com.fr.base.Formula; import com.fr.base.BaseFormula;
import com.fr.base.Parameter; import com.fr.stable.ParameterProvider;
import com.fr.base.ParameterHelper; import com.fanruan.api.cal.ParameterKit;
import com.fr.base.TemplateUtils; import com.fanruan.api.util.RenderKit;
import com.fr.general.FArray; import com.fr.general.FArray;
import com.fr.general.FRLogger; import com.fanruan.api.log.LogKit;
import com.fr.general.GeneralUtils;
import com.fr.general.Inter;
import com.fr.json.JSONArray; import com.fr.json.JSONArray;
import com.fr.json.JSONException; import com.fanruan.api.err.JSONException;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
import com.fr.script.Calculator; import com.fr.script.Calculator;
import com.fr.stable.CodeUtils; import com.fanruan.api.util.CodeKit;
import com.fr.stable.ParameterProvider; import com.fanruan.api.cal.FormulaKit;
import com.fr.stable.StableUtils; import com.fanruan.api.err.UtilEvalError;
import com.fr.stable.UtilEvalError; import com.fr.stable.Nameable;
import com.fr.stable.js.WidgetName;
import com.fr.stable.script.CalculatorProvider; import com.fr.stable.script.CalculatorProvider;
import com.fr.stable.xml.XMLPrintWriter; import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLableReader; import com.fr.stable.xml.XMLableReader;
import com.fanruan.api.util.GeneralKit;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList; import java.util.ArrayList;
@ -51,17 +49,17 @@ public class URLSource extends RHIframeSource {
@Override @Override
public String getCalculatedUrl(Calculator calculator, HttpServletRequest req) { public String getCalculatedUrl(Calculator calculator, HttpServletRequest req) {
String result = null; String result = null;
if (StableUtils.canBeFormula(url)) { if (FormulaKit.checkFormulaContent(url)) {
try { try {
result = GeneralUtils.objectToString(calculator.eval(new Formula(url))); result = GeneralKit.objectToString(FormulaKit.newFormula(url));
} catch (UtilEvalError u) { } catch (Exception u) {
FRLogger.getLogger().error(u.getMessage(), u); LogKit.error(u.getMessage(), u);
} }
} else { } else {
try { try {
result = TemplateUtils.render(url, calculator); result = RenderKit.render(url, calculator);
} catch (Exception e) { } catch (Exception e) {
FRLogger.getLogger().error(e.getMessage(), e); LogKit.error(e.getMessage(), e);
} }
} }
@ -73,40 +71,42 @@ public class URLSource extends RHIframeSource {
@Override @Override
public String[] dependence(CalculatorProvider ca) { public String[] dependence(CalculatorProvider ca) {
Parameter[] parameters = ParameterHelper.analyze4Parameters(url, false); ParameterProvider[] parameters = ParameterKit.analyze4Parameters(url, false);
List<String> collections = new ArrayList<String>(); List<String> collections = new ArrayList<String>();
for (Parameter parameter : parameters) { for (ParameterProvider parameter : parameters) {
collections.addAll(Arrays.asList(parameter.dependence(ca))); collections.addAll(Arrays.asList(parameter.dependence(ca)));
} }
return collections.toArray(new String[collections.size()]); return collections.toArray(new String[collections.size()]);
} }
@Override @Override
public void mixCalculatedParameters(Calculator c, JSONArray ja, ParameterProvider[] parameters) throws JSONException, UtilEvalError { public void mixCalculatedParameters(Calculator c, JSONArray ja, ParameterProvider[] parameters) throws JSONException, UtilEvalError {
for (int i = 0; i < (parameters == null ? 0 : parameters.length); i++) { for (int i = 0; i < (parameters == null ? 0 : parameters.length); i++) {
Object obj = parameters[i].getValue(); Object obj = parameters[i].getValue();
if (obj instanceof Formula) { if (obj instanceof BaseFormula) {
String content = ((Formula) obj).getContent(); try {
obj = c.evalValue(content); String content = ((BaseFormula) obj).getContent();
} obj = c.evalValue(content);
JSONObject jo = JSONObject.create(); } catch (Exception e) {
if (obj instanceof String) { }
obj = CodeUtils.cjkEncode((String) obj); JSONObject jo = JSONObject.create();
jo.put(parameters[i].getName(), obj); if (obj instanceof String) {
} else if (obj instanceof FArray) { obj = CodeKit.passwordDecode((String) obj);
obj = ((FArray) obj).cjkEncode(); jo.put(parameters[i].getName(), obj);
jo.put(parameters[i].getName(), obj); } else if (obj instanceof FArray) {
} else if (obj instanceof WidgetName) { obj = ((FArray) obj).cjkEncode();
jo.put("widgetName", ((WidgetName) obj).getName()); jo.put(parameters[i].getName(), obj);
} else { } else if (obj instanceof Nameable) {
// 还可以是数字啊什么的 jo.put("widgetName", ((Nameable) obj).getName());
jo.put(parameters[i].getName(), obj); } else {
// 还可以是数字啊什么的
jo.put(parameters[i].getName(), obj);
}
ja.put(jo);
} }
ja.put(jo);
} }
} }
@Override @Override
public String getSourceType() { public String getSourceType() {
return "url"; return "url";

26
src/main/java/com/fr/plugin/form/widget/monitor/RHFunctionProcessor.java

@ -1,26 +0,0 @@
package com.fr.plugin.form.widget.monitor;
import com.fr.stable.fun.FunctionHelper;
import com.fr.stable.fun.impl.AbstractFunctionProcessor;
/**
* Created by richie on 15/12/3.
*/
public class RHFunctionProcessor extends AbstractFunctionProcessor {
private static RHFunctionProcessor instance = new RHFunctionProcessor();
public static RHFunctionProcessor getInstance() {
return instance;
}
@Override
public int getId() {
return FunctionHelper.generateFunctionID("com.fr.plugin.form.widget.rh.iframe.v10");
}
@Override
public String getLocaleKey() {
return "Plugin-RH_Iframe_Name";
}
}

4
src/main/java/com/fr/plugin/form/widget/ui/RHCellPane.java

@ -2,7 +2,7 @@ package com.fr.plugin.form.widget.ui;
import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.widget.ui.AbstractDataModify; import com.fr.design.widget.ui.AbstractDataModify;
import com.fr.general.Inter; import com.fanruan.api.design.DesignKit;
import com.fr.plugin.form.widget.core.RHIframe; import com.fr.plugin.form.widget.core.RHIframe;
import java.awt.*; import java.awt.*;
@ -37,6 +37,6 @@ public class RHCellPane extends AbstractDataModify<RHIframe> {
@Override @Override
protected String title4PopupWindow() { protected String title4PopupWindow() {
return Inter.getLocText("Plugin-RH_Iframe_Name"); return DesignKit.i18nText("Plugin-RH_Iframe_Name");
} }
} }

10
src/main/java/com/fr/plugin/form/widget/ui/RHFramePane.java

@ -1,10 +1,10 @@
package com.fr.plugin.form.widget.ui; package com.fr.plugin.form.widget.ui;
import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.frpane.UIRadioPane; import com.fanruan.api.design.ui.component.UIRadioPane;
import com.fr.design.gui.itableeditorpane.ParameterTableModel; import com.fanruan.api.design.ui.component.table.model.ParameterTableModel;
import com.fr.design.gui.itableeditorpane.UITableEditorPane; import com.fanruan.api.design.ui.component.table.UITableEditorPane;
import com.fr.general.Inter; import com.fanruan.api.design.DesignKit;
import com.fr.plugin.form.widget.core.RHIframeAttr; import com.fr.plugin.form.widget.core.RHIframeAttr;
import com.fr.plugin.form.widget.core.RHIframeSource; import com.fr.plugin.form.widget.core.RHIframeSource;
import com.fr.stable.ParameterProvider; import com.fr.stable.ParameterProvider;
@ -21,7 +21,7 @@ public class RHFramePane extends BasicPane {
@Override @Override
protected String title4PopupWindow() { protected String title4PopupWindow() {
return Inter.getLocText("Plugin-RH_Iframe_Value"); return DesignKit.i18nText("Plugin-RH_Iframe_Value");
} }
public RHFramePane() { public RHFramePane() {

2
src/main/java/com/fr/plugin/form/widget/ui/SourceRadioPane.java

@ -1,7 +1,7 @@
package com.fr.plugin.form.widget.ui; package com.fr.plugin.form.widget.ui;
import com.fr.design.beans.FurtherBasicBeanPane; import com.fr.design.beans.FurtherBasicBeanPane;
import com.fr.design.gui.frpane.UIRadioPane; import com.fanruan.api.design.ui.component.UIRadioPane;
import com.fr.plugin.form.widget.core.RHIframeSource; import com.fr.plugin.form.widget.core.RHIframeSource;
import java.util.ArrayList; import java.util.ArrayList;

7
src/main/java/com/fr/plugin/form/widget/ui/TemplateSourcePane.java

@ -3,9 +3,9 @@ package com.fr.plugin.form.widget.ui;
import com.fr.design.beans.FurtherBasicBeanPane; import com.fr.design.beans.FurtherBasicBeanPane;
import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.gui.ibutton.UIButton; import com.fanruan.api.design.ui.component.UIButton;
import com.fr.design.gui.itextfield.UITextField; import com.fanruan.api.design.ui.component.UITextField;
import com.fr.design.gui.itree.filetree.ReportletPane; import com.fanruan.api.design.work.ReportletPane;
import com.fr.plugin.form.widget.core.TemplateSource; import com.fr.plugin.form.widget.core.TemplateSource;
import javax.swing.*; import javax.swing.*;
@ -39,6 +39,7 @@ public class TemplateSourcePane extends FurtherBasicBeanPane<TemplateSource> {
BasicDialog reportletDialog = reportletPane.showWindow(SwingUtilities.getWindowAncestor(TemplateSourcePane.this)); BasicDialog reportletDialog = reportletPane.showWindow(SwingUtilities.getWindowAncestor(TemplateSourcePane.this));
reportletDialog.addDialogActionListener(new DialogActionAdapter() { reportletDialog.addDialogActionListener(new DialogActionAdapter() {
@Override
public void doOk() { public void doOk() {
textField.setText(reportletPane.getSelectedReportletPath()); textField.setText(reportletPane.getSelectedReportletPath());
} }

6
src/main/java/com/fr/plugin/form/widget/ui/URLSourcePane.java

@ -1,7 +1,7 @@
package com.fr.plugin.form.widget.ui; package com.fr.plugin.form.widget.ui;
import com.fr.design.beans.FurtherBasicBeanPane; import com.fr.design.beans.FurtherBasicBeanPane;
import com.fr.design.formula.TinyFormulaPane; import com.fanruan.api.design.ui.component.formula.UIFormulaTextField;
import com.fr.plugin.form.widget.core.URLSource; import com.fr.plugin.form.widget.core.URLSource;
import java.awt.*; import java.awt.*;
@ -11,11 +11,11 @@ import java.awt.*;
*/ */
public class URLSourcePane extends FurtherBasicBeanPane<URLSource> { public class URLSourcePane extends FurtherBasicBeanPane<URLSource> {
private TinyFormulaPane formulaPane; private UIFormulaTextField formulaPane;
public URLSourcePane() { public URLSourcePane() {
setLayout(new BorderLayout()); setLayout(new BorderLayout());
formulaPane = new TinyFormulaPane(); formulaPane = new UIFormulaTextField();
add(formulaPane, BorderLayout.CENTER); add(formulaPane, BorderLayout.CENTER);
} }

27
src/main/java/com/fr/plugin/form/widget/ui/XRHIframe.java

@ -2,17 +2,17 @@ package com.fr.plugin.form.widget.ui;
import com.fr.design.designer.creator.CRPropertyDescriptor; import com.fr.design.designer.creator.CRPropertyDescriptor;
import com.fr.design.designer.creator.XWidgetCreator; import com.fr.design.designer.creator.XWidgetCreator;
import com.fr.design.form.util.XCreatorConstants; import com.fanruan.api.design.work.form.macro.XCreatorConstants;
import com.fr.design.gui.itextfield.UITextField; import com.fanruan.api.design.ui.component.UITextField;
import com.fr.design.layout.FRGUIPaneFactory; import com.fanruan.api.design.util.GUICoreKit;
import com.fr.general.Inter; import com.fanruan.api.design.DesignKit;
import com.fr.plugin.form.widget.core.RHIframe; import com.fr.plugin.form.widget.core.RHIframe;
import com.fr.plugin.form.widget.core.RHIframeAttr; import com.fr.plugin.form.widget.core.RHIframeAttr;
import com.fr.plugin.form.widget.core.RHIframeSource; import com.fr.plugin.form.widget.core.RHIframeSource;
import com.fr.plugin.form.widget.ui.editor.RHIframeModelEditor; import com.fr.plugin.form.widget.ui.editor.RHIframeModelEditor;
import com.fr.plugin.form.widget.ui.render.RHIframeModelRenderer; import com.fr.plugin.form.widget.ui.render.RHIframeModelRenderer;
import com.fr.stable.ArrayUtils; import com.fanruan.api.util.ArrayKit;
import com.fr.stable.StringUtils; import com.fanruan.api.util.StringKit;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
@ -31,26 +31,26 @@ public class XRHIframe extends XWidgetCreator {
@Override @Override
public CRPropertyDescriptor[] supportedDescriptor() throws IntrospectionException { public CRPropertyDescriptor[] supportedDescriptor() throws IntrospectionException {
return ArrayUtils.addAll(super.supportedDescriptor(), new CRPropertyDescriptor[]{ return ArrayKit.addAll(super.supportedDescriptor(), new CRPropertyDescriptor[]{
new CRPropertyDescriptor("attr", this.toData().getClass()) new CRPropertyDescriptor("attr", this.toData().getClass())
.setI18NName(Inter.getLocText("Plugin-RH_Iframe_Value")) .setI18NName(DesignKit.i18nText("Plugin-RH_Iframe_Value"))
.setEditorClass(RHIframeModelEditor.class) .setEditorClass(RHIframeModelEditor.class)
.setRendererClass(RHIframeModelRenderer.class), .setRendererClass(RHIframeModelRenderer.class),
new CRPropertyDescriptor("overflowX", this.data.getClass()).setI18NName( new CRPropertyDescriptor("overflowX", this.data.getClass()).setI18NName(
Inter.getLocText("Plugin-Preference_Horizontal_Scroll_Bar_Visible")).putKeyValue( DesignKit.i18nText("Plugin-Preference_Horizontal_Scroll_Bar_Visible")).putKeyValue(
XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), XCreatorConstants.PROPERTY_CATEGORY, "Advanced"),
new CRPropertyDescriptor("overflowY", this.data.getClass()).setI18NName( new CRPropertyDescriptor("overflowY", this.data.getClass()).setI18NName(
Inter.getLocText("Plugin-Preference_Vertical_Scroll_Bar_Visible")).putKeyValue( DesignKit.i18nText("Plugin-Preference_Vertical_Scroll_Bar_Visible")).putKeyValue(
XCreatorConstants.PROPERTY_CATEGORY, "Plugin-RH_Iframe_Advanced")}); XCreatorConstants.PROPERTY_CATEGORY, "Plugin-RH_Iframe_Advanced")});
} }
@Override @Override
protected JComponent initEditor() { protected JComponent initEditor() {
if (editor == null) { if (editor == null) {
editor = FRGUIPaneFactory.createBorderLayout_S_Pane(); editor = GUICoreKit.createBorderLayoutPane();
address = new UITextField(showDescriptionText()); address = new UITextField(showDescriptionText());
editor.add(address, BorderLayout.NORTH); editor.add(address, BorderLayout.NORTH);
JPanel contentPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); JPanel contentPane = GUICoreKit.createNormalFlowInnerContainerPane();
contentPane.setBackground(Color.white); contentPane.setBackground(Color.white);
editor.add(contentPane, BorderLayout.CENTER); editor.add(contentPane, BorderLayout.CENTER);
} }
@ -68,7 +68,7 @@ public class XRHIframe extends XWidgetCreator {
} }
} }
} }
return StringUtils.EMPTY; return StringKit.EMPTY;
} }
@Override @Override
@ -82,6 +82,7 @@ public class XRHIframe extends XWidgetCreator {
* *
* @return 是则返回true * @return 是则返回true
*/ */
@Override
public boolean canEnterIntoParaPane() { public boolean canEnterIntoParaPane() {
return false; return false;
} }

2
src/main/java/com/fr/plugin/form/widget/ui/editor/RHIframeModelWrapper.java

@ -1,6 +1,6 @@
package com.fr.plugin.form.widget.ui.editor; package com.fr.plugin.form.widget.ui.editor;
import com.fr.design.Exception.ValidationException; import com.fanruan.api.err.ValidationException;
import com.fr.design.designer.properties.Decoder; import com.fr.design.designer.properties.Decoder;
import com.fr.design.designer.properties.Encoder; import com.fr.design.designer.properties.Encoder;
import com.fr.plugin.form.widget.core.RHIframeAttr; import com.fr.plugin.form.widget.core.RHIframeAttr;

Loading…
Cancel
Save