From 5fa2691e8da5337a289f81f81cb9bac029172519 Mon Sep 17 00:00:00 2001 From: hugh Date: Wed, 11 Jan 2017 16:07:23 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=B8=BA=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E8=BF=9B=E8=A1=8C=E5=88=86=E7=BB=84=E3=80=90?= =?UTF-8?q?=E4=B8=80=E6=AC=A1=E5=BC=95=E5=85=A5=E4=B8=80=E7=BB=84=E5=85=AC?= =?UTF-8?q?=E5=BC=8F=E7=94=A8=EF=BC=8C=E6=AF=94=E5=A6=82=E8=B4=A2=E5=8A=A1?= =?UTF-8?q?=E4=B8=BB=E9=A2=98=E5=85=AC=E5=BC=8F=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/formula/AbstractFunctionGroup.java | 30 +++++++++++++++++++ .../com/fr/design/formula/FormulaPane.java | 12 +++++++- .../fr/design/formula/FunctionConstants.java | 10 ++++++- .../formula/FunctionGroupDefineProvider.java | 12 ++++++++ 4 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 designer_base/src/com/fr/design/formula/AbstractFunctionGroup.java create mode 100644 designer_base/src/com/fr/design/formula/FunctionGroupDefineProvider.java diff --git a/designer_base/src/com/fr/design/formula/AbstractFunctionGroup.java b/designer_base/src/com/fr/design/formula/AbstractFunctionGroup.java new file mode 100644 index 0000000000..c8a80f8094 --- /dev/null +++ b/designer_base/src/com/fr/design/formula/AbstractFunctionGroup.java @@ -0,0 +1,30 @@ +package com.fr.design.formula; + +import com.fr.stable.fun.mark.API; +import com.fr.stable.script.FunctionDef; + +@API(level = FunctionGroupDefineProvider.CURRENT_LEVEL) +public abstract class AbstractFunctionGroup implements FunctionGroupDefineProvider { + + @Override + public int currentAPILevel() { + return CURRENT_LEVEL; + } + + @Override + public String mark4Provider() { + return getClass().getName(); + } + + @Override + public NameAndDescription[] getDescriptions() { + FunctionDef[] funcs = getFunctionDefs(); + int count = funcs.length; + FunctionDefNAD[] nads = new FunctionDefNAD[count]; + for (int i = 0; i < count; i ++) { + nads[i] = new FunctionDefNAD(funcs[i]); + } + return nads; + } + +} diff --git a/designer_base/src/com/fr/design/formula/FormulaPane.java b/designer_base/src/com/fr/design/formula/FormulaPane.java index d7e3f21be4..d2910fa96e 100644 --- a/designer_base/src/com/fr/design/formula/FormulaPane.java +++ b/designer_base/src/com/fr/design/formula/FormulaPane.java @@ -22,8 +22,10 @@ import com.fr.design.utils.gui.GUICoreUtils; import com.fr.general.Inter; import com.fr.parser.FRLexer; import com.fr.parser.FRParser; +import com.fr.plugin.ExtraClassManager; import com.fr.stable.ProductConstants; import com.fr.stable.StringUtils; +import com.fr.stable.fun.mark.Mutable; import com.fr.stable.script.Expression; import javax.swing.*; @@ -32,10 +34,12 @@ import javax.swing.event.ListSelectionListener; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.*; + import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.Locale; +import java.util.Set; /** * 公式编辑面板 * @editor zhou @@ -581,7 +585,13 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ functionTypeListModel.addElement(FunctionConstants.ALL); functionTypeListModel.addElement(FunctionConstants.CUSTOM); functionTypeListModel.addElement(FunctionConstants.PLUGIN); - + //hugh:自定义函数分组 + Set groups = ExtraClassManager.getInstance().getArray(FunctionGroupDefineProvider.MARK_STRING); + if(!groups.isEmpty()){ + for(Mutable group : groups){ + functionTypeListModel.addElement(group); + } + } functionTypeList.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent evt) { diff --git a/designer_base/src/com/fr/design/formula/FunctionConstants.java b/designer_base/src/com/fr/design/formula/FunctionConstants.java index cfb983dd78..d33ad58e89 100644 --- a/designer_base/src/com/fr/design/formula/FunctionConstants.java +++ b/designer_base/src/com/fr/design/formula/FunctionConstants.java @@ -11,6 +11,8 @@ import com.fr.stable.EncodeConstants; import com.fr.stable.OperatingSystem; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; +import com.fr.stable.fun.FunctionGroupDefineProvider; +import com.fr.stable.fun.mark.Mutable; import com.fr.stable.script.Function; import com.fr.stable.script.FunctionDef; @@ -96,7 +98,13 @@ public abstract class FunctionConstants { } Collections.addAll(all, PLUGIN.getDescriptions()); Collections.addAll(all, CUSTOM.getDescriptions()); - + //hugh:自定义函数分组 + Set groups = ExtraClassManager.getInstance().getArray(FunctionGroupDefineProvider.MARK_STRING); + if(!groups.isEmpty()){ + for(Mutable group : groups){ + Collections.addAll(all, ((FunctionGroup)group).getDescriptions()); + } + } java.util.Collections.sort(all, NameAndDescriptionComparator); return all.toArray(new NameAndDescription[all.size()]); diff --git a/designer_base/src/com/fr/design/formula/FunctionGroupDefineProvider.java b/designer_base/src/com/fr/design/formula/FunctionGroupDefineProvider.java new file mode 100644 index 0000000000..671a07fc72 --- /dev/null +++ b/designer_base/src/com/fr/design/formula/FunctionGroupDefineProvider.java @@ -0,0 +1,12 @@ +package com.fr.design.formula; + +import com.fr.design.formula.FunctionGroup; +import com.fr.stable.fun.mark.Mutable; +import com.fr.stable.script.FunctionDef; + +public interface FunctionGroupDefineProvider extends Mutable,FunctionGroup{ + int CURRENT_LEVEL = 1; + String MARK_STRING = "FunctionGroupDefineProvider"; + + public FunctionDef[] getFunctionDefs(); +} From 29fdfce305b17460eadcaad1f52df877b4d7aca2 Mon Sep 17 00:00:00 2001 From: hugh Date: Wed, 11 Jan 2017 17:13:29 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=8D=A2=E4=B8=AA=E5=9C=B0=E6=96=B9?= =?UTF-8?q?=E5=86=8D=E5=BC=80~?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/formula/FunctionDefNAD.java | 2 +- .../{formula => fun}/FunctionGroupDefineProvider.java | 2 +- .../design/{formula => fun/impl}/AbstractFunctionGroup.java | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) rename designer_base/src/com/fr/design/{formula => fun}/FunctionGroupDefineProvider.java (91%) rename designer_base/src/com/fr/design/{formula => fun/impl}/AbstractFunctionGroup.java (79%) diff --git a/designer_base/src/com/fr/design/formula/FunctionDefNAD.java b/designer_base/src/com/fr/design/formula/FunctionDefNAD.java index c7c2177b58..7156601697 100644 --- a/designer_base/src/com/fr/design/formula/FunctionDefNAD.java +++ b/designer_base/src/com/fr/design/formula/FunctionDefNAD.java @@ -6,7 +6,7 @@ import com.fr.stable.StringUtils; public class FunctionDefNAD extends AbstractNameAndDescription { private FunctionDef def; - FunctionDefNAD(FunctionDef def) { + public FunctionDefNAD(FunctionDef def) { this.def = def; } diff --git a/designer_base/src/com/fr/design/formula/FunctionGroupDefineProvider.java b/designer_base/src/com/fr/design/fun/FunctionGroupDefineProvider.java similarity index 91% rename from designer_base/src/com/fr/design/formula/FunctionGroupDefineProvider.java rename to designer_base/src/com/fr/design/fun/FunctionGroupDefineProvider.java index 671a07fc72..906a567712 100644 --- a/designer_base/src/com/fr/design/formula/FunctionGroupDefineProvider.java +++ b/designer_base/src/com/fr/design/fun/FunctionGroupDefineProvider.java @@ -1,4 +1,4 @@ -package com.fr.design.formula; +package com.fr.design.fun; import com.fr.design.formula.FunctionGroup; import com.fr.stable.fun.mark.Mutable; diff --git a/designer_base/src/com/fr/design/formula/AbstractFunctionGroup.java b/designer_base/src/com/fr/design/fun/impl/AbstractFunctionGroup.java similarity index 79% rename from designer_base/src/com/fr/design/formula/AbstractFunctionGroup.java rename to designer_base/src/com/fr/design/fun/impl/AbstractFunctionGroup.java index c8a80f8094..12cfce71ed 100644 --- a/designer_base/src/com/fr/design/formula/AbstractFunctionGroup.java +++ b/designer_base/src/com/fr/design/fun/impl/AbstractFunctionGroup.java @@ -1,8 +1,12 @@ -package com.fr.design.formula; +package com.fr.design.fun.impl; +import com.fr.design.formula.FunctionDefNAD; +import com.fr.design.formula.NameAndDescription; +import com.fr.design.fun.FunctionGroupDefineProvider; import com.fr.stable.fun.mark.API; import com.fr.stable.script.FunctionDef; + @API(level = FunctionGroupDefineProvider.CURRENT_LEVEL) public abstract class AbstractFunctionGroup implements FunctionGroupDefineProvider { From fe67f6ad45d301fbb22f51d5baeb6895adb3243a Mon Sep 17 00:00:00 2001 From: hugh Date: Thu, 12 Jan 2017 08:05:41 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=8A=8A=E5=8E=9F=E6=9D=A5=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E9=87=8D=E4=B8=8D=E7=AC=A6=E5=90=88PMD=E8=A6=81?= =?UTF-8?q?=E6=B1=82=E7=9A=84=E6=9B=B4=E6=AD=A3=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/formula/FormulaPane.java | 427 +++++++++--------- .../fr/design/formula/FunctionConstants.java | 2 +- 2 files changed, 218 insertions(+), 211 deletions(-) diff --git a/designer_base/src/com/fr/design/formula/FormulaPane.java b/designer_base/src/com/fr/design/formula/FormulaPane.java index d2910fa96e..8703458979 100644 --- a/designer_base/src/com/fr/design/formula/FormulaPane.java +++ b/designer_base/src/com/fr/design/formula/FormulaPane.java @@ -8,6 +8,7 @@ import com.fr.design.border.UIRoundedBorder; import com.fr.design.constants.UIConstants; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicPane; +import com.fr.design.fun.FunctionGroupDefineProvider; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.ilable.UILabel; @@ -64,29 +65,16 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ public FormulaPane() { initComponents(); } - - protected void initComponents() { - this.setLayout(new BorderLayout(4, 4)); - - // text - JPanel textPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - this.add(textPane, BorderLayout.CENTER); - - JPanel checkBoxandbuttonPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - - UILabel formulaLabel = new UILabel(Inter.getLocText("FormulaD-Input_formula_in_the_text_area_below") + ":" - + " "); - formulaLabel.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4)); - formulaTextArea = new RSyntaxTextArea(); - configFormulaArea(); - formulaTextArea.addKeyListener(this); - - formulaTextArea.addKeyListener(new KeyAdapter() { + + private void initFormulaTextAreaKeyListener(){ + formulaTextArea.addKeyListener(this); + formulaTextArea.addKeyListener(new KeyAdapter() { public void keyReleased(KeyEvent e) { formulaTextArea.setForeground(Color.black); String text = formulaTextArea.getText(); // 判断在中文输入状态是否还包含提示符 要删掉 - String tip = "\n\n\n" + Inter.getLocText("Tips:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column"); + //Tips:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column + String tip = "\n\n\n" + Inter.getLocText("FR-Design_FormulaPane_Tips"); if(text.contains(tip)) { text = text.substring(0, text.indexOf(tip)); insertPosition = 0; @@ -94,9 +82,10 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ } } }); - - formulaTextArea.addMouseListener(new MouseAdapter() { - + } + + private void initFormulaTextAreaMouseListener(){ + formulaTextArea.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { insertPosition = formulaTextArea.getCaretPosition(); @@ -119,52 +108,81 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ } } }); - UIScrollPane formulaTextAreaScrollPane = new UIScrollPane(formulaTextArea); - formulaTextAreaScrollPane.setBorder(null); - textPane.add(formulaLabel, BorderLayout.NORTH); - textPane.add(formulaTextAreaScrollPane, BorderLayout.CENTER); - textPane.add(checkBoxandbuttonPane, BorderLayout.SOUTH); - - // tipsPane - JPanel tipsPane = new JPanel(new BorderLayout(4, 4)); - this.add(tipsPane, BorderLayout.EAST); - - JPanel searchPane = new JPanel(new BorderLayout(4, 4)); - searchPane.add(keyWordTextField, BorderLayout.CENTER); - UIButton searchButton = new UIButton(Inter.getLocText("Search")); - searchPane.add(searchButton, BorderLayout.EAST); - tipsPane.add(searchPane, BorderLayout.NORTH); - - keyWordTextField.addKeyListener(new KeyListener() { - + } + + private void initFormulaTextArea(){ + formulaTextArea = new RSyntaxTextArea(); + configFormulaArea(); + initFormulaTextAreaKeyListener(); + initFormulaTextAreaMouseListener(); + } + + private void initKeyWordTextFieldKeyListener(){ + keyWordTextField.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { } - @Override public void keyReleased(KeyEvent e) { } - @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { String toFind = keyWordTextField.getText(); search(toFind, false); - fixFunctionNameList(); e.consume(); } } }); + } + + private void initTipsPane(){ + // tipsPane + JPanel tipsPane = new JPanel(new BorderLayout(4, 4)); + this.add(tipsPane, BorderLayout.EAST); + JPanel searchPane = new JPanel(new BorderLayout(4, 4)); + searchPane.add(keyWordTextField, BorderLayout.CENTER); + UIButton searchButton = new UIButton(Inter.getLocText("FR-Design_FormulaPane_Search")); + searchPane.add(searchButton, BorderLayout.EAST); + tipsPane.add(searchPane, BorderLayout.NORTH); + initKeyWordTextFieldKeyListener(); tipsList = new JList(listModel); tipsList.addMouseListener(new DoubleClick()); UIScrollPane tipsScrollPane = new UIScrollPane(tipsList); tipsScrollPane.setPreferredSize(new Dimension(170, 75)); tipsScrollPane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, UIConstants.ARC)); - tipsPane.add(tipsScrollPane, BorderLayout.CENTER); + searchButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + String toFind = keyWordTextField.getText(); + search(toFind, false); + formulaTextArea.requestFocusInWindow(); + fixFunctionNameList(); + } + }); + } + + protected void initComponents() { + this.setLayout(new BorderLayout(4, 4)); + // text + JPanel textPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + this.add(textPane, BorderLayout.CENTER); + JPanel checkBoxandbuttonPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); + UILabel formulaLabel = new UILabel(Inter.getLocText("FormulaD-Input_formula_in_the_text_area_below") + ":" + + " "); + formulaLabel.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4)); + initFormulaTextArea(); + + UIScrollPane formulaTextAreaScrollPane = new UIScrollPane(formulaTextArea); + formulaTextAreaScrollPane.setBorder(null); + textPane.add(formulaLabel, BorderLayout.NORTH); + textPane.add(formulaTextAreaScrollPane, BorderLayout.CENTER); + textPane.add(checkBoxandbuttonPane, BorderLayout.SOUTH); + initTipsPane(); UIButton checkValidButton = new UIButton(Inter.getLocText("FormulaD-Check_Valid")); checkValidButton.addActionListener(checkValidActionListener); @@ -173,20 +191,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ checkBoxPane.setPreferredSize(new Dimension(450, 30)); checkBoxandbuttonPane.add(checkBoxPane, BorderLayout.WEST); checkBoxandbuttonPane.add(checkValidButton, BorderLayout.EAST); - extendCheckBoxPane(checkBoxPane); - - searchButton.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - String toFind = keyWordTextField.getText(); - search(toFind, false); - formulaTextArea.requestFocusInWindow(); - - fixFunctionNameList(); - } - }); variableTreeAndDescriptionArea = new VariableTreeAndDescriptionArea(); this.add(variableTreeAndDescriptionArea, BorderLayout.SOUTH); } @@ -257,11 +262,17 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ this.formulaTextArea.setText(StringUtils.EMPTY); } } - + //hugh:为啥会是10呢?搞不懂~~~ + private static final int KEY_10 = 10; + //上下左右 + private static final int KEY_37 = 37; + private static final int KEY_38 = 38; + private static final int KEY_39 = 39; + private static final int KEY_40 = 40; @Override public void keyReleased(KeyEvent e) { int key = e.getKeyCode(); - if (key == 38 || key == 40 || key == 37 || key == 39 || key == 10) //如果是删除符号 ,为了可读性 没有和其他按键的程序相融合 + if (key == KEY_38 || key == KEY_40 || key == KEY_37 || key == KEY_39 || key == KEY_10) //如果是删除符号 ,为了可读性 没有和其他按键的程序相融合 { listModel.removeAllElements(); currentPosition = formulaTextArea.getCaretPosition(); @@ -465,7 +476,8 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ String content = formula.getContent(); if (content.trim().equals("=")) { this.formulaTextArea.setForeground(Color.gray); - this.formulaTextArea.setText("\n\n\n" + Inter.getLocText("Tips:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column")); + //Tips:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column + this.formulaTextArea.setText("\n\n\n" + Inter.getLocText("FR-Design_FormulaPane_Tips")); this.formulaTextArea.setCaretPosition(0); ifHasBeenWriten = 0; this.listModel.removeAllElements(); @@ -552,22 +564,21 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ public VariableTreeAndDescriptionArea() { this.initComponents(); } - - private void initComponents() { - this.setLayout(new BorderLayout(4, 4)); - - // Function - JPanel functionPane = new JPanel(new BorderLayout(4, 4)); - this.add(functionPane, BorderLayout.WEST); - - - functionTypeList = new QuickList(functionTypeListModel); + + private void initFunctionTypeList(JPanel functionPane){ + functionTypeList = new QuickList(functionTypeListModel); UIScrollPane functionTypeScrollPane = new UIScrollPane(functionTypeList); functionTypeScrollPane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, UIConstants.ARC)); functionTypeScrollPane.setPreferredSize(new Dimension(140, 200)); functionPane.add(this.createNamePane(Inter.getLocText("FormulaD-Function_category") + ":", functionTypeScrollPane), BorderLayout.WEST); - functionTypeList.setCellRenderer(new DefaultListCellRenderer() { - + initTypeListCellRenderer(); + initGroupTypeModel(); + initTypeListSelectionListener(); + } + + private void initTypeListCellRenderer(){ + functionTypeList.setCellRenderer( + new DefaultListCellRenderer() { @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); @@ -577,54 +588,48 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ return this; } }); - - functionTypeListModel.addElement(FunctionConstants.COMMON); - for (int i = 0; i < FunctionConstants.EMBFUNCTIONS.length; i++) { - functionTypeListModel.addElement(FunctionConstants.EMBFUNCTIONS[i]); - } - functionTypeListModel.addElement(FunctionConstants.ALL); - functionTypeListModel.addElement(FunctionConstants.CUSTOM); - functionTypeListModel.addElement(FunctionConstants.PLUGIN); - //hugh:自定义函数分组 - Set groups = ExtraClassManager.getInstance().getArray(FunctionGroupDefineProvider.MARK_STRING); - if(!groups.isEmpty()){ - for(Mutable group : groups){ - functionTypeListModel.addElement(group); - } - } - functionTypeList.addListSelectionListener(new ListSelectionListener() { - + } + + private void initTypeListSelectionListener(){ + functionTypeList.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent evt) { Object selectedValue = ((JList) evt.getSource()).getSelectedValue(); if (!(selectedValue instanceof FunctionGroup)) { return; } - NameAndDescription[] nads = ((FunctionGroup) selectedValue).getDescriptions(); functionNameModel = (DefaultListModel) functionNameList.getModel(); - functionNameModel.clear(); - for (NameAndDescription nad : nads) { functionNameModel.addElement(nad); } - if (functionNameModel.size() > 0) { functionNameList.setSelectedIndex(0); functionNameList.ensureIndexIsVisible(0); } } }); - - functionNameList = new JList(new DefaultListModel()); - UIScrollPane functionNameScrollPane = new UIScrollPane(functionNameList); - functionNameScrollPane.setPreferredSize(new Dimension(140, 200)); - functionPane.add( - this.createNamePane(Inter.getLocText("FormulaD-Function_name") + ":", functionNameScrollPane), - BorderLayout.CENTER); - functionNameScrollPane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, UIConstants.ARC)); - - functionNameList.setCellRenderer(new DefaultListCellRenderer() { + } + + private void initGroupTypeModel(){ + functionTypeListModel.addElement(FunctionConstants.COMMON); + for (int i = 0; i < FunctionConstants.EMBFUNCTIONS.length; i++) { + functionTypeListModel.addElement(FunctionConstants.EMBFUNCTIONS[i]); + } + functionTypeListModel.addElement(FunctionConstants.ALL); + functionTypeListModel.addElement(FunctionConstants.CUSTOM); + functionTypeListModel.addElement(FunctionConstants.PLUGIN); + //hugh:自定义函数分组 + Set groups = ExtraClassManager.getInstance().getArray(FunctionGroupDefineProvider.MARK_STRING); + if(!groups.isEmpty()){ + for(Mutable group : groups){ + functionTypeListModel.addElement(group); + } + } + } + + private void initFunctionNameListCellRenderer(){ + functionNameList.setCellRenderer(new DefaultListCellRenderer() { @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { @@ -635,8 +640,10 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ return this; } }); - - functionNameList.addListSelectionListener(new ListSelectionListener() { + } + + private void initFunctionNameListSelectionListener(){ + functionNameList.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent evt) { Object selectedValue = functionNameList.getSelectedValue(); @@ -650,11 +657,11 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ descriptionTextArea.moveCaretPosition(0); } }); - - functionNameList.addMouseListener(new MouseAdapter() { - + } + + private void initFunctionNameListMouseListener(){ + functionNameList.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent evt) { - if (evt.getClickCount() >= 2) { Object selectedValue = functionNameList.getSelectedValue(); if (!(selectedValue instanceof NameAndDescription)) { @@ -664,7 +671,6 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ applyText(insert); } - if (SwingUtilities.isRightMouseButton(evt)) { JPopupMenu popupMenu = new JPopupMenu(); LookDetailAction lookDetailAction = new LookDetailAction(); @@ -675,24 +681,28 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ } } }); - - // vairable. - variablesTree = new JTree(); - UIScrollPane variablesTreePane = new UIScrollPane(variablesTree); - variablesTreePane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, UIConstants.ARC)); - this.add(this.createNamePane( - Inter.getLocText("Variables") + ":", variablesTreePane), BorderLayout.CENTER); - variablesTree.setRootVisible(false); - variablesTree.setShowsRootHandles(true); - variablesTree.addMouseListener(applyTextMouseListener); - variablesTree.setCellRenderer(applyTreeCellRenderer); - - // Description + } + + private void initFunctionNameList(JPanel functionPane){ + functionNameList = new JList(new DefaultListModel()); + UIScrollPane functionNameScrollPane = new UIScrollPane(functionNameList); + functionNameScrollPane.setPreferredSize(new Dimension(140, 200)); + functionPane.add( + this.createNamePane(Inter.getLocText("FormulaD-Function_name") + ":", functionNameScrollPane), + BorderLayout.CENTER); + functionNameScrollPane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, UIConstants.ARC)); + initFunctionNameListCellRenderer(); + initFunctionNameListSelectionListener(); + initFunctionNameListMouseListener(); + } + + private void initDescriptionTextArea(){ + // Description descriptionTextArea = new UITextArea(16, 27); UIScrollPane desScrollPane = new UIScrollPane(descriptionTextArea); desScrollPane.setBorder(null); - this.add(this.createNamePane(Inter.getLocText("Formula_Description") + ":", desScrollPane), BorderLayout.EAST); + this.add(this.createNamePane(Inter.getLocText("FR-Design_FormulaPane_Formula_Description") + ":", desScrollPane), BorderLayout.EAST); descriptionTextArea.setBackground(new Color(255, 255, 225)); descriptionTextArea.setLineWrap(true); descriptionTextArea.setWrapStyleWord(true); @@ -706,19 +716,41 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ } }); - variablesTree.addTreeSelectionListener(new TreeSelectionListener() { - - public void valueChanged(TreeSelectionEvent e) { - Object selectedValue = ((DefaultMutableTreeNode) variablesTree.getLastSelectedPathComponent()).getUserObject(); + } + + private StringBuilder getText(TextUserObject selectedValue,String path) throws IOException{ + Reader desReader; + StringBuilder desBuf = new StringBuilder(); + InputStream desInputStream = BaseUtils.readResource(path+ ((TextUserObject) selectedValue).displayText+".txt"); + if (desInputStream == null) { + String description = ""; + desReader = new StringReader(description); + } else { + desReader = new InputStreamReader(desInputStream); + } + BufferedReader reader = new BufferedReader(desReader); + String lineText; + while ((lineText = reader.readLine()) != null) { + if (desBuf.length() > 0) { + desBuf.append('\n'); + } + desBuf.append(lineText); + } + reader.close(); + desReader.close(); + return desBuf; + } + + private void initVariablesTreeSelectionListener(){ + variablesTree.addTreeSelectionListener(new TreeSelectionListener() { + public void valueChanged(TreeSelectionEvent e) { + Object selectedValue = ((DefaultMutableTreeNode) variablesTree.getLastSelectedPathComponent()).getUserObject(); if (selectedValue == null) { return; } - StringBuilder desBuf = new StringBuilder(); try { - Reader desReader; String path; - Locale locale = FRContext.getLocale(); if (locale.equals(Locale.CHINA)) { path = "/com/fr/design/insert/formula/variable/cn/"; @@ -726,43 +758,42 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ path = "/com/fr/design/insert/formula/variable/en/"; } if (selectedValue instanceof TextUserObject) { - - InputStream desInputStream = BaseUtils.readResource(path - + ((TextUserObject) selectedValue).displayText - + ".txt"); - if (desInputStream == null) { - String description = ""; - - desReader = new StringReader(description); - } else { - desReader = new InputStreamReader( - desInputStream); - } - - BufferedReader reader = new BufferedReader( - desReader); - String lineText; - while ((lineText = reader.readLine()) != null) { - if (desBuf.length() > 0) { - desBuf.append('\n'); - } - - desBuf.append(lineText); - } - - reader.close(); - desReader.close(); + desBuf = getText((TextUserObject)selectedValue,path); } } catch (IOException exp) { FRContext.getLogger().error(exp.getMessage(), exp); } - descriptionTextArea.setText(desBuf.toString()); - descriptionTextArea.moveCaretPosition(0); } }); - + } + + private void initVariablesTree(){ + // vairable. + variablesTree = new JTree(); + UIScrollPane variablesTreePane = new UIScrollPane(variablesTree); + variablesTreePane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, UIConstants.ARC)); + this.add(this.createNamePane( + Inter.getLocText("FR-Design_FormulaPane_Variables") + ":", variablesTreePane), BorderLayout.CENTER); + variablesTree.setRootVisible(false); + variablesTree.setShowsRootHandles(true); + variablesTree.addMouseListener(applyTextMouseListener); + variablesTree.setCellRenderer(applyTreeCellRenderer); + + initDescriptionTextArea(); + + initVariablesTreeSelectionListener(); + } + + private void initComponents() { + this.setLayout(new BorderLayout(4, 4)); + // Function + JPanel functionPane = new JPanel(new BorderLayout(4, 4)); + this.add(functionPane, BorderLayout.WEST); + initFunctionTypeList(functionPane); + initFunctionNameList(functionPane); + initVariablesTree(); // 选择: functionTypeList.setSelectedIndex(0); } @@ -773,7 +804,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ private class LookDetailAction extends UpdateAction { public LookDetailAction() { - this.setName(Inter.getLocText("Function_Detail")); + this.setName(Inter.getLocText("FR-Design_FormulaPane_Function_Detail")); this.setMnemonic('L'); this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_file/preview.png")); } @@ -788,7 +819,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ BasicPane basicPane = new BasicPane() { @Override protected String title4PopupWindow() { - return Inter.getLocText("Function_Detail"); + return Inter.getLocText("FR-Design_FormulaPane_Function_Detail"); } }; basicPane.setLayout(FRGUIPaneFactory.createBorderLayout()); @@ -865,7 +896,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ return this; } }; - + public void populate(VariableResolver variableResolver) { // varibale tree. DefaultTreeModel variableModel = (DefaultTreeModel) variablesTree.getModel(); @@ -878,53 +909,29 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ DefaultMutableTreeNode bindCellNode = new DefaultMutableTreeNode(new TextUserObject("$$$")); rootNode.add(bindCellNode); } - - { - MutableTreeNode tableTreeNode = new TextFolderUserObject( - Inter.getLocText("FormulaD-Data_Fields"), - BaseUtils.readIcon("/com/fr/design/images/dialog/table.png"), - variableResolver.resolveColumnNames()).createMutableTreeNode(); - - rootNode.add(tableTreeNode); - } - - { - // Set cutReport Variable - rootNode.add(new TextFolderUserObject( - Inter.getLocText("Variables"), - BaseUtils.readIcon("/com/fr/design/images/dialog/variable.png"), - variableResolver.resolveCurReportVariables()).createMutableTreeNode()); - } - - - { - rootNode.add(new TextFolderUserObject( - Inter.getLocText(new String[]{"Datasource-Datasource", "Parameter"}), - BaseUtils.readIcon("/com/fr/design/images/dialog/parameter.gif"), - variableResolver.resolveTableDataParameterVariables()).createMutableTreeNode()); - } - - - { - MutableTreeNode reportParameterTreeNode = new TextFolderUserObject( - Inter.getLocText("ParameterD-Report_Parameter"), - BaseUtils.readIcon("/com/fr/design/images/m_report/p.gif"), - variableResolver.resolveReportParameterVariables()).createMutableTreeNode(); - - rootNode.add(reportParameterTreeNode); - } - - { - MutableTreeNode globalParameterTreeNode = new TextFolderUserObject( - Inter.getLocText("M_Server-Global_Parameters"), - BaseUtils.readIcon("/com/fr/design/images/dialog/parameter.gif"), - variableResolver.resolveGlobalParameterVariables()).createMutableTreeNode(); - rootNode.add(globalParameterTreeNode); - } - - + + rootNode.add(new TextFolderUserObject(Inter.getLocText("FormulaD-Data_Fields"), + BaseUtils.readIcon("/com/fr/design/images/dialog/table.png"), + variableResolver.resolveColumnNames()).createMutableTreeNode()); + + // Set cutReport Variable + rootNode.add(new TextFolderUserObject(Inter.getLocText("FR-Design_FormulaPane_Variables"), + BaseUtils.readIcon("/com/fr/design/images/dialog/variable.png"), + variableResolver.resolveCurReportVariables()).createMutableTreeNode()); + + rootNode.add(new TextFolderUserObject(Inter.getLocText(new String[]{"Datasource-Datasource", "Parameter"}), + BaseUtils.readIcon("/com/fr/design/images/dialog/parameter.gif"), + variableResolver.resolveTableDataParameterVariables()).createMutableTreeNode()); + + rootNode.add(new TextFolderUserObject(Inter.getLocText("ParameterD-Report_Parameter"), + BaseUtils.readIcon("/com/fr/design/images/m_report/p.gif"), + variableResolver.resolveReportParameterVariables()).createMutableTreeNode()); + + rootNode.add(new TextFolderUserObject(Inter.getLocText("M_Server-Global_Parameters"), + BaseUtils.readIcon("/com/fr/design/images/dialog/parameter.gif"), + variableResolver.resolveGlobalParameterVariables()).createMutableTreeNode()); + variableModel.reload(); - // Expand for (int row = 0; row < this.variablesTree.getRowCount(); row++) { this.variablesTree.expandRow(row); @@ -1003,6 +1010,6 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ buffer.append("|"); buffer.append("\n"); } - System.out.println(buffer.toString()); + FRContext.getLogger().debug(buffer.toString()); } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/formula/FunctionConstants.java b/designer_base/src/com/fr/design/formula/FunctionConstants.java index d33ad58e89..5acb506df0 100644 --- a/designer_base/src/com/fr/design/formula/FunctionConstants.java +++ b/designer_base/src/com/fr/design/formula/FunctionConstants.java @@ -1,6 +1,7 @@ package com.fr.design.formula; import com.fr.base.FRContext; +import com.fr.design.fun.FunctionGroupDefineProvider; import com.fr.file.FunctionManager; import com.fr.file.FunctionManagerProvider; import com.fr.function.*; @@ -11,7 +12,6 @@ import com.fr.stable.EncodeConstants; import com.fr.stable.OperatingSystem; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; -import com.fr.stable.fun.FunctionGroupDefineProvider; import com.fr.stable.fun.mark.Mutable; import com.fr.stable.script.Function; import com.fr.stable.script.FunctionDef; From 9d9cbacef0bd50a56148f4b7ae28648ca1f9db31 Mon Sep 17 00:00:00 2001 From: hugh Date: Thu, 12 Jan 2017 12:35:51 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96=EF=BC=8C=E5=91=BD=E5=90=8D=E4=B9=8B=E7=B1=BB=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/formula/FormulaPane.java | 19 +++++++++---------- .../fr/design/formula/FunctionConstants.java | 3 +-- .../com/fr/design/formula/FunctionGroup.java | 4 ++++ .../fun/FunctionGroupDefineProvider.java | 12 ------------ .../fun/impl/AbstractFunctionGroup.java | 10 +++++++--- .../com/fr/design/locale/designer.properties | 6 ++++++ .../design/locale/designer_en_US.properties | 6 ++++++ .../design/locale/designer_ja_JP.properties | 6 ++++++ .../design/locale/designer_ko_KR.properties | 6 ++++++ .../design/locale/designer_zh_CN.properties | 6 ++++++ .../design/locale/designer_zh_TW.properties | 6 ++++++ 11 files changed, 57 insertions(+), 27 deletions(-) delete mode 100644 designer_base/src/com/fr/design/fun/FunctionGroupDefineProvider.java diff --git a/designer_base/src/com/fr/design/formula/FormulaPane.java b/designer_base/src/com/fr/design/formula/FormulaPane.java index 8703458979..260ca917b7 100644 --- a/designer_base/src/com/fr/design/formula/FormulaPane.java +++ b/designer_base/src/com/fr/design/formula/FormulaPane.java @@ -8,7 +8,6 @@ import com.fr.design.border.UIRoundedBorder; import com.fr.design.constants.UIConstants; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicPane; -import com.fr.design.fun.FunctionGroupDefineProvider; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.ilable.UILabel; @@ -74,7 +73,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ String text = formulaTextArea.getText(); // 判断在中文输入状态是否还包含提示符 要删掉 //Tips:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column - String tip = "\n\n\n" + Inter.getLocText("FR-Design_FormulaPane_Tips"); + String tip = "\n\n\n" + Inter.getLocText("FR-Designer_FormulaPane_Tips"); if(text.contains(tip)) { text = text.substring(0, text.indexOf(tip)); insertPosition = 0; @@ -144,7 +143,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ JPanel searchPane = new JPanel(new BorderLayout(4, 4)); searchPane.add(keyWordTextField, BorderLayout.CENTER); - UIButton searchButton = new UIButton(Inter.getLocText("FR-Design_FormulaPane_Search")); + UIButton searchButton = new UIButton(Inter.getLocText("FR-Designer_FormulaPane_Search")); searchPane.add(searchButton, BorderLayout.EAST); tipsPane.add(searchPane, BorderLayout.NORTH); initKeyWordTextFieldKeyListener(); @@ -477,7 +476,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ if (content.trim().equals("=")) { this.formulaTextArea.setForeground(Color.gray); //Tips:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column - this.formulaTextArea.setText("\n\n\n" + Inter.getLocText("FR-Design_FormulaPane_Tips")); + this.formulaTextArea.setText("\n\n\n" + Inter.getLocText("FR-Designer_FormulaPane_Tips")); this.formulaTextArea.setCaretPosition(0); ifHasBeenWriten = 0; this.listModel.removeAllElements(); @@ -620,7 +619,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ functionTypeListModel.addElement(FunctionConstants.CUSTOM); functionTypeListModel.addElement(FunctionConstants.PLUGIN); //hugh:自定义函数分组 - Set groups = ExtraClassManager.getInstance().getArray(FunctionGroupDefineProvider.MARK_STRING); + Set groups = ExtraClassManager.getInstance().getArray(FunctionGroup.MARK_STRING); if(!groups.isEmpty()){ for(Mutable group : groups){ functionTypeListModel.addElement(group); @@ -702,7 +701,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ UIScrollPane desScrollPane = new UIScrollPane(descriptionTextArea); desScrollPane.setBorder(null); - this.add(this.createNamePane(Inter.getLocText("FR-Design_FormulaPane_Formula_Description") + ":", desScrollPane), BorderLayout.EAST); + this.add(this.createNamePane(Inter.getLocText("FR-Designer_FormulaPane_Formula_Description") + ":", desScrollPane), BorderLayout.EAST); descriptionTextArea.setBackground(new Color(255, 255, 225)); descriptionTextArea.setLineWrap(true); descriptionTextArea.setWrapStyleWord(true); @@ -775,7 +774,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ UIScrollPane variablesTreePane = new UIScrollPane(variablesTree); variablesTreePane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, UIConstants.ARC)); this.add(this.createNamePane( - Inter.getLocText("FR-Design_FormulaPane_Variables") + ":", variablesTreePane), BorderLayout.CENTER); + Inter.getLocText("FR-Designer_FormulaPane_Variables") + ":", variablesTreePane), BorderLayout.CENTER); variablesTree.setRootVisible(false); variablesTree.setShowsRootHandles(true); variablesTree.addMouseListener(applyTextMouseListener); @@ -804,7 +803,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ private class LookDetailAction extends UpdateAction { public LookDetailAction() { - this.setName(Inter.getLocText("FR-Design_FormulaPane_Function_Detail")); + this.setName(Inter.getLocText("FR-Designer_FormulaPane_Function_Detail")); this.setMnemonic('L'); this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_file/preview.png")); } @@ -819,7 +818,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ BasicPane basicPane = new BasicPane() { @Override protected String title4PopupWindow() { - return Inter.getLocText("FR-Design_FormulaPane_Function_Detail"); + return Inter.getLocText("FR-Designer_FormulaPane_Function_Detail"); } }; basicPane.setLayout(FRGUIPaneFactory.createBorderLayout()); @@ -915,7 +914,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula{ variableResolver.resolveColumnNames()).createMutableTreeNode()); // Set cutReport Variable - rootNode.add(new TextFolderUserObject(Inter.getLocText("FR-Design_FormulaPane_Variables"), + rootNode.add(new TextFolderUserObject(Inter.getLocText("FR-Designer_FormulaPane_Variables"), BaseUtils.readIcon("/com/fr/design/images/dialog/variable.png"), variableResolver.resolveCurReportVariables()).createMutableTreeNode()); diff --git a/designer_base/src/com/fr/design/formula/FunctionConstants.java b/designer_base/src/com/fr/design/formula/FunctionConstants.java index 5acb506df0..372409583d 100644 --- a/designer_base/src/com/fr/design/formula/FunctionConstants.java +++ b/designer_base/src/com/fr/design/formula/FunctionConstants.java @@ -1,7 +1,6 @@ package com.fr.design.formula; import com.fr.base.FRContext; -import com.fr.design.fun.FunctionGroupDefineProvider; import com.fr.file.FunctionManager; import com.fr.file.FunctionManagerProvider; import com.fr.function.*; @@ -99,7 +98,7 @@ public abstract class FunctionConstants { Collections.addAll(all, PLUGIN.getDescriptions()); Collections.addAll(all, CUSTOM.getDescriptions()); //hugh:自定义函数分组 - Set groups = ExtraClassManager.getInstance().getArray(FunctionGroupDefineProvider.MARK_STRING); + Set groups = ExtraClassManager.getInstance().getArray(FunctionGroup.MARK_STRING); if(!groups.isEmpty()){ for(Mutable group : groups){ Collections.addAll(all, ((FunctionGroup)group).getDescriptions()); diff --git a/designer_base/src/com/fr/design/formula/FunctionGroup.java b/designer_base/src/com/fr/design/formula/FunctionGroup.java index 4764454ede..b2d181b125 100644 --- a/designer_base/src/com/fr/design/formula/FunctionGroup.java +++ b/designer_base/src/com/fr/design/formula/FunctionGroup.java @@ -2,6 +2,10 @@ package com.fr.design.formula; public interface FunctionGroup { + + int CURRENT_LEVEL = 1; + String MARK_STRING = "FunctionGroup"; + String getGroupName(); NameAndDescription[] getDescriptions(); } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/fun/FunctionGroupDefineProvider.java b/designer_base/src/com/fr/design/fun/FunctionGroupDefineProvider.java deleted file mode 100644 index 906a567712..0000000000 --- a/designer_base/src/com/fr/design/fun/FunctionGroupDefineProvider.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.fr.design.fun; - -import com.fr.design.formula.FunctionGroup; -import com.fr.stable.fun.mark.Mutable; -import com.fr.stable.script.FunctionDef; - -public interface FunctionGroupDefineProvider extends Mutable,FunctionGroup{ - int CURRENT_LEVEL = 1; - String MARK_STRING = "FunctionGroupDefineProvider"; - - public FunctionDef[] getFunctionDefs(); -} diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractFunctionGroup.java b/designer_base/src/com/fr/design/fun/impl/AbstractFunctionGroup.java index 12cfce71ed..6743393623 100644 --- a/designer_base/src/com/fr/design/fun/impl/AbstractFunctionGroup.java +++ b/designer_base/src/com/fr/design/fun/impl/AbstractFunctionGroup.java @@ -1,14 +1,15 @@ package com.fr.design.fun.impl; import com.fr.design.formula.FunctionDefNAD; +import com.fr.design.formula.FunctionGroup; import com.fr.design.formula.NameAndDescription; -import com.fr.design.fun.FunctionGroupDefineProvider; import com.fr.stable.fun.mark.API; +import com.fr.stable.fun.mark.Mutable; import com.fr.stable.script.FunctionDef; -@API(level = FunctionGroupDefineProvider.CURRENT_LEVEL) -public abstract class AbstractFunctionGroup implements FunctionGroupDefineProvider { +@API(level = FunctionGroup.CURRENT_LEVEL) +public abstract class AbstractFunctionGroup implements Mutable, FunctionGroup { @Override public int currentAPILevel() { @@ -31,4 +32,7 @@ public abstract class AbstractFunctionGroup implements FunctionGroupDefineProvid return nads; } + public FunctionDef[] getFunctionDefs(){ + return new FunctionDef[0]; + } } diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 9f7923265c..88782f8408 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -510,3 +510,9 @@ FR-Designer_Create_Tree= FR-Designer_Set_Callback_Function= FR-Designer_ConfirmDialog_Content= FR-Designer_ConfirmDialog_Title= + +FR-Designer_FormulaPane_Tips=Tips\:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column +FR-Designer_FormulaPane_Variables=Variables +FR-Designer_FormulaPane_Formula_Description=Formula_Description +FR-Designer_FormulaPane_Function_Detail=Function Detail +FR-Designer_FormulaPane_Search=Search \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index b21847d0e4..a156ba4d43 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -510,3 +510,9 @@ FR-Designer_Create_Tree=Build Tree FR-Designer_Set_Callback_Function=Set Callback Function FR-Designer_ConfirmDialog_Content= FR-Designer_ConfirmDialog_Title= + +FR-Designer_FormulaPane_Tips=Tips\:You can input B1 to get the data in the second cell of the first row +FR-Designer_FormulaPane_Variables=Variables +FR-Designer_FormulaPane_Formula_Description=Formula Description +FR-Designer_FormulaPane_Function_Detail=Function Detail +FR-Designer_FormulaPane_Search=Search diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 5ec06064b1..e285674c8b 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -489,3 +489,9 @@ FR-Designer_Create_Tree= FR-Designer_Set_Callback_Function= FR-Designer_ConfirmDialog_Content= FR-Designer_ConfirmDialog_Title= + +FR-Designer_FormulaPane_Tips=\u30D2\u30F3\u30C8\:B1\u3092\u5165\u529B +FR-Designer_FormulaPane_Variables=\u5909\u6570 +FR-Designer_FormulaPane_Formula_Description=\u516C\u5F0F\u8AAC\u660E +FR-Designer_FormulaPane_Function_Detail=\u95A2\u6570\u660E\u7D30 +FR-Designer_FormulaPane_Search=\u691C\u7D22 \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 3e27c558fb..74b556358f 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -484,3 +484,9 @@ FR-Designer_Create_Tree= FR-Designer_Set_Callback_Function= FR-Designer_ConfirmDialog_Content= FR-Designer_ConfirmDialog_Title= + +FR-Designer_FormulaPane_Tips=\uC54C\uB9BC\: B1\uC744\uC785\uB825\uD558\uC5EC\uCCAB\uBC88\uC9F8\uD589\uB450\uBC88\uC9F8\uC5F4\uC758\uB370\uC774\uD130\uB97C\uC785\uB825\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4. +FR-Designer_FormulaPane_Variables=\uBCC0\uC218 +FR-Designer_FormulaPane_Formula_Description=\uC218\uC2DD\uC124\uBA85 +FR-Designer_FormulaPane_Function_Detail=\uD568\uC218\uC0C1\uC138\uC0AC\uD56D +FR-Designer_FormulaPane_Search=\uAC80\uC0C9 \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index d43f8746bb..e45bafdd07 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -514,3 +514,9 @@ FR-Designer_Create_Tree=\u6784\u5EFA\u6811 FR-Designer_Set_Callback_Function=\u8BBE\u7F6E\u56DE\u8C03\u51FD\u6570 FR-Designer_ConfirmDialog_Content=\u662F\u5426\u786E\u5B9A\u5220\u9664tab\u63A7\u4EF6 FR-Designer_ConfirmDialog_Title=FineReport 8.0 + +FR-Designer_FormulaPane_Tips=\u63D0\u793A\:\u60A8\u53EF\u4EE5\u901A\u8FC7\u8F93\u5165B1\u6765\u5199\u5165\u7B2C\u4E00\u884C\u7B2C\u4E8C\u5217\u7684\u6570\u636E\u3002 +FR-Designer_FormulaPane_Variables=\u53D8\u91CF +FR-Designer_FormulaPane_Formula_Description=\u516C\u5F0F\u8BF4\u660E +FR-Designer_FormulaPane_Function_Detail=\u51FD\u6570\u660E\u7EC6 +FR-Designer_FormulaPane_Search=\u641C\u7D22 \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 58868eb0db..ecb1063cc6 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -502,3 +502,9 @@ FR-Designer_Create_Tree= FR-Designer_Set_Callback_Function= FR-Designer_ConfirmDialog_Content= FR-Designer_ConfirmDialog_Title= + +FR-Designer_FormulaPane_Tips=\u63D0\u793A\:\u60A8\u53EF\u4EE5\u901A\u904E\u8F38\u5165B1\u4F86\u5BEB\u5165\u7B2C\u4E00\u5217\u7B2C\u4E8C\u6B04\u7684\u8CC7\u6599\u3002 +FR-Designer_FormulaPane_Variables=\u8B8A\u91CF +FR-Designer_FormulaPane_Formula_Description=\u516C\u5F0F\u8AAA\u660E +FR-Designer_FormulaPane_Function_Detail=\u51FD\u6578\u660E\u7D30 +FR-Designer_FormulaPane_Search=\u641C\u7D22 \ No newline at end of file