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,