diff --git a/plugin.xml b/plugin.xml
index 95baed9..1af9e50 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -4,12 +4,13 @@
com.fr.solution.plugin.design.formula.script
yes
- 4.4
- 9.0
+ 4.5
+ 9.0~10.0
2017-10-20
richie
[2019-03-21]一个国际化问题。
[2019-03-19]修复在9.0中无法打开的问题。
[2018-12-19]适配10.0和增加繁体中文的支持。
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 5061d5d..a7a513a 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
@@ -6,12 +6,15 @@ import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea;
import com.fr.general.FRLogger;
import com.fr.general.Inter;
+import com.fr.log.FineLoggerFactory;
import com.fr.parser.FRLexer;
import com.fr.parser.FRParser;
+import com.fr.script.Calculator;
import com.fr.solution.plugin.design.formula.ui.evt.OperateListener;
import com.fr.stable.ProductConstants;
import com.fr.stable.StringUtils;
import com.fr.stable.script.Expression;
+import com.fr.third.antlr.ANTLRException;
import javax.swing.*;
import java.awt.*;
@@ -304,20 +307,14 @@ public abstract class BaseFormulaPane extends FurtherBasi
public void checkContentValid() {
// Execute Formula default cell element.
String formulaText = formulaTextArea.getText().trim();
-
- if (formulaText != null && formulaText.length() > 0) {
- StringReader in = new StringReader(formulaText);
-
- FRLexer lexer = new FRLexer(in);
- FRParser parser = new FRParser(lexer);
-
+ if (StringUtils.isNotEmpty(formulaText)) {
+ Calculator calculator = Calculator.createCalculator();
Expression expression = null;
try {
- expression = parser.parse();
- } catch (Exception e) {
+ expression = calculator.parse(formulaText);
+ } catch (ANTLRException e) {
FRLogger.getLogger().error(e.getMessage(), e);
}
-
JOptionPane.showMessageDialog(
BaseFormulaPane.this,
(expression != null ? Inter.getLocText("Plugin-Design_Basic_FormulaD_Valid_Formula") : Inter.getLocText("Plugin-Design_Basic_FormulaD_Invalid_Formula")) + ".", ProductConstants.PRODUCT_NAME,