Browse Source

KERNEL-1117 再次修改

pull/2/head
Kalven 5 years ago
parent
commit
1a41e36975
  1. 26
      src/main/java/com/fr/solution/plugin/design/formula/compat/FunctionConstants.java
  2. 7
      src/main/java/com/fr/solution/plugin/design/formula/ui/GroupFormulaPane.java
  3. 10
      src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/BasicFormulaPane.java

26
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<Mutable> containers = ExtraClassManagerKit.getInstance().getArray(FunctionDefContainer.MARK_STRING);
Set<Mutable> 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<Mutable> containers = ExtraClassManagerKit.getInstance().getArray(FunctionDefContainer.MARK_STRING);
Set<Mutable> containers = ExtraClassManager.getInstance().getArray(FunctionDefContainer.MARK_STRING);
if(!containers.isEmpty()){
for(Mutable container : containers){
Collections.addAll(all,createFunctionGroup(((FunctionDefContainer)container)).getDescriptions());

7
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);

10
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<Formula> {
@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

Loading…
Cancel
Save