Browse Source

简化插件接口添加

master
richie 8 years ago
parent
commit
66e1b93a29
  1. 38
      src/com/fr/plugin/form/widget/core/RHIframe.java
  2. 24
      src/com/fr/plugin/form/widget/core/RHIframeAttr.java
  3. 3
      src/com/fr/plugin/form/widget/core/RHIframeSource.java
  4. 18
      src/com/fr/plugin/form/widget/core/TemplateSource.java
  5. 16
      src/com/fr/plugin/form/widget/core/URLSource.java

38
src/com/fr/plugin/form/widget/core/RHIframe.java

@ -1,6 +1,9 @@
package com.fr.plugin.form.widget.core;
import com.fr.form.ui.DataControl;
import com.fr.form.ui.FieldEditor;
import com.fr.form.ui.WidgetValue;
import com.fr.general.FRLogger;
import com.fr.general.Inter;
import com.fr.general.xml.GeneralXMLTools;
import com.fr.json.JSONArray;
@ -9,6 +12,8 @@ import com.fr.json.JSONObject;
import com.fr.plugin.ExtraClassManager;
import com.fr.plugin.form.widget.monitor.RHFunctionProcessor;
import com.fr.script.Calculator;
import com.fr.stable.ArrayUtils;
import com.fr.stable.DependenceProvider;
import com.fr.stable.core.NodeVisitor;
import com.fr.stable.fun.FunctionHelper;
import com.fr.stable.fun.FunctionProcessor;
@ -24,7 +29,7 @@ import javax.servlet.http.HttpServletRequest;
/**
* Created by richie on 15/12/2.
*/
public class RHIframe extends FieldEditor {
public class RHIframe extends FieldEditor implements DataControl {
private static final FunctionProcessor RH = new AbstractFunctionProcessor() {
@Override
@ -72,7 +77,6 @@ public class RHIframe extends FieldEditor {
this.overflowY = overflowY;
}
@Override
public JSONObject createJSONConfig(Repository repo, Calculator c, NodeVisitor nodeVisitor) throws JSONException {
FunctionProcessor p = ExtraClassManager.getInstance().getFunctionProcessor();
@ -114,7 +118,10 @@ public class RHIframe extends FieldEditor {
@Override
public String[] dependence(CalculatorProvider ca) {
return new String[0];
if (attr == null) {
return ArrayUtils.EMPTY_STRING_ARRAY;
}
return attr.dependence(ca);
}
@Override
@ -142,4 +149,29 @@ public class RHIframe extends FieldEditor {
GeneralXMLTools.writeXMLable(writer, attr, RHIframeAttr.XML_TAG);
}
}
@Override
public int[] getValueType() {
return new int[0];
}
@Override
public void setWidgetValue(WidgetValue value) {
}
@Override
public WidgetValue getWidgetValue() {
return null;
}
@Override
public void createValueResult(DataControl widget, Calculator widgetCalculator, JSONObject widgetResult, JSONObject attrSourceCache) {
try {
JSONObject data = JSONObject.create();
widgetResult.put(widgetName.toUpperCase(), data);
} catch (JSONException e) {
FRLogger.getLogger().error(e.getMessage(), e);
}
}
}

24
src/com/fr/plugin/form/widget/core/RHIframeAttr.java

@ -8,22 +8,22 @@ import com.fr.json.JSONArray;
import com.fr.json.JSONException;
import com.fr.json.JSONObject;
import com.fr.script.Calculator;
import com.fr.stable.CodeUtils;
import com.fr.stable.ParameterProvider;
import com.fr.stable.UtilEvalError;
import com.fr.stable.*;
import com.fr.stable.js.WidgetName;
import com.fr.stable.script.CalculatorProvider;
import com.fr.stable.script.NameSpace;
import com.fr.stable.xml.*;
import com.fr.web.core.SessionIDInfor;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Created by richie on 15/12/2.
*/
public class RHIframeAttr implements XMLable {
public class RHIframeAttr implements XMLable, DependenceProvider {
public static final String XML_TAG = "RHIframeAttr";
private RHIframeSource source;
@ -46,10 +46,26 @@ public class RHIframeAttr implements XMLable {
this.parameters = parameters;
}
@Override
public String[] dependence(CalculatorProvider ca) {
List<String> data = new ArrayList<String>();
data.addAll(Arrays.asList(source.dependence(ca)));
if (parameters != null) {
for (ParameterProvider parameter : parameters) {
data.addAll(Arrays.asList(parameter.dependence(ca)));
}
}
return data.toArray(new String[data.size()]);
}
public void mixConfig(JSONObject jo, Calculator c, HttpServletRequest req) throws JSONException {
if (source != null) {
jo.put("src", source.getCalculatedUrl(c, req));
}
String[] dependence = dependence(c);
if (!ArrayUtils.isEmpty(dependence)) {
jo.put("dependence", dependence);
}
}
public void mixJSONData(JSONArray ja, SessionIDInfor sessionIDInfor, Calculator c) throws JSONException, UtilEvalError {

3
src/com/fr/plugin/form/widget/core/RHIframeSource.java

@ -1,6 +1,7 @@
package com.fr.plugin.form.widget.core;
import com.fr.script.Calculator;
import com.fr.stable.DependenceProvider;
import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLable;
import com.fr.stable.xml.XMLableReader;
@ -10,7 +11,7 @@ import javax.servlet.http.HttpServletRequest;
/**
* Created by richie on 15/12/2.
*/
public class RHIframeSource implements XMLable {
public abstract class RHIframeSource implements XMLable, DependenceProvider {
public static final String XML_TAG = "RHIframeSource";

18
src/com/fr/plugin/form/widget/core/TemplateSource.java

@ -1,13 +1,21 @@
package com.fr.plugin.form.widget.core;
import com.fr.base.Parameter;
import com.fr.base.ParameterHelper;
import com.fr.base.TemplateUtils;
import com.fr.data.NetworkHelper;
import com.fr.general.Inter;
import com.fr.script.Calculator;
import com.fr.stable.ArrayUtils;
import com.fr.stable.script.CalculatorProvider;
import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLableReader;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* Created by richie on 15/12/2.
@ -48,6 +56,16 @@ public class TemplateSource extends RHIframeSource {
return null;
}
@Override
public String[] dependence(CalculatorProvider ca) {
Parameter[] parameters = ParameterHelper.analyze4Parameters(path, false);
List<String> collections = new ArrayList<String>();
for (Parameter parameter : parameters) {
collections.addAll(Arrays.asList(parameter.dependence(ca)));
}
return collections.toArray(new String[collections.size()]);
}
@Override
public String toString() {
return Inter.getLocText("Plugin_RH_Iframe_Template_Path");

16
src/com/fr/plugin/form/widget/core/URLSource.java

@ -1,12 +1,18 @@
package com.fr.plugin.form.widget.core;
import com.fr.base.Parameter;
import com.fr.base.ParameterHelper;
import com.fr.base.TemplateUtils;
import com.fr.general.Inter;
import com.fr.script.Calculator;
import com.fr.stable.script.CalculatorProvider;
import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLableReader;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Created by richie on 15/12/2.
@ -39,6 +45,16 @@ public class URLSource extends RHIframeSource {
}
}
@Override
public String[] dependence(CalculatorProvider ca) {
Parameter[] parameters = ParameterHelper.analyze4Parameters(url, false);
List<String> collections = new ArrayList<String>();
for (Parameter parameter : parameters) {
collections.addAll(Arrays.asList(parameter.dependence(ca)));
}
return collections.toArray(new String[collections.size()]);
}
@Override
public String toString() {
return Inter.getLocText("Plugin_RH_Iframe_Url");

Loading…
Cancel
Save