From 1a41e3697525013e7c6aca82eeef9ce1467179c0 Mon Sep 17 00:00:00 2001 From: Kalven Date: Sat, 31 Aug 2019 22:52:53 +0800 Subject: [PATCH] =?UTF-8?q?KERNEL-1117=20=E5=86=8D=E6=AC=A1=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../formula/compat/FunctionConstants.java | 26 +++++++++---------- .../design/formula/ui/GroupFormulaPane.java | 7 +++-- .../ui/type/impl/BasicFormulaPane.java | 10 ++----- 3 files changed, 18 insertions(+), 25 deletions(-) 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 02cab11..866c5e5 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 @@ -4,28 +4,28 @@ 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.StringKit; import com.fanruan.api.util.TypeKit; +import com.fr.plugin.ExtraClassManager; 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.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.FRLogger; @@ -137,7 +137,7 @@ public final class FunctionConstants { */ public static void addFunctionGroupFromPlugins(DefaultListModel listModel){ //hugh:自定义函数分组 - Set containers = ExtraClassManagerKit.getInstance().getArray(FunctionDefContainer.MARK_STRING); + Set containers = ExtraClassManager.getInstance().getArray(FunctionDefContainer.MARK_STRING); if(!containers.isEmpty()){ for(Mutable container : containers){ listModel.addElement(createFunctionGroup((FunctionDefContainer)container)); @@ -234,7 +234,7 @@ public final class FunctionConstants { @Override public NameAndDescription[] getDescriptions() { - FunctionDef[] fs = ExtraClassManagerKit.getInstance().getFunctionDef(); + FunctionDef[] fs = ExtraClassManager.getInstance().getFunctionDef(); int count = fs.length; FunctionDefNAD[] nads = new FunctionDefNAD[count]; for (int i = 0; i < count; i ++) { @@ -306,7 +306,7 @@ public final class FunctionConstants { Collections.addAll(all, PLUGIN.getDescriptions()); Collections.addAll(all, CUSTOM.getDescriptions()); //hugh:自定义函数分组 - Set containers = ExtraClassManagerKit.getInstance().getArray(FunctionDefContainer.MARK_STRING); + Set containers = ExtraClassManager.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 6583115..1b1b30d 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 @@ -2,7 +2,6 @@ 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.*; @@ -45,7 +44,7 @@ import com.fr.stable.UtilEvalError; /** * IOFile更改后悔出错不敢换,有instance,可能出错 */ -import com.fr.base.io.IOFile; +//import com.fr.base.io.IOFile; import com.fr.solution.plugin.design.formula.compat.DesignToolkit; import com.fr.solution.plugin.design.formula.compat.FunctionConstants; @@ -336,9 +335,9 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis CalculatorProvider calculator = CalculatorKit.createCalculator(); JTemplate template = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); if (template != null) { - IOFile file = (IOFile) template.getTarget(); + TableDataSource file = (TableDataSource) template.getTarget(); calculator.setAttribute(TableDataSource.class, file); - calculator.pushNameSpace(SimpleCellValueNameSpaceKit.getInstance()); + calculator.pushNameSpace(CalculatorKit.createSimpleCellValueNameSpace()); } BaseFormula formula = GroupFormulaPane.this.update(); String message = calculate(formula, formulaPane.analyze4Parameters(calculator), 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 d6a7606..71118d8 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,6 +1,7 @@ package com.fr.solution.plugin.design.formula.ui.type.impl; import com.fanruan.api.cal.CalculatorKit; +import com.fanruan.api.cal.FormulaKit; import com.fanruan.api.design.ui.component.code.UISyntaxTextArea; import com.fanruan.api.structure.Parameter; import com.fanruan.api.util.StringKit; @@ -73,14 +74,7 @@ public class BasicFormulaPane extends BaseFormulaPane { @Override protected boolean isValidFormula(String formulaText) { - Formula formula = createFormula(formulaText); - Expression expression = null; - try { - expression = (Expression) (formula.parse(CalculatorKit.createCalculator())); - } catch (ANTLRException e) { - FRLogger.getLogger().error(e.getMessage(), e); - } - return expression != null; + return FormulaKit.checkFormulaContent(formulaText); } @Override