diff --git a/designer-base/src/main/java/com/fr/design/formula/FormulaPane.java b/designer-base/src/main/java/com/fr/design/formula/FormulaPane.java index a6346c4dd..6fdb5666c 100644 --- a/designer-base/src/main/java/com/fr/design/formula/FormulaPane.java +++ b/designer-base/src/main/java/com/fr/design/formula/FormulaPane.java @@ -14,6 +14,7 @@ import com.fr.design.constants.UIConstants; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.DialogActionAdapter; +import com.fr.design.dialog.DialogActionListener; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.file.HistoryTemplateListCache; import com.fr.design.gui.autocomplete.AutoCompleteExtraRefreshComponent; @@ -63,6 +64,7 @@ import com.fr.stable.script.Node; import com.fr.stable.script.Tiny; import com.fr.stable.script.TinyHunter; +import java.awt.Window; import javax.swing.BorderFactory; import javax.swing.DefaultListCellRenderer; import javax.swing.DefaultListModel; @@ -736,6 +738,13 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula { return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FormulaD_Formula_Definition"); } + public BasicDialog showLargeWindow(Window window, DialogActionListener l) { + BasicDialog basicDialog = super.showWindowWithCustomSize(window, l, new Dimension(900, 600)); + basicDialog.setMinimumSize(new Dimension(900, 600)); + basicDialog.setResizable(true); + return basicDialog; + } + /** * Populate */ @@ -1102,6 +1111,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula { private void initGroupTypeModel() { functionTypeListModel.addElement(FunctionConstants.COMMON); + functionTypeListModel.addElement(FunctionConstants.NEW); for (int i = 0; i < FunctionConstants.EMBFUNCTIONS.length; i++) { functionTypeListModel.addElement(FunctionConstants.EMBFUNCTIONS[i]); } @@ -1186,9 +1196,6 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula { descriptionTextArea = new UITextArea(); descriptionTextArea.setPreferredSize(new Dimension(350, 200)); - UIScrollPane desScrollPane = new UIScrollPane(descriptionTextArea); - desScrollPane.setBorder(null); - this.add(this.createNamePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FormulaPane_Formula_Description") + ":", desScrollPane), BorderLayout.EAST); descriptionTextArea.setBackground(Color.white); descriptionTextArea.setLineWrap(true); descriptionTextArea.setWrapStyleWord(true); @@ -1256,12 +1263,13 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula { private void initVariablesTree() { + JPanel panel = FRGUIPaneFactory.createBorderLayout_S_Pane(); // vairable. variablesTree = new JTree(); UIScrollPane variablesTreePane = new UIScrollPane(variablesTree); variablesTreePane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, UIConstants.ARC)); - this.add(this.createNamePane( - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FormulaPane_Variables") + ":", variablesTreePane), BorderLayout.CENTER); + panel.add(this.createNamePane( + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FormulaPane_Variables") + ":", variablesTreePane), BorderLayout.WEST); variablesTree.setRootVisible(false); variablesTree.setShowsRootHandles(true); variablesTree.addMouseListener(applyTextMouseListener); @@ -1269,7 +1277,11 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula { initDescriptionTextArea(); + UIScrollPane desScrollPane = new UIScrollPane(descriptionTextArea); + desScrollPane.setBorder(null); + panel.add(this.createNamePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FormulaPane_Formula_Description") + ":", desScrollPane), BorderLayout.CENTER); initVariablesTreeSelectionListener(); + this.add(panel,BorderLayout.CENTER); } private void initComponents() { diff --git a/designer-base/src/main/java/com/fr/design/formula/FunctionConstants.java b/designer-base/src/main/java/com/fr/design/formula/FunctionConstants.java index 6e128a435..1b97d4f50 100644 --- a/designer-base/src/main/java/com/fr/design/formula/FunctionConstants.java +++ b/designer-base/src/main/java/com/fr/design/formula/FunctionConstants.java @@ -5,10 +5,19 @@ import com.fr.function.AVERAGE; import com.fr.function.CHAR; import com.fr.function.COUNT; import com.fr.function.DATE; +import com.fr.function.ENBYSTRNUM; +import com.fr.function.EOMONTH; +import com.fr.function.GCD; +import com.fr.function.GETCHARNUM; +import com.fr.function.ISWORKDAY; +import com.fr.function.LCM; import com.fr.function.MAX; +import com.fr.function.MIDCHAR; import com.fr.function.MIN; +import com.fr.function.NUMTOZH; import com.fr.function.RANGE; import com.fr.function.SUM; +import com.fr.function.TEXTGETNUM; import com.fr.function.TIME; import com.fr.general.ComparatorUtils; import com.fr.general.GeneralUtils; @@ -48,6 +57,7 @@ public final class FunctionConstants { public static NameAndTypeAndFunctionList[] EMBFUNCTIONS = getEmbededFunctionListArray(); public static FunctionGroup ALL = getAllFunctionGroup(); public static List abandonFormulas = Arrays.asList("CIRCULAR", "CROSSLAYERTOTAL", "HIERARCHY", "LAYERTOTAL"); + public static NameAndFunctionList NEW = getNewFunctionList(); static { loadEmbededFunctions(); @@ -276,6 +286,13 @@ public final class FunctionConstants { }); } + private static NameAndFunctionList getNewFunctionList() { + return new NameAndFunctionList(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FormulaD_New"), new Function[]{ + new EOMONTH(), new NUMTOZH(), new MIDCHAR(), new ISWORKDAY(), new ENBYSTRNUM(), new TEXTGETNUM(), + new GETCHARNUM(), new GCD(), new LCM() + }); + } + private static NameAndTypeAndFunctionList[] getEmbededFunctionListArray() { return new NameAndTypeAndFunctionList[] { new NameAndTypeAndFunctionList(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FormulaD_Math_&_Trig"), Function.MATH),