From 1e9668c254967538128e06eba9dda1ae3ba99bae Mon Sep 17 00:00:00 2001 From: richie Date: Tue, 3 Sep 2019 09:39:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=BC=8F=E6=94=B9=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../compat/AbstractNameAndDescription.java | 37 +++++++++++++++++++ .../design/formula/compat/FunctionNAD.java | 16 ++++---- 2 files changed, 45 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/fr/solution/plugin/design/formula/compat/AbstractNameAndDescription.java diff --git a/src/main/java/com/fr/solution/plugin/design/formula/compat/AbstractNameAndDescription.java b/src/main/java/com/fr/solution/plugin/design/formula/compat/AbstractNameAndDescription.java new file mode 100644 index 0000000..3df5c74 --- /dev/null +++ b/src/main/java/com/fr/solution/plugin/design/formula/compat/AbstractNameAndDescription.java @@ -0,0 +1,37 @@ +package com.fr.solution.plugin.design.formula.compat; + +import com.fanruan.api.util.StringKit; +import com.fr.design.formula.NameAndDescription; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019-09-03 + */ +public abstract class AbstractNameAndDescription implements NameAndDescription { + + @Override + public String searchResult(String keyWord, boolean findDescription) { + String functionName = getName(); + if (StringKit.isBlank(functionName)) { + return null; + } + int sign = 1; + int length = keyWord.length(); + String temp = functionName.toUpperCase(); + for (int j = 0; j < length; j++) { + String check = keyWord.substring(j, j + 1); + int index = temp.indexOf(check.toUpperCase()); + if (index == -1) { + sign = 0; + break; + } else { + temp = temp.substring(index + 1); + } + } + if (sign == 1) { + return functionName; + } + return null; + } +} diff --git a/src/main/java/com/fr/solution/plugin/design/formula/compat/FunctionNAD.java b/src/main/java/com/fr/solution/plugin/design/formula/compat/FunctionNAD.java index cc75d60..2e1ed20 100644 --- a/src/main/java/com/fr/solution/plugin/design/formula/compat/FunctionNAD.java +++ b/src/main/java/com/fr/solution/plugin/design/formula/compat/FunctionNAD.java @@ -1,9 +1,7 @@ package com.fr.solution.plugin.design.formula.compat; -import com.fr.design.formula.AbstractNameAndDescription; -import com.fr.general.GeneralContext; -import com.fr.script.CalculatorEmbeddedFunction; -import com.fr.stable.StringUtils; +import com.fanruan.api.util.GeneralKit; +import com.fanruan.api.util.StringKit; import com.fr.stable.script.Function; import java.util.Locale; @@ -15,6 +13,8 @@ import java.util.Locale; */ public class FunctionNAD extends AbstractNameAndDescription { + private static final String LOCALE_PREFIX = "Fine-Core_Formula_"; + private Function fn; FunctionNAD(Function fn) { @@ -22,16 +22,16 @@ public class FunctionNAD extends AbstractNameAndDescription { } public String getName() { - return fn == null ? StringUtils.EMPTY : fn.getClass().getSimpleName(); + return fn == null ? StringKit.EMPTY : fn.getClass().getSimpleName(); } public String getDesc() { if (fn == null) { - return StringUtils.EMPTY; + return StringKit.EMPTY; } - Locale locale = GeneralContext.getLocale(); + Locale locale = GeneralKit.getLocale(); String describtion = fn.getDescription(locale); - if (describtion.startsWith(CalculatorEmbeddedFunction.LOCALE_PREFIX)) { + if (describtion.startsWith(LOCALE_PREFIX)) { return Locale.CHINA.equals(locale) ? fn.getCN() : fn.getEN(); }