fnList = new ArrayList<>();
+
+ public NameAndFunctionList(String var1, Function[] var2) {
+ this.name = var1;
+ this.fnList.addAll(Arrays.asList(var2));
+ }
+
+ public String getGroupName() {
+ return this.name;
+ }
+
+ public NameAndDescription[] getDescriptions() {
+ NameAndDescription[] var1 = new NameAndDescription[this.fnList.size()];
+
+ for (int var2 = 0; var2 < var1.length; ++var2) {
+ var1[var2] = new FunctionNAD(this.fnList.get(var2));
+ }
+
+ return var1;
}
}
diff --git a/src/main/java/com/fr/solution/plugin/design/formula/compat/NameAndTypeAndFunctionList.java b/src/main/java/com/fr/solution/plugin/design/formula/compat/NameAndTypeAndFunctionList.java
index f8220ce..e2b4b1d 100644
--- a/src/main/java/com/fr/solution/plugin/design/formula/compat/NameAndTypeAndFunctionList.java
+++ b/src/main/java/com/fr/solution/plugin/design/formula/compat/NameAndTypeAndFunctionList.java
@@ -4,12 +4,26 @@ import com.fr.stable.script.Function;
/**
* 名字和类型对应的函数列表
+ *
* @author Kalven
* @version 10.0
* Created by Kalven on 2019/8/31
*/
-public class NameAndTypeAndFunctionList extends com.fr.design.formula.NameAndTypeAndFunctionList {
+public class NameAndTypeAndFunctionList extends NameAndFunctionList {
+
+ private Function.Type type;
+
public NameAndTypeAndFunctionList(String name, Function.Type type) {
- super(name, type);
+ super(name, new Function[0]);
+
+ this.type = type;
+ }
+
+ public boolean test(Function fn) {
+ if (fn != null && fn.getType() == this.type) {
+ return fnList.add(fn);
+ }
+
+ return false;
}
}
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 938cb00..55cfe2e 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
@@ -3,53 +3,39 @@ package com.fr.solution.plugin.design.formula.ui;
import com.fanruan.api.cal.CalculatorKit;
import com.fanruan.api.cal.ParameterKit;
import com.fanruan.api.design.DesignKit;
-import com.fanruan.api.design.ui.component.*;
-import com.fanruan.api.design.ui.container.BasicPane;
+import com.fanruan.api.design.macro.UIConstants;
import com.fanruan.api.design.ui.action.UpdateAction;
-import com.fanruan.api.design.work.ParameterInputPane;
-import com.fanruan.api.design.ui.container.UIScrollPane;
+import com.fanruan.api.design.ui.component.UIButton;
+import com.fanruan.api.design.ui.component.UILabel;
import com.fanruan.api.design.ui.component.UIQuickList;
+import com.fanruan.api.design.ui.component.UIRoundedBorder;
+import com.fanruan.api.design.ui.component.UITextArea;
+import com.fanruan.api.design.ui.component.UITextField;
+import com.fanruan.api.design.ui.container.BasicPane;
+import com.fanruan.api.design.ui.container.UIScrollPane;
+import com.fanruan.api.design.util.GUICoreKit;
+import com.fanruan.api.design.work.ParameterInputPane;
+import com.fanruan.api.log.LogKit;
import com.fanruan.api.macro.EncodeConstants;
+import com.fanruan.api.util.ArrayKit;
+import com.fanruan.api.util.GeneralKit;
import com.fanruan.api.util.IOKit;
-import com.fanruan.api.design.util.GUICoreKit;
-import com.fanruan.api.util.*;
-
-/**
- * 接口
- */
+import com.fanruan.api.util.StringKit;
import com.fr.base.BaseFormula;
import com.fr.data.TableDataSource;
-import com.fr.design.constants.UIConstants;
+import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.DialogActionAdapter;
-import com.fr.design.formula.UIFormula;
-import com.fr.design.formula.VariableResolver;
-import com.fr.design.layout.FRGUIPaneFactory;
-import com.fr.general.FRLogger;
-import com.fr.stable.ParameterProvider;
-import com.fr.stable.script.CalculatorProvider;
import com.fr.design.formula.FunctionGroup;
-/**
- * 调用了其他函数的方法,返回值是父类,无法赋值给子类
- */
-import com.fr.design.dialog.BasicDialog;
import com.fr.design.formula.NameAndDescription;
+import com.fr.design.formula.UIFormula;
+import com.fr.design.formula.VariableResolver;
import com.fr.design.mainframe.JTemplate;
-
-/**
- * 类似于上一个问题,不过是无法获取父类异常
- */
-import com.fr.stable.UtilEvalError;
-
-/**
- * IOFile更改后悔出错不敢换,有instance,可能出错
- */
-//import com.fr.base.io.IOFile;
-
import com.fr.solution.plugin.design.formula.compat.DesignToolkit;
import com.fr.solution.plugin.design.formula.compat.FunctionConstants;
import com.fr.solution.plugin.design.formula.ui.evt.OperateListener;
import com.fr.solution.plugin.design.formula.ui.type.CategoryFormulaPane;
-
+import com.fr.stable.ParameterProvider;
+import com.fr.stable.script.CalculatorProvider;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
@@ -79,6 +65,44 @@ import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
+/**
+ * 接口
+ *
+ * 调用了其他函数的方法,返回值是父类,无法赋值给子类
+ *
+ * 类似于上一个问题,不过是无法获取父类异常
+ *
+ * IOFile更改后悔出错不敢换,有instance,可能出错
+ *
+ * 调用了其他函数的方法,返回值是父类,无法赋值给子类
+ *
+ * 类似于上一个问题,不过是无法获取父类异常
+ *
+ * IOFile更改后悔出错不敢换,有instance,可能出错
+ *
+ * 调用了其他函数的方法,返回值是父类,无法赋值给子类
+ *
+ * 类似于上一个问题,不过是无法获取父类异常
+ *
+ * IOFile更改后悔出错不敢换,有instance,可能出错
+ *
+ * 调用了其他函数的方法,返回值是父类,无法赋值给子类
+ *
+ * 类似于上一个问题,不过是无法获取父类异常
+ *
+ * IOFile更改后悔出错不敢换,有instance,可能出错
+ */
+/**
+ * 调用了其他函数的方法,返回值是父类,无法赋值给子类
+ */
+/**
+ * 类似于上一个问题,不过是无法获取父类异常
+ */
+/**
+ * IOFile更改后悔出错不敢换,有instance,可能出错
+ */
+//import com.fr.base.io.IOFile;
+
/**
* 组合了普通公式和脚本公式的编辑器面板
*/
@@ -129,9 +153,9 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
protected void initComponents() {
this.setLayout(new BorderLayout(4, 4));
// text
- JPanel textPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
+ JPanel textPane = GUICoreKit.createBorderLayoutPane();
this.add(textPane, BorderLayout.CENTER);
- JPanel checkBoxAndButtonPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
+ JPanel checkBoxAndButtonPane = GUICoreKit.createFlowPane();
UILabel formulaLabel = new UILabel(DesignToolkit.getLocText("Plugin-Design_Basic_FormulaD_Input_Formula_In_The_Text_Area_Below") + ":"
+ " ");
formulaLabel.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
@@ -151,7 +175,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
UIButton calculateButton = new UIButton(DesignToolkit.getLocText("Plugin-Design_Group_Formula_Calculate"));
calculateButton.addActionListener(calculateActionListener);
- JPanel checkBoxPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
+ JPanel checkBoxPane = GUICoreKit.createFlowPane();
checkBoxPane.setPreferredSize(new Dimension(450, 30));
checkBoxAndButtonPane.add(checkBoxPane, BorderLayout.WEST);
checkBoxAndButtonPane.add(GUICoreKit.createFlowPane(checkValidButton, calculateButton), BorderLayout.EAST);
@@ -360,7 +384,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
try {
Object result = formula.evalValue(calculator);
message = DesignToolkit.getLocText("Plugin-Design_Group_Formula_Result") + ":" + GeneralKit.objectToString(result);
- } catch (UtilEvalError utilEvalError) {
+ } catch (Exception utilEvalError) {
message = DesignToolkit.getLocText("Plugin-Design_Group_Formula_Calculate_Error") + ":" + utilEvalError.getMessage();
}
return message;
@@ -567,7 +591,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
desBuf = getText((TextUserObject) selectedValue, path);
}
} catch (IOException exp) {
- FRLogger.getLogger().error(exp.getMessage(), exp);
+ LogKit.error(exp.getMessage(), exp);
}
descriptionTextArea.setText(desBuf.toString());
descriptionTextArea.moveCaretPosition(0);
@@ -628,9 +652,8 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
return DesignToolkit.getLocText("Plugin-Design_Basic_FormulaPane_Function_Detail");
}
};
- basicPane.setLayout(FRGUIPaneFactory.createBorderLayout());
+ basicPane.setLayout(new BorderLayout());
UITextArea desArea = new UITextArea();
-// desArea。setEnabled(false);
desArea.setText(this.getTextAreaText());
basicPane.add(new UIScrollPane(desArea), BorderLayout.CENTER);
BasicDialog dialog = basicPane.showWindow(DesignKit.getDesignerFrame());
diff --git a/src/main/java/com/fr/solution/plugin/design/formula/ui/type/CategoryFormulaPane.java b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/CategoryFormulaPane.java
index 0520298..e674ac5 100644
--- a/src/main/java/com/fr/solution/plugin/design/formula/ui/type/CategoryFormulaPane.java
+++ b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/CategoryFormulaPane.java
@@ -33,7 +33,7 @@ public class CategoryFormulaPane extends UIRadioPane {
list.add(script);
if (events == null) {
- events = new ArrayList();
+ events = new ArrayList<>();
}
events.add(normal);
events.add(script);
diff --git a/src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/ScriptFormulaPane.java b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/ScriptFormulaPane.java
index 26eba05..9b57c8a 100644
--- a/src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/ScriptFormulaPane.java
+++ b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/ScriptFormulaPane.java
@@ -4,14 +4,12 @@ import com.fanruan.api.cal.CalculatorKit;
import com.fanruan.api.cal.ParameterKit;
import com.fanruan.api.design.ui.component.code.UISyntaxTextArea;
import com.fanruan.api.i18n.I18nKit;
+import com.fanruan.api.log.LogKit;
import com.fanruan.api.script.ScriptKit;
-import com.fanruan.api.util.StringKit;
import com.fanruan.api.util.RenderKit;
-
-
+import com.fanruan.api.util.StringKit;
import com.fr.base.ScriptFormula;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants;
-import com.fr.general.FRLogger;
import com.fr.solution.plugin.design.formula.ui.type.BaseFormulaPane;
import com.fr.stable.ParameterProvider;
import com.fr.stable.script.CalculatorProvider;
@@ -104,7 +102,7 @@ public class ScriptFormulaPane extends BaseFormulaPane {
String content = RenderKit.renderParameter4Tpl(formula.getPureContent(), map);
ScriptKit.newScriptEngine().eval(String.format(FUN_TPL, content));
} catch (Exception e) {
- FRLogger.getLogger().error(e.getMessage(), e);
+ LogKit.error(e.getMessage(), e);
return false;
}
return true;