Browse Source

KERNEL-1117 完成了插件部分SDK实现

pull/1/head
Kalven 5 years ago
parent
commit
86904e54b5
  1. 4
      build.xml
  2. 29
      src/main/java/com/fr/solution/plugin/design/formula/ui/GroupFormulaPane.java
  3. 3
      src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/BasicFormulaPane.java
  4. 5
      src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/ScriptFormulaPane.java

4
build.xml

@ -88,8 +88,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>

29
src/main/java/com/fr/solution/plugin/design/formula/ui/GroupFormulaPane.java

@ -1,7 +1,11 @@
package com.fr.solution.plugin.design.formula.ui; package com.fr.solution.plugin.design.formula.ui;
import com.fanruan.api.util.*;
import com.fr.base.BaseFormula; import com.fr.base.BaseFormula;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.base.FRContext; import com.fr.base.FRContext;
import com.fr.base.Parameter; import com.fr.base.Parameter;
import com.fr.base.ParameterMapNameSpace; import com.fr.base.ParameterMapNameSpace;
@ -28,18 +32,17 @@ import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate; import com.fr.design.mainframe.JTemplate;
import com.fr.design.parameter.ParameterInputPane; import com.fr.design.parameter.ParameterInputPane;
import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.FRLogger; import com.fr.general.FRLogger;
import com.fr.general.GeneralUtils;
import com.fr.report.core.namespace.SimpleCellValueNameSpace; import com.fr.report.core.namespace.SimpleCellValueNameSpace;
import com.fr.script.Calculator; import com.fr.script.Calculator;
import com.fr.solution.plugin.design.formula.compat.DesignToolkit; import com.fr.solution.plugin.design.formula.compat.DesignToolkit;
import com.fr.solution.plugin.design.formula.compat.FunctionConstants; import com.fr.solution.plugin.design.formula.compat.FunctionConstants;
import com.fr.solution.plugin.design.formula.ui.evt.OperateListener; import com.fr.solution.plugin.design.formula.ui.evt.OperateListener;
import com.fr.solution.plugin.design.formula.ui.type.CategoryFormulaPane; import com.fr.solution.plugin.design.formula.ui.type.CategoryFormulaPane;
import com.fr.stable.ArrayUtils;
import com.fr.stable.EncodeConstants; import com.fr.stable.EncodeConstants;
import com.fr.stable.StringUtils;
import com.fr.stable.UtilEvalError; import com.fr.stable.UtilEvalError;
import javax.swing.*; import javax.swing.*;
@ -252,7 +255,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
NameAndDescription and = descriptions[i]; NameAndDescription and = descriptions[i];
String functionName = and.searchResult(keyWord, findDescription); String functionName = and.searchResult(keyWord, findDescription);
if (StringUtils.isNotBlank(functionName)) { if (StringKit.isNotBlank(functionName)) {
listModel.addElement(functionName); listModel.addElement(functionName);
} }
} }
@ -337,7 +340,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
private String calculate(BaseFormula formula, Parameter[] parameters, Calculator calculator) { private String calculate(BaseFormula formula, Parameter[] parameters, Calculator calculator) {
final Map<String, Object> parameterMap = new HashMap<String, Object>(); final Map<String, Object> parameterMap = new HashMap<String, Object>();
if (ArrayUtils.isNotEmpty(parameters)) { if (ArrayKit.isNotEmpty(parameters)) {
final ParameterInputPane pPane = new ParameterInputPane(parameters); final ParameterInputPane pPane = new ParameterInputPane(parameters);
pPane.showSmallWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() { pPane.showSmallWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() {
@Override @Override
@ -350,7 +353,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
String message; String message;
try { try {
Object result = formula.evalValue(calculator); Object result = formula.evalValue(calculator);
message = DesignToolkit.getLocText("Plugin-Design_Group_Formula_Result") + ":" + GeneralUtils.objectToString(result); message = DesignToolkit.getLocText("Plugin-Design_Group_Formula_Result") + ":" + GeneralKit.objectToString(result);
} catch (UtilEvalError utilEvalError) { } catch (UtilEvalError utilEvalError) {
message = DesignToolkit.getLocText("Plugin-Design_Group_Formula_Calculate_Error") + ":" + utilEvalError.getMessage(); message = DesignToolkit.getLocText("Plugin-Design_Group_Formula_Calculate_Error") + ":" + utilEvalError.getMessage();
} }
@ -474,7 +477,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
popupMenu.add(lookDetailAction); popupMenu.add(lookDetailAction);
// peter: 只有弹出菜单有子菜单的时候,才需要弹出来. // peter: 只有弹出菜单有子菜单的时候,才需要弹出来.
GUICoreUtils.showPopupMenu(popupMenu, functionNameList, evt.getX() - 1, evt.getY() - 1); GUICoreKit.showPopupMenu(popupMenu, functionNameList, evt.getX() - 1, evt.getY() - 1);
} }
} }
}); });
@ -518,7 +521,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
private StringBuilder getText(TextUserObject selectedValue, String path) throws IOException { private StringBuilder getText(TextUserObject selectedValue, String path) throws IOException {
Reader desReader; Reader desReader;
StringBuilder desBuf = new StringBuilder(); StringBuilder desBuf = new StringBuilder();
InputStream desInputStream = BaseUtils.readResource(path + (selectedValue).displayText + ".txt"); InputStream desInputStream = BaseKit.readResource(path + (selectedValue).displayText + ".txt");
if (desInputStream == null) { if (desInputStream == null) {
String description = ""; String description = "";
desReader = new StringReader(description); desReader = new StringReader(description);
@ -706,24 +709,24 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
} }
rootNode.add(new TextFolderUserObject(DesignToolkit.getLocText("Plugin-Design_Basic_FormulaD_Data_Fields"), rootNode.add(new TextFolderUserObject(DesignToolkit.getLocText("Plugin-Design_Basic_FormulaD_Data_Fields"),
BaseUtils.readIcon("/com/fr/design/images/dialog/table.png"), BaseKit.readIcon("/com/fr/design/images/dialog/table.png"),
variableResolver.resolveColumnNames()).createMutableTreeNode()); variableResolver.resolveColumnNames()).createMutableTreeNode());
// Set cutReport Variable // Set cutReport Variable
rootNode.add(new TextFolderUserObject(DesignToolkit.getLocText("Plugin-Design_Basic_FormulaPane_Variables"), rootNode.add(new TextFolderUserObject(DesignToolkit.getLocText("Plugin-Design_Basic_FormulaPane_Variables"),
BaseUtils.readIcon("/com/fr/design/images/dialog/variable.png"), BaseKit.readIcon("/com/fr/design/images/dialog/variable.png"),
variableResolver.resolveCurReportVariables()).createMutableTreeNode()); variableResolver.resolveCurReportVariables()).createMutableTreeNode());
rootNode.add(new TextFolderUserObject(DesignToolkit.getLocText("Plugin-Design_Basic_Parameter_Source_Type_Tabledata"), rootNode.add(new TextFolderUserObject(DesignToolkit.getLocText("Plugin-Design_Basic_Parameter_Source_Type_Tabledata"),
BaseUtils.readIcon("/com/fr/design/images/dialog/parameter.gif"), BaseKit.readIcon("/com/fr/design/images/dialog/parameter.gif"),
variableResolver.resolveTableDataParameterVariables()).createMutableTreeNode()); variableResolver.resolveTableDataParameterVariables()).createMutableTreeNode());
rootNode.add(new TextFolderUserObject(DesignToolkit.getLocText("Plugin-Design_Basic_ParameterD_Report_Parameter"), rootNode.add(new TextFolderUserObject(DesignToolkit.getLocText("Plugin-Design_Basic_ParameterD_Report_Parameter"),
BaseUtils.readIcon("/com/fr/design/images/m_report/p.gif"), BaseKit.readIcon("/com/fr/design/images/m_report/p.gif"),
variableResolver.resolveReportParameterVariables()).createMutableTreeNode()); variableResolver.resolveReportParameterVariables()).createMutableTreeNode());
rootNode.add(new TextFolderUserObject(DesignToolkit.getLocText("Plugin-Design_Basic_M_Server_Global_Parameters"), rootNode.add(new TextFolderUserObject(DesignToolkit.getLocText("Plugin-Design_Basic_M_Server_Global_Parameters"),
BaseUtils.readIcon("/com/fr/design/images/dialog/parameter.gif"), BaseKit.readIcon("/com/fr/design/images/dialog/parameter.gif"),
variableResolver.resolveGlobalParameterVariables()).createMutableTreeNode()); variableResolver.resolveGlobalParameterVariables()).createMutableTreeNode());
variableModel.reload(); variableModel.reload();

3
src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/BasicFormulaPane.java

@ -1,5 +1,6 @@
package com.fr.solution.plugin.design.formula.ui.type.impl; package com.fr.solution.plugin.design.formula.ui.type.impl;
import com.fanruan.api.util.StringKit;
import com.fr.base.Formula; import com.fr.base.Formula;
import com.fr.base.Parameter; import com.fr.base.Parameter;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea; import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea;
@ -36,7 +37,7 @@ public class BasicFormulaPane extends BaseFormulaPane<Formula> {
@Override @Override
protected Formula createFormula(String content) { protected Formula createFormula(String content) {
Formula formula; Formula formula;
if (StringUtils.isEmpty(content) || content.trim().charAt(0) == '=') { if (StringKit.isEmpty(content) || content.trim().charAt(0) == '=') {
formula = new Formula(content); formula = new Formula(content);
} else { } else {
formula = new Formula("=" + content); formula = new Formula("=" + content);

5
src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/ScriptFormulaPane.java

@ -1,9 +1,9 @@
package com.fr.solution.plugin.design.formula.ui.type.impl; package com.fr.solution.plugin.design.formula.ui.type.impl;
import com.fanruan.api.util.TemplateKit;
import com.fr.base.Parameter; import com.fr.base.Parameter;
import com.fr.base.ParameterHelper; import com.fr.base.ParameterHelper;
import com.fr.base.ScriptFormula; import com.fr.base.ScriptFormula;
import com.fr.base.TemplateUtils;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea; import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants; import com.fr.design.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants;
import com.fr.general.FRLogger; import com.fr.general.FRLogger;
@ -13,7 +13,6 @@ import com.fr.script.ScriptFactory;
import com.fr.solution.plugin.design.formula.ui.type.BaseFormulaPane; import com.fr.solution.plugin.design.formula.ui.type.BaseFormulaPane;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import javax.script.ScriptException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -99,7 +98,7 @@ public class ScriptFormulaPane extends BaseFormulaPane<ScriptFormula> {
} }
try { try {
String content = TemplateUtils.renderParameter4Tpl(formula.getPureContent(), map); String content = TemplateKit.renderParameter4Tpl(formula.getPureContent(), map);
ScriptFactory.newSingletonScriptEngine().eval(String.format(FUN_TPL, content)); ScriptFactory.newSingletonScriptEngine().eval(String.format(FUN_TPL, content));
} catch (Exception e) { } catch (Exception e) {
FRLogger.getLogger().error(e.getMessage(), e); FRLogger.getLogger().error(e.getMessage(), e);

Loading…
Cancel
Save