From 8cf21f7c40fb2f8d21ea60e60610900eefecc6d2 Mon Sep 17 00:00:00 2001 From: Kalven Date: Sat, 31 Aug 2019 13:02:30 +0800 Subject: [PATCH] =?UTF-8?q?KERNEL-1117=20=E6=8F=92=E4=BB=B6=E5=9F=BA?= =?UTF-8?q?=E6=9C=AC=E6=94=B9=E5=86=99=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 4 +- .../design/formula/compat/DesignToolkit.java | 7 +- .../formula/compat/FunctionConstants.java | 63 ++++++++------- .../design/formula/ui/GroupFormulaPane.java | 80 ++++++++++--------- .../GroupFormulaPaneWhenReserveFormula.java | 2 +- .../formula/ui/type/BaseFormulaPane.java | 25 +++--- .../formula/ui/type/CategoryFormulaPane.java | 19 +++-- .../design/formula/ui/type/CommonEvent.java | 6 +- .../ui/type/impl/BasicFormulaPane.java | 35 ++++---- .../ui/type/impl/ScriptFormulaPane.java | 39 ++++----- 10 files changed, 154 insertions(+), 126 deletions(-) diff --git a/pom.xml b/pom.xml index 5c01230..bba9648 100644 --- a/pom.xml +++ b/pom.xml @@ -20,8 +20,8 @@ org.apache.maven.plugins maven-compiler-plugin - 6 - 6 + 8 + 8 diff --git a/src/main/java/com/fr/solution/plugin/design/formula/compat/DesignToolkit.java b/src/main/java/com/fr/solution/plugin/design/formula/compat/DesignToolkit.java index c6740e7..302418a 100644 --- a/src/main/java/com/fr/solution/plugin/design/formula/compat/DesignToolkit.java +++ b/src/main/java/com/fr/solution/plugin/design/formula/compat/DesignToolkit.java @@ -1,7 +1,8 @@ package com.fr.solution.plugin.design.formula.compat; -import com.fr.general.Inter; -import com.fr.stable.ProductConstants; +import com.fanruan.api.i18n.I18nKit; +import com.fanruan.api.macro.ProductConstants; + /** * @author richie @@ -14,7 +15,7 @@ public class DesignToolkit { public static String getLocText(String key) { if (version < 10) { - return Inter.getLocText(key); + return I18nKit.getLocText(key); } else { try { return (String) Class.forName("com.fr.design.i18n.Toolkit").getMethod("i18nText", new Class[]{String.class}).invoke(null, key); diff --git a/src/main/java/com/fr/solution/plugin/design/formula/compat/FunctionConstants.java b/src/main/java/com/fr/solution/plugin/design/formula/compat/FunctionConstants.java index 4098ddb..02cab11 100644 --- a/src/main/java/com/fr/solution/plugin/design/formula/compat/FunctionConstants.java +++ b/src/main/java/com/fr/solution/plugin/design/formula/compat/FunctionConstants.java @@ -1,31 +1,36 @@ package com.fr.solution.plugin.design.formula.compat; +import com.fanruan.api.design.util.FunctionDefNAD; +import com.fanruan.api.design.util.FunctionManagerKit; +import com.fanruan.api.design.util.NameAndFunctionList; +import com.fanruan.api.design.util.NameAndTypeAndFunctionList; +import com.fanruan.api.function.AVERAGE; +import com.fanruan.api.function.CHAR; +import com.fanruan.api.function.COUNT; +import com.fanruan.api.function.DATE; +import com.fanruan.api.function.MAX; +import com.fanruan.api.function.MIN; +import com.fanruan.api.function.RANGE; +import com.fanruan.api.function.SUM; +import com.fanruan.api.function.TIME; +import com.fanruan.api.macro.EncodeConstants; +import com.fanruan.api.macro.OperatingSystemKit; +import com.fanruan.api.plugin.ExtraClassManagerKit; import com.fanruan.api.util.GeneralKit; -import com.fanruan.api.util.ReflectKit; -import com.fr.design.formula.FunctionDefNAD; +import com.fanruan.api.util.StringKit; +import com.fanruan.api.util.TypeKit; + +import com.fr.stable.script.Function; +import com.fr.file.FunctionManagerProvider; +import com.fr.stable.fun.FunctionDefContainer; import com.fr.design.formula.FunctionGroup; +import com.fr.stable.fun.mark.Mutable; import com.fr.design.formula.NameAndDescription; -import com.fr.design.formula.NameAndFunctionList; -import com.fr.design.formula.NameAndTypeAndFunctionList; -import com.fr.file.FunctionManager; -import com.fr.function.AVERAGE; -import com.fr.function.CHAR; -import com.fr.function.COUNT; -import com.fr.function.DATE; -import com.fr.function.MAX; -import com.fr.function.MIN; -import com.fr.function.RANGE; -import com.fr.function.SUM; -import com.fr.function.TIME; -import com.fr.general.ComparatorUtils; + +//先不改 import com.fr.general.FRLogger; -import com.fr.plugin.ExtraClassManager; -import com.fr.stable.EncodeConstants; -import com.fr.stable.OperatingSystem; -import com.fr.stable.StringUtils; -import com.fr.stable.fun.FunctionDefContainer; -import com.fr.stable.fun.mark.Mutable; -import com.fr.stable.script.Function; + +//有问题 import com.fr.stable.script.FunctionDef; import javax.swing.*; @@ -96,7 +101,7 @@ public final class FunctionConstants { for (String fileName : findClassNamesUnderFilePath(classFilePath)) { try { Class cls = Class.forName(pkgName + "." + fileName.substring(0, fileName.length() - 6)); - if (ReflectKit.classInstanceOf(cls, iface)) { + if (TypeKit.classInstanceOf(cls, iface)) { Function inst; inst = (Function)cls.newInstance(); for (NameAndTypeAndFunctionList EMBFUNCTION : EMBFUNCTIONS) { @@ -132,7 +137,7 @@ public final class FunctionConstants { */ public static void addFunctionGroupFromPlugins(DefaultListModel listModel){ //hugh:自定义函数分组 - Set containers = ExtraClassManager.getInstance().getArray(FunctionDefContainer.MARK_STRING); + Set containers = ExtraClassManagerKit.getInstance().getArray(FunctionDefContainer.MARK_STRING); if(!containers.isEmpty()){ for(Mutable container : containers){ listModel.addElement(createFunctionGroup((FunctionDefContainer)container)); @@ -179,9 +184,9 @@ public final class FunctionConstants { if(classPath.endsWith("/")){ classPath = classPath.substring(0, classPath.length() - 1); } - if (!OperatingSystem.isWindows()){ + if (!OperatingSystemKit.isWindows()){ //windows里substring后是d:\123\456, mac下substring后是Application/123/456 - jarPath = StringUtils.perfectStart(jarPath, "/"); + jarPath = StringKit.perfectStart(jarPath, "/"); } ZipFile zip; @@ -229,7 +234,7 @@ public final class FunctionConstants { @Override public NameAndDescription[] getDescriptions() { - FunctionDef[] fs = ExtraClassManager.getInstance().getFunctionDef(); + FunctionDef[] fs = ExtraClassManagerKit.getInstance().getFunctionDef(); int count = fs.length; FunctionDefNAD[] nads = new FunctionDefNAD[count]; for (int i = 0; i < count; i ++) { @@ -249,7 +254,7 @@ public final class FunctionConstants { @Override public NameAndDescription[] getDescriptions() { - FunctionManager funtionManager = FunctionManager.getInstance(); + FunctionManagerProvider funtionManager = FunctionManagerKit.getInstance(); if (funtionManager != null) { int functionDefCount = funtionManager.getFunctionDefCount(); @@ -301,7 +306,7 @@ public final class FunctionConstants { Collections.addAll(all, PLUGIN.getDescriptions()); Collections.addAll(all, CUSTOM.getDescriptions()); //hugh:自定义函数分组 - Set containers = ExtraClassManager.getInstance().getArray(FunctionDefContainer.MARK_STRING); + Set containers = ExtraClassManagerKit.getInstance().getArray(FunctionDefContainer.MARK_STRING); if(!containers.isEmpty()){ for(Mutable container : containers){ Collections.addAll(all,createFunctionGroup(((FunctionDefContainer)container)).getDescriptions()); diff --git a/src/main/java/com/fr/solution/plugin/design/formula/ui/GroupFormulaPane.java b/src/main/java/com/fr/solution/plugin/design/formula/ui/GroupFormulaPane.java index 9500904..6583115 100644 --- a/src/main/java/com/fr/solution/plugin/design/formula/ui/GroupFormulaPane.java +++ b/src/main/java/com/fr/solution/plugin/design/formula/ui/GroupFormulaPane.java @@ -1,49 +1,57 @@ package com.fr.solution.plugin.design.formula.ui; - +import com.fanruan.api.cal.CalculatorKit; +import com.fanruan.api.cal.ParameterKit; +import com.fanruan.api.cal.namespace.SimpleCellValueNameSpaceKit; +import com.fanruan.api.design.DesignKit; +import com.fanruan.api.design.ui.container.DialogActionAdapter; +import com.fanruan.api.design.ui.component.*; +import com.fanruan.api.design.ui.container.BasicPane; +import com.fanruan.api.design.ui.action.UpdateAction; +import com.fanruan.api.design.ui.container.HistoryTemplateListPane; +import com.fanruan.api.design.ui.container.ParameterInputPane; +import com.fanruan.api.design.ui.container.UIScrollPane; +import com.fanruan.api.design.ui.component.QuickList; +import com.fanruan.api.macro.EncodeConstants; import com.fanruan.api.util.IOKit; import com.fanruan.api.design.util.GUICoreKit; import com.fanruan.api.util.*; -import com.fr.base.BaseFormula; - -import com.fr.base.FRContext; -import com.fr.base.Parameter; -import com.fr.base.ParameterMapNameSpace; -import com.fr.base.io.IOFile; +/** + * 接口 + */ +import com.fr.base.BaseFormula; import com.fr.data.TableDataSource; -import com.fr.design.actions.UpdateAction; -import com.fr.design.border.UIRoundedBorder; import com.fr.design.constants.UIConstants; -import com.fr.design.dialog.BasicDialog; -import com.fr.design.dialog.BasicPane; -import com.fr.design.dialog.DialogActionAdapter; -import com.fr.design.file.HistoryTemplateListPane; -import com.fr.design.formula.FunctionGroup; -import com.fr.design.formula.NameAndDescription; import com.fr.design.formula.UIFormula; import com.fr.design.formula.VariableResolver; -import com.fr.design.gui.ibutton.UIButton; -import com.fr.design.gui.icontainer.UIScrollPane; -import com.fr.design.gui.ilable.UILabel; -import com.fr.design.gui.ilist.QuickList; -import com.fr.design.gui.itextarea.UITextArea; -import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.mainframe.DesignerContext; +import com.fr.general.FRLogger; +import com.fr.stable.ParameterProvider; +import com.fr.stable.script.CalculatorProvider; +import com.fr.design.formula.FunctionGroup; +/** + * 调用了其他函数的方法,返回值是父类,无法赋值给子类 + */ +import com.fr.design.dialog.BasicDialog; +import com.fr.design.formula.NameAndDescription; import com.fr.design.mainframe.JTemplate; -import com.fr.design.parameter.ParameterInputPane; +/** + * 类似于上一个问题,不过是无法获取父类异常 + */ +import com.fr.stable.UtilEvalError; + +/** + * IOFile更改后悔出错不敢换,有instance,可能出错 + */ +import com.fr.base.io.IOFile; -import com.fr.general.FRLogger; -import com.fr.report.core.namespace.SimpleCellValueNameSpace; -import com.fr.script.Calculator; 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.ui.evt.OperateListener; import com.fr.solution.plugin.design.formula.ui.type.CategoryFormulaPane; -import com.fr.stable.EncodeConstants; -import com.fr.stable.UtilEvalError; + import javax.swing.*; import javax.swing.event.ListSelectionEvent; @@ -325,31 +333,31 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis private ActionListener calculateActionListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - Calculator calculator = Calculator.createCalculator(); + CalculatorProvider calculator = CalculatorKit.createCalculator(); JTemplate template = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); if (template != null) { IOFile file = (IOFile) template.getTarget(); calculator.setAttribute(TableDataSource.class, file); - calculator.pushNameSpace(SimpleCellValueNameSpace.getInstance()); + calculator.pushNameSpace(SimpleCellValueNameSpaceKit.getInstance()); } BaseFormula formula = GroupFormulaPane.this.update(); String message = calculate(formula, formulaPane.analyze4Parameters(calculator), calculator); - JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), message); + JOptionPane.showMessageDialog(DesignKit.getDesignerFrame(), message); } }; - private String calculate(BaseFormula formula, Parameter[] parameters, Calculator calculator) { + private String calculate(BaseFormula formula, ParameterProvider[] parameters, CalculatorProvider calculator) { final Map parameterMap = new HashMap(); if (ArrayKit.isNotEmpty(parameters)) { final ParameterInputPane pPane = new ParameterInputPane(parameters); - pPane.showSmallWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() { + pPane.showSmallWindow(DesignKit.getDesignerFrame(), new DialogActionAdapter() { @Override public void doOk() { parameterMap.putAll(pPane.update()); } }).setVisible(true); } - calculator.pushNameSpace(ParameterMapNameSpace.create(parameterMap)); + calculator.pushNameSpace(ParameterKit.createParameterMapNameSpace(parameterMap)); String message; try { Object result = formula.evalValue(calculator); @@ -551,7 +559,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis StringBuilder desBuf = new StringBuilder(); try { String path; - Locale locale = FRContext.getLocale(); + Locale locale = GeneralKit.getLocale(); if (locale.equals(Locale.CHINA)) { path = "/com/fr/design/insert/formula/variable/cn/"; } else { @@ -627,7 +635,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis // desArea。setEnabled(false); desArea.setText(this.getTextAreaText()); basicPane.add(new UIScrollPane(desArea), BorderLayout.CENTER); - BasicDialog dialog = basicPane.showWindow(DesignerContext.getDesignerFrame()); + BasicDialog dialog = basicPane.showWindow(DesignKit.getDesignerFrame()); dialog.setVisible(true); } diff --git a/src/main/java/com/fr/solution/plugin/design/formula/ui/GroupFormulaPaneWhenReserveFormula.java b/src/main/java/com/fr/solution/plugin/design/formula/ui/GroupFormulaPaneWhenReserveFormula.java index 58e8055..b11452e 100644 --- a/src/main/java/com/fr/solution/plugin/design/formula/ui/GroupFormulaPaneWhenReserveFormula.java +++ b/src/main/java/com/fr/solution/plugin/design/formula/ui/GroupFormulaPaneWhenReserveFormula.java @@ -1,8 +1,8 @@ package com.fr.solution.plugin.design.formula.ui; +import com.fanruan.api.design.ui.component.UICheckBox; import com.fr.base.BaseFormula; import com.fr.design.formula.VariableResolver; -import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.solution.plugin.design.formula.compat.DesignToolkit; import javax.swing.*; diff --git a/src/main/java/com/fr/solution/plugin/design/formula/ui/type/BaseFormulaPane.java b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/BaseFormulaPane.java index 9d0e257..6b742e8 100644 --- a/src/main/java/com/fr/solution/plugin/design/formula/ui/type/BaseFormulaPane.java +++ b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/BaseFormulaPane.java @@ -1,13 +1,14 @@ package com.fr.solution.plugin.design.formula.ui.type; -import com.fanruan.api.util.StringKit; +import com.fanruan.api.design.ui.component.code.UISyntaxTextArea; +import com.fanruan.api.i18n.I18nKit; import com.fr.base.BaseFormula; -import com.fr.design.beans.FurtherBasicBeanPane; -import com.fr.design.gui.icontainer.UIScrollPane; -import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea; -import com.fr.general.Inter; +import com.fanruan.api.design.ui.container.FurtherBasicBeanPane; +import com.fanruan.api.macro.ProductConstants; +import com.fanruan.api.util.StringKit; +import com.fanruan.api.design.ui.container.UIScrollPane; + import com.fr.solution.plugin.design.formula.ui.evt.OperateListener; -import com.fr.stable.ProductConstants; import javax.swing.*; import java.awt.*; @@ -27,7 +28,7 @@ public abstract class BaseFormulaPane extends FurtherBasi private static final int KEY_40 = 40; - private RSyntaxTextArea formulaTextArea; + private UISyntaxTextArea formulaTextArea; private int currentPosition = 0; private int beginPosition = 0; private int insertPosition = 0; @@ -58,7 +59,7 @@ public abstract class BaseFormulaPane extends FurtherBasi formulaTextArea.setForeground(Color.black); String text = formulaTextArea.getText(); // 判断在中文输入状态是否还包含提示符 要删掉 - String tip = "\n\n\n" + Inter.getLocText("Plugin-Design_Basic_FormulaPane_Tips"); + String tip = "\n\n\n" + I18nKit.getLocText("Plugin-Design_Basic_FormulaPane_Tips"); if (text.contains(tip)) { text = text.substring(0, text.indexOf(tip)); insertPosition = 0; @@ -141,12 +142,12 @@ public abstract class BaseFormulaPane extends FurtherBasi } - protected abstract RSyntaxTextArea createContentEditor(); + protected abstract UISyntaxTextArea createContentEditor(); protected void fixContent(String content) { if (content.trim().equals("=")) { this.formulaTextArea.setForeground(Color.gray); - this.formulaTextArea.setText("\n\n\n" + Inter.getLocText("Plugin-Design_Basic_FormulaPane_Tips")); + this.formulaTextArea.setText("\n\n\n" + I18nKit.getLocText("Plugin-Design_Basic_FormulaPane_Tips")); this.formulaTextArea.setCaretPosition(0); ifHasBeenWritten = 0; operateListener.clearMathListModel(); @@ -302,7 +303,7 @@ public abstract class BaseFormulaPane extends FurtherBasi if (StringKit.isNotEmpty(formulaText)) { JOptionPane.showMessageDialog( BaseFormulaPane.this, - (isValidFormula(formulaText) ? Inter.getLocText("Plugin-Design_Basic_FormulaD_Valid_Formula") : Inter.getLocText("Plugin-Design_Basic_FormulaD_Invalid_Formula")) + ".", ProductConstants.PRODUCT_NAME, + (isValidFormula(formulaText) ? I18nKit.getLocText("Plugin-Design_Basic_FormulaD_Valid_Formula") : I18nKit.getLocText("Plugin-Design_Basic_FormulaD_Invalid_Formula")) + ".", ProductConstants.PRODUCT_NAME, JOptionPane.INFORMATION_MESSAGE); } } @@ -320,6 +321,6 @@ public abstract class BaseFormulaPane extends FurtherBasi @Override public String title4PopupWindow() { - return Inter.getLocText("Plugin-Design_Group_Formula_Basic_Title"); + return I18nKit.getLocText("Plugin-Design_Group_Formula_Basic_Title"); } } diff --git a/src/main/java/com/fr/solution/plugin/design/formula/ui/type/CategoryFormulaPane.java b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/CategoryFormulaPane.java index 57c942b..0520298 100644 --- a/src/main/java/com/fr/solution/plugin/design/formula/ui/type/CategoryFormulaPane.java +++ b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/CategoryFormulaPane.java @@ -1,18 +1,23 @@ package com.fr.solution.plugin.design.formula.ui.type; -import com.fr.base.BaseFormula; -import com.fr.base.Parameter; -import com.fr.design.beans.FurtherBasicBeanPane; -import com.fr.design.gui.frpane.UIRadioPane; -import com.fr.script.Calculator; +import com.fanruan.api.design.ui.component.UIRadioPane; +import com.fr.stable.ParameterProvider; +import com.fr.stable.script.CalculatorProvider; import com.fr.solution.plugin.design.formula.ui.evt.OperateListener; + import com.fr.solution.plugin.design.formula.ui.type.impl.BasicFormulaPane; import com.fr.solution.plugin.design.formula.ui.type.impl.ScriptFormulaPane; +/** + * 有问题,子类无法重写abstract方法的参数无法修改 + */ +import com.fr.design.beans.FurtherBasicBeanPane; +import com.fr.base.BaseFormula; + import java.util.ArrayList; import java.util.List; -public class CategoryFormulaPane extends UIRadioPane{ +public class CategoryFormulaPane extends UIRadioPane { private static final long serialVersionUID = 6102846618673364636L; private List events; @@ -62,7 +67,7 @@ public class CategoryFormulaPane extends UIRadioPane{ } } - public Parameter[] analyze4Parameters(Calculator calculator) { + public ParameterProvider[] analyze4Parameters(CalculatorProvider calculator) { return events.get(cardNamesPane.getSelectedIndex()).analyze4Parameters(calculator); } diff --git a/src/main/java/com/fr/solution/plugin/design/formula/ui/type/CommonEvent.java b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/CommonEvent.java index c11f7d0..1e9c9d1 100644 --- a/src/main/java/com/fr/solution/plugin/design/formula/ui/type/CommonEvent.java +++ b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/CommonEvent.java @@ -1,8 +1,8 @@ package com.fr.solution.plugin.design.formula.ui.type; -import com.fr.base.Parameter; -import com.fr.script.Calculator; import com.fr.solution.plugin.design.formula.ui.evt.OperateListener; +import com.fr.stable.ParameterProvider; +import com.fr.stable.script.CalculatorProvider; public interface CommonEvent { @@ -18,5 +18,5 @@ public interface CommonEvent { void setOperateListener(OperateListener listener); - Parameter[] analyze4Parameters(Calculator calculator); + ParameterProvider[] analyze4Parameters(CalculatorProvider calculator); } diff --git a/src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/BasicFormulaPane.java b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/BasicFormulaPane.java index 404d896..d6a7606 100644 --- a/src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/BasicFormulaPane.java +++ b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/BasicFormulaPane.java @@ -1,17 +1,22 @@ package com.fr.solution.plugin.design.formula.ui.type.impl; +import com.fanruan.api.cal.CalculatorKit; +import com.fanruan.api.design.ui.component.code.UISyntaxTextArea; +import com.fanruan.api.structure.Parameter; import com.fanruan.api.util.StringKit; -import com.fr.base.Formula; -import com.fr.base.Parameter; -import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea; +import com.fanruan.api.structure.Formula; +import com.fanruan.api.structure.Expression; + + + import com.fr.design.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants; -import com.fr.general.FRLogger; -import com.fr.script.Calculator; import com.fr.solution.plugin.design.formula.ui.type.BaseFormulaPane; -import com.fr.stable.script.Expression; -import com.fr.third.antlr.ANTLRException; -import java.util.Set; +import com.fr.stable.ParameterProvider; +import com.fr.stable.script.CalculatorProvider; +//有问题 +import com.fr.third.antlr.ANTLRException; +import com.fr.general.FRLogger; public class BasicFormulaPane extends BaseFormulaPane { @@ -46,13 +51,13 @@ public class BasicFormulaPane extends BaseFormulaPane { @Override - protected RSyntaxTextArea createContentEditor() { - RSyntaxTextArea formulaTextArea = new RSyntaxTextArea(); + protected UISyntaxTextArea createContentEditor() { + UISyntaxTextArea formulaTextArea = new UISyntaxTextArea(); configFormulaArea(formulaTextArea); return formulaTextArea; } - protected void configFormulaArea(RSyntaxTextArea formulaTextArea) { + protected void configFormulaArea(UISyntaxTextArea formulaTextArea) { formulaTextArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_FORMULA); formulaTextArea.setAnimateBracketMatching(true); formulaTextArea.setAntiAliasingEnabled(true); @@ -71,7 +76,7 @@ public class BasicFormulaPane extends BaseFormulaPane { Formula formula = createFormula(formulaText); Expression expression = null; try { - expression = formula.parse(Calculator.createCalculator()); + expression = (Expression) (formula.parse(CalculatorKit.createCalculator())); } catch (ANTLRException e) { FRLogger.getLogger().error(e.getMessage(), e); } @@ -79,13 +84,13 @@ public class BasicFormulaPane extends BaseFormulaPane { } @Override - public Parameter[] analyze4Parameters(Calculator calculator) { + public ParameterProvider[] analyze4Parameters(CalculatorProvider calculator) { Formula formula = updateBean(); if (formula == null) { - return new Parameter[0]; + return new ParameterProvider[0]; } String[] arr = formula.dependence(calculator); - Parameter[] parameters = new Parameter[arr.length]; + ParameterProvider[] parameters = new ParameterProvider[arr.length]; for (int i = 0, len = arr.length; i < len; i ++) { parameters[i] = new Parameter(arr[i]); } diff --git a/src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/ScriptFormulaPane.java b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/ScriptFormulaPane.java index 5cd85c6..4868706 100644 --- a/src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/ScriptFormulaPane.java +++ b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/ScriptFormulaPane.java @@ -1,17 +1,20 @@ package com.fr.solution.plugin.design.formula.ui.type.impl; - +; +import com.fanruan.api.base.ScriptFormula; +import com.fanruan.api.cal.CalculatorKit; +import com.fanruan.api.cal.ParameterKit; +import com.fanruan.api.design.ui.component.code.UISyntaxTextArea; +import com.fanruan.api.i18n.I18nKit; +import com.fanruan.api.script.ScriptKit; import com.fanruan.api.util.StringKit; import com.fanruan.api.util.RenderKit; -import com.fr.base.Parameter; -import com.fr.base.ParameterHelper; -import com.fr.base.ScriptFormula; -import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea; + + import com.fr.design.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants; import com.fr.general.FRLogger; -import com.fr.general.Inter; -import com.fr.script.Calculator; -import com.fr.script.ScriptFactory; import com.fr.solution.plugin.design.formula.ui.type.BaseFormulaPane; +import com.fr.stable.ParameterProvider; +import com.fr.stable.script.CalculatorProvider; import java.util.HashMap; import java.util.Map; @@ -24,8 +27,8 @@ public class ScriptFormulaPane extends BaseFormulaPane { "})();"; @Override - protected RSyntaxTextArea createContentEditor() { - RSyntaxTextArea formulaTextArea = new RSyntaxTextArea(); + protected UISyntaxTextArea createContentEditor() { + UISyntaxTextArea formulaTextArea = new UISyntaxTextArea(); formulaTextArea.setCloseCurlyBraces(true); formulaTextArea.setLineWrap(true); formulaTextArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT); @@ -80,12 +83,12 @@ public class ScriptFormulaPane extends BaseFormulaPane { @Override protected boolean isValidFormula(String formulaText) { - Calculator calculator = Calculator.createCalculator(); + CalculatorProvider calculator = CalculatorKit.createCalculator(); ScriptFormula formula = createFormula(formulaText); - Parameter[] parameters = analyze4Parameters(calculator); + ParameterProvider[] parameters = analyze4Parameters(calculator); Map map = new HashMap(); - for (Parameter parameter : parameters) { + for (ParameterProvider parameter : parameters) { String name = parameter.getName(); Object value = parameter.getValue(); if (value instanceof Boolean) { @@ -99,7 +102,7 @@ public class ScriptFormulaPane extends BaseFormulaPane { try { String content = RenderKit.renderParameter4Tpl(formula.getPureContent(), map); - ScriptFactory.newSingletonScriptEngine().eval(String.format(FUN_TPL, content)); + ScriptKit.newScriptEngine().eval(String.format(FUN_TPL, content)); } catch (Exception e) { FRLogger.getLogger().error(e.getMessage(), e); return false; @@ -108,16 +111,16 @@ public class ScriptFormulaPane extends BaseFormulaPane { } @Override - public Parameter[] analyze4Parameters(Calculator calculator) { + public ParameterProvider[] analyze4Parameters(CalculatorProvider calculator) { ScriptFormula scriptFormula = updateBean(); if (scriptFormula == null) { - return new Parameter[0]; + return new ParameterProvider[0]; } - return ParameterHelper.analyze4Parameters(scriptFormula.getContent(), true); + return ParameterKit.analyze4Parameters(scriptFormula.getContent(), true); } @Override public String title4PopupWindow() { - return Inter.getLocText("Plugin-Design_Group_Formula_Script_Title"); + return I18nKit.getLocText("Plugin-Design_Group_Formula_Script_Title"); } }