Browse Source

国际化问题

9.0
RichieJi 7 years ago
parent
commit
5c3e389b85
  1. 4
      plugin.xml
  2. 7
      src/com/fr/solution/plugin/design/formula/ScriptFormulaUI.java
  3. 7
      src/com/fr/solution/plugin/design/formula/locale/formula.properties
  4. 7
      src/com/fr/solution/plugin/design/formula/locale/formula_en_US.properties
  5. 7
      src/com/fr/solution/plugin/design/formula/locale/formula_ja_JP.properties
  6. 7
      src/com/fr/solution/plugin/design/formula/locale/formula_zh_CN.properties
  7. 40
      src/com/fr/solution/plugin/design/formula/ui/GroupFormulaPane.java
  8. 59
      src/com/fr/solution/plugin/design/formula/ui/GroupFormulaPaneWhenReserveFormula.java
  9. 117
      src/com/fr/solution/plugin/design/formula/ui/type/BaseFormulaPane.java
  10. 8
      src/com/fr/solution/plugin/design/formula/ui/type/CategoryFormulaPane.java
  11. 60
      src/com/fr/solution/plugin/design/formula/ui/type/impl/BasicFormulaPane.java
  12. 55
      src/com/fr/solution/plugin/design/formula/ui/type/impl/ScriptFormulaPane.java

4
plugin.xml

@ -2,7 +2,7 @@
<plugin>
<main-package>com.fr.solution.plugin</main-package>
<id>com.fr.solution.plugin.design.formula.script</id>
<name><![CDATA[脚本公式]]></name>
<name><![CDATA[增强公式编辑器]]></name>
<active>yes</active>
<version>3.0</version>
<env-version>9.0</env-version>
@ -10,7 +10,7 @@
<vendor>fanruan.richie</vendor>
<description><![CDATA[可以在公式中直接使用JavaScript脚本,进行更灵活的计算。]]></description>
<change-notes><![CDATA[
[2017-12-10]初始化插件<br/>
[2017-12-10]在公式编辑器中增加实时计算按钮<br/>
]]></change-notes>
<extra-core>
<LocaleFinder class="com.fr.solution.plugin.design.formula.ScriptFormulaLocalFinder"/>

7
src/com/fr/solution/plugin/design/formula/ScriptFormulaUI.java

@ -4,7 +4,8 @@ import com.fr.design.formula.UIFormula;
import com.fr.design.fun.impl.AbstractUIFormulaProcessor;
import com.fr.plugin.transform.ExecuteFunctionRecord;
import com.fr.plugin.transform.FunctionRecorder;
import com.fr.solution.plugin.design.formula.ui.ScriptFormulaPane;
import com.fr.solution.plugin.design.formula.ui.GroupFormulaPane;
import com.fr.solution.plugin.design.formula.ui.GroupFormulaPaneWhenReserveFormula;
@FunctionRecorder(localeKey = "Script")
public class ScriptFormulaUI extends AbstractUIFormulaProcessor {
@ -12,12 +13,12 @@ public class ScriptFormulaUI extends AbstractUIFormulaProcessor {
@Override
@ExecuteFunctionRecord
public UIFormula appearanceFormula() {
return new ScriptFormulaPane();
return new GroupFormulaPane();
}
@Override
@ExecuteFunctionRecord
public UIFormula appearanceWhenReserveFormula() {
return new ScriptFormulaPane();
return new GroupFormulaPaneWhenReserveFormula();
}
}

7
src/com/fr/solution/plugin/design/formula/locale/formula.properties

@ -1,2 +1,5 @@
Plugin-Script_Formula_Title=Script Formula
Plugin-Basic_Formula_Title=Basic Formula
FR-Designer_Group_Formula_Script_Title=Script Formula
FR-Designer_Group_Formula_Basic_Title=Basic Formula
FR-Designer_Group_Formula_Calculate=Calculate
FR-Designer_Group_Formula_Result=Result
FR-Designer_Group_Formula_Calculate_Error=Error

7
src/com/fr/solution/plugin/design/formula/locale/formula_en_US.properties

@ -1,2 +1,5 @@
Plugin-Script_Formula_Title=Script Formula
Plugin-Basic_Formula_Title=Basic Formula
FR-Designer_Group_Formula_Script_Title=Script Formula
FR-Designer_Group_Formula_Basic_Title=Basic Formula
FR-Designer_Group_Formula_Calculate=Calculate
FR-Designer_Group_Formula_Result=Result
FR-Designer_Group_Formula_Calculate_Error=Error

7
src/com/fr/solution/plugin/design/formula/locale/formula_ja_JP.properties

@ -1,2 +1,5 @@
Plugin-Script_Formula_Title=Script Formula
Plugin-Basic_Formula_Title=Basic Formula
FR-Designer_Group_Formula_Script_Title=Script Formula
FR-Designer_Group_Formula_Basic_Title=Basic Formula
FR-Designer_Group_Formula_Calculate=Calculate
FR-Designer_Group_Formula_Result=Result
FR-Designer_Group_Formula_Calculate_Error=Error

7
src/com/fr/solution/plugin/design/formula/locale/formula_zh_CN.properties

@ -1,2 +1,5 @@
Plugin-Script_Formula_Title=脚本公式
Plugin-Basic_Formula_Title=普通公式
FR-Designer_Group_Formula_Script_Title=\u811A\u672C\u516C\u5F0F
FR-Designer_Group_Formula_Basic_Title=\u5E38\u89C4\u516C\u5F0F
FR-Designer_Group_Formula_Calculate=\u5B9E\u65F6\u8BA1\u7B97
FR-Designer_Group_Formula_Result=\u516C\u5F0F\u7684\u8BA1\u7B97\u7ED3\u679C\u4E3A
FR-Designer_Group_Formula_Calculate_Error=\u53D1\u751F\u9519\u8BEF\uFF0C\u9519\u8BEF\u4FE1\u606F\u4E3A

40
src/com/fr/solution/plugin/design/formula/ui/ScriptFormulaPane.java → src/com/fr/solution/plugin/design/formula/ui/GroupFormulaPane.java

@ -3,11 +3,14 @@ package com.fr.solution.plugin.design.formula.ui;
import com.fr.base.BaseFormula;
import com.fr.base.BaseUtils;
import com.fr.base.FRContext;
import com.fr.base.io.IOFile;
import com.fr.data.TableDataSource;
import com.fr.design.actions.UpdateAction;
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.file.HistoryTemplateListPane;
import com.fr.design.formula.FunctionConstants;
import com.fr.design.formula.FunctionGroup;
import com.fr.design.formula.NameAndDescription;
@ -21,12 +24,17 @@ import com.fr.design.gui.itextarea.UITextArea;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.GeneralUtils;
import com.fr.general.Inter;
import com.fr.report.core.namespace.SimpleCellValueNameSpace;
import com.fr.script.Calculator;
import com.fr.solution.plugin.design.formula.ui.evt.OperateListener;
import com.fr.solution.plugin.design.formula.ui.type.CategoryFormulaPane;
import com.fr.stable.EncodeConstants;
import com.fr.stable.StringUtils;
import com.fr.stable.UtilEvalError;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
@ -57,7 +65,7 @@ import java.util.Locale;
/**
* 组合了普通公式和脚本公式的编辑器面板
*/
public class ScriptFormulaPane extends BasicPane implements UIFormula, OperateListener {
public class GroupFormulaPane extends BasicPane implements UIFormula, OperateListener {
private VariableTreeAndDescriptionArea variableTreeAndDescriptionArea;
@ -73,7 +81,7 @@ public class ScriptFormulaPane extends BasicPane implements UIFormula, OperateLi
private DefaultListModel functionNameModel;
private JList functionNameList;
public ScriptFormulaPane() {
public GroupFormulaPane() {
initComponents();
}
@ -123,10 +131,13 @@ public class ScriptFormulaPane extends BasicPane implements UIFormula, OperateLi
UIButton checkValidButton = new UIButton(Inter.getLocText("FormulaD-Check_Valid"));
checkValidButton.addActionListener(checkValidActionListener);
UIButton calculateButton = new UIButton(Inter.getLocText("FR-Designer_Group_Formula_Calculate"));
calculateButton.addActionListener(calculateActionListener);
JPanel checkBoxPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
checkBoxPane.setPreferredSize(new Dimension(450, 30));
checkBoxAndButtonPane.add(checkBoxPane, BorderLayout.WEST);
checkBoxAndButtonPane.add(checkValidButton, BorderLayout.EAST);
checkBoxAndButtonPane.add(GUICoreUtils.createFlowPane(checkValidButton, calculateButton), BorderLayout.EAST);
extendCheckBoxPane(checkBoxPane);
variableTreeAndDescriptionArea = new VariableTreeAndDescriptionArea();
this.add(variableTreeAndDescriptionArea, BorderLayout.SOUTH);
@ -283,6 +294,7 @@ public class ScriptFormulaPane extends BasicPane implements UIFormula, OperateLi
public void populate(BaseFormula formula, VariableResolver variableResolver) {
this.variableTreeAndDescriptionArea.populate(variableResolver);
formulaPane.populateBean(formula);
}
/**
@ -299,6 +311,28 @@ public class ScriptFormulaPane extends BasicPane implements UIFormula, OperateLi
}
};
private ActionListener calculateActionListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Calculator calculator = Calculator.createCalculator();
JTemplate<?, ?> template = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate();
if (template != null) {
IOFile file = template.getTarget();
calculator.setAttribute(TableDataSource.class, file);
calculator.pushNameSpace(SimpleCellValueNameSpace.getInstance());
}
String message;
try {
BaseFormula formula = GroupFormulaPane.this.update();
Object result = formula.evalValue(calculator);
message = Inter.getLocText("FR-Designer_Group_Formula_Result") + ":" + GeneralUtils.objectToString(result);
} catch (UtilEvalError utilEvalError) {
message = Inter.getLocText("FR-Designer_Group_Formula_Calculate_Error") + ":" + utilEvalError.getMessage();
}
JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), message);
}
};
public class VariableTreeAndDescriptionArea extends JPanel {
private JTree variablesTree;

59
src/com/fr/solution/plugin/design/formula/ui/GroupFormulaPaneWhenReserveFormula.java

@ -0,0 +1,59 @@
package com.fr.solution.plugin.design.formula.ui;
import com.fr.base.BaseFormula;
import com.fr.design.formula.VariableResolver;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.general.Inter;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
public class GroupFormulaPaneWhenReserveFormula extends GroupFormulaPane {
private UICheckBox reserveCheckBox4Result;
private UICheckBox reserveCheckBox4Write;
public GroupFormulaPaneWhenReserveFormula() {
super();
}
@Override
protected void extendCheckBoxPane(JPanel checkBoxPane) {
reserveCheckBox4Result = new UICheckBox(Inter.getLocText("FR-Designer_Export-Save-Formula"));
reserveCheckBox4Result.setSelected(false);
reserveCheckBox4Result.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent arg0) {
if (reserveCheckBox4Result.isSelected()) {
reserveCheckBox4Write.setSelected(true);
reserveCheckBox4Write.setEnabled(false);
} else {
reserveCheckBox4Write.setEnabled(true);
}
}
});
reserveCheckBox4Write = new UICheckBox(Inter.getLocText("FR-Designer_Write-Save-Formula"));
reserveCheckBox4Write.setSelected(false);
checkBoxPane.add(reserveCheckBox4Result, BorderLayout.CENTER);
checkBoxPane.add(reserveCheckBox4Write, BorderLayout.SOUTH);
}
@Override
public void populate(BaseFormula formula, VariableResolver variableResolver) {
super.populate(formula, variableResolver);
reserveCheckBox4Result.setSelected(formula.isReserveInResult());
reserveCheckBox4Write.setSelected(formula.isReserveOnWriteOrAnaly());
}
@Override
public BaseFormula update() {
BaseFormula formula = super.update();
if (formula != null) {
formula.setReserveInResult(this.reserveCheckBox4Result.isSelected());
formula.setReserveOnWriteOrAnaly(this.reserveCheckBox4Write.isSelected());
}
return formula;
}
}

117
src/com/fr/solution/plugin/design/formula/ui/type/impl/NormalFormulaPane.java → src/com/fr/solution/plugin/design/formula/ui/type/BaseFormulaPane.java

@ -1,16 +1,14 @@
package com.fr.solution.plugin.design.formula.ui.type.impl;
package com.fr.solution.plugin.design.formula.ui.type;
import com.fr.base.Formula;
import com.fr.base.BaseFormula;
import com.fr.design.beans.FurtherBasicBeanPane;
import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants;
import com.fr.general.FRLogger;
import com.fr.general.Inter;
import com.fr.parser.FRLexer;
import com.fr.parser.FRParser;
import com.fr.solution.plugin.design.formula.ui.evt.OperateListener;
import com.fr.solution.plugin.design.formula.ui.type.CommonEvent;
import com.fr.stable.ProductConstants;
import com.fr.stable.StringUtils;
import com.fr.stable.script.Expression;
@ -24,7 +22,7 @@ import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.StringReader;
public class NormalFormulaPane extends FurtherBasicBeanPane<Formula> implements CommonEvent, KeyListener {
public abstract class BaseFormulaPane<T extends BaseFormula> extends FurtherBasicBeanPane<T> implements CommonEvent, KeyListener {
private static final int KEY_10 = 10;
//上下左右
@ -42,7 +40,7 @@ public class NormalFormulaPane extends FurtherBasicBeanPane<Formula> implements
private OperateListener operateListener;
public NormalFormulaPane() {
public BaseFormulaPane() {
setLayout(new BorderLayout());
initFormulaTextArea();
UIScrollPane formulaTextAreaScrollPane = new UIScrollPane(formulaTextArea);
@ -51,25 +49,12 @@ public class NormalFormulaPane extends FurtherBasicBeanPane<Formula> implements
}
private void initFormulaTextArea() {
formulaTextArea = new RSyntaxTextArea();
configFormulaArea();
formulaTextArea = createContentEditor();
initFormulaTextAreaKeyListener();
initFormulaTextAreaMouseListener();
}
protected void configFormulaArea() {
formulaTextArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_FORMULA);
formulaTextArea.setAnimateBracketMatching(true);
formulaTextArea.setAntiAliasingEnabled(true);
formulaTextArea.setAutoIndentEnabled(true);
formulaTextArea.setCodeFoldingEnabled(true);
formulaTextArea.setUseSelectedTextColor(true);
formulaTextArea.setCloseCurlyBraces(true);
formulaTextArea.setBracketMatchingEnabled(true);
formulaTextArea.setAntiAliasingEnabled(true);
formulaTextArea.setCloseMarkupTags(true);
formulaTextArea.setLineWrap(true);
}
private void initFormulaTextAreaKeyListener() {
formulaTextArea.addKeyListener(this);
@ -156,65 +141,58 @@ public class NormalFormulaPane extends FurtherBasicBeanPane<Formula> implements
}
}
@Override
public boolean accept(Object ob) {
return ob instanceof Formula;
}
@Override
public void reset() {
}
@Override
public void populateBean(Formula formula) {
// set text
if (formula != null) {
String content = formula.getContent();
if (content.trim().equals("=")) {
this.formulaTextArea.setForeground(Color.gray);
this.formulaTextArea.setText("\n\n\n" + Inter.getLocText("FR-Designer_FormulaPane_Tips"));
this.formulaTextArea.setCaretPosition(0);
ifHasBeenWritten = 0;
operateListener.clearMathListModel();
} else if (content.trim().charAt(0) == '=') {
this.formulaTextArea.setText(content.trim().substring(1));
currentPosition = formulaTextArea.getCaretPosition();
beginPosition = getBeginPosition();
insertPosition = beginPosition;
firstStepToFindTips(beginPosition);
operateListener.fixFunctionNameList();
ifHasBeenWritten = 1;
} else {
this.formulaTextArea.setText(content);
currentPosition = formulaTextArea.getCaretPosition();
beginPosition = getBeginPosition();
insertPosition = beginPosition;
firstStepToFindTips(beginPosition);
operateListener.fixFunctionNameList();
ifHasBeenWritten = 1;
}
protected abstract RSyntaxTextArea createContentEditor();
protected void fixContent(String content) {
if (content.trim().equals("=")) {
this.formulaTextArea.setForeground(Color.gray);
this.formulaTextArea.setText("\n\n\n" + Inter.getLocText("FR-Designer_FormulaPane_Tips"));
this.formulaTextArea.setCaretPosition(0);
ifHasBeenWritten = 0;
operateListener.clearMathListModel();
} else if (content.trim().charAt(0) == '=') {
this.formulaTextArea.setText(content.trim().substring(1));
currentPosition = formulaTextArea.getCaretPosition();
beginPosition = getBeginPosition();
insertPosition = beginPosition;
firstStepToFindTips(beginPosition);
operateListener.fixFunctionNameList();
ifHasBeenWritten = 1;
} else {
this.formulaTextArea.setText(content);
currentPosition = formulaTextArea.getCaretPosition();
beginPosition = getBeginPosition();
insertPosition = beginPosition;
firstStepToFindTips(beginPosition);
operateListener.fixFunctionNameList();
ifHasBeenWritten = 1;
}
}
protected String getText() {
return formulaTextArea.getText();
}
@Override
public Formula updateBean() {
Formula formula;
public T updateBean() {
String content = getText();
if (ifHasBeenWritten == 0) {
return new Formula();
return createWrittenFormula(content);
} else {
String content = this.formulaTextArea.getText();
if (StringUtils.isEmpty(content) || content.trim().charAt(0) == '=') {
formula = new Formula(content);
} else {
formula = new Formula("=" + content);
}
return formula;
return createFormula(content);
}
}
protected abstract T createWrittenFormula(String content);
protected abstract T createFormula(String content);
@Override
public void keyTyped(KeyEvent e) {
@ -267,6 +245,7 @@ public class NormalFormulaPane extends FurtherBasicBeanPane<Formula> implements
ifHasBeenWritten = 1;
insertPosition = 0;
}
text = wrapText(text);
String textAll = formulaTextArea.getText();
currentPosition = formulaTextArea.getCaretPosition();
int insert = 0;
@ -289,6 +268,10 @@ public class NormalFormulaPane extends FurtherBasicBeanPane<Formula> implements
insertPosition = formulaTextArea.getCaretPosition();
}
protected String wrapText(String text) {
return text;
}
public void onDoubleClick(String currentLineContent) {
if (ifHasBeenWritten == 0) {
formulaTextArea.setForeground(Color.black);
@ -336,7 +319,7 @@ public class NormalFormulaPane extends FurtherBasicBeanPane<Formula> implements
}
JOptionPane.showMessageDialog(
NormalFormulaPane.this,
BaseFormulaPane.this,
(expression != null ? Inter.getLocText("FormulaD-Valid_Formula") : Inter.getLocText("FormulaD-Invalid_Formula")) + ".", ProductConstants.PRODUCT_NAME,
JOptionPane.INFORMATION_MESSAGE);
}
@ -353,6 +336,6 @@ public class NormalFormulaPane extends FurtherBasicBeanPane<Formula> implements
@Override
public String title4PopupWindow() {
return Inter.getLocText("Plugin-Basic_Formula_Title");
return Inter.getLocText("FR-Designer_Group_Formula_Basic_Title");
}
}

8
src/com/fr/solution/plugin/design/formula/ui/type/CategoryFormulaPane.java

@ -4,7 +4,7 @@ import com.fr.base.BaseFormula;
import com.fr.design.beans.FurtherBasicBeanPane;
import com.fr.design.gui.frpane.UIRadioPane;
import com.fr.solution.plugin.design.formula.ui.evt.OperateListener;
import com.fr.solution.plugin.design.formula.ui.type.impl.NormalFormulaPane;
import com.fr.solution.plugin.design.formula.ui.type.impl.BasicFormulaPane;
import com.fr.solution.plugin.design.formula.ui.type.impl.ScriptFormulaPane;
import java.util.ArrayList;
@ -19,7 +19,7 @@ public class CategoryFormulaPane extends UIRadioPane<BaseFormula>{
protected List<FurtherBasicBeanPane<? extends BaseFormula>> initPaneList() {
List<FurtherBasicBeanPane<? extends BaseFormula>> list = new ArrayList<FurtherBasicBeanPane<? extends BaseFormula>>();
NormalFormulaPane normal = new NormalFormulaPane();
BasicFormulaPane normal = new BasicFormulaPane();
ScriptFormulaPane script = new ScriptFormulaPane();
list.add(normal);
@ -55,7 +55,9 @@ public class CategoryFormulaPane extends UIRadioPane<BaseFormula>{
}
public void setOperateListener(OperateListener listener) {
events.get(cardNamesPane.getSelectedIndex()).setOperateListener(listener);
for (CommonEvent event : events) {
event.setOperateListener(listener);
}
}
@Override

60
src/com/fr/solution/plugin/design/formula/ui/type/impl/BasicFormulaPane.java

@ -0,0 +1,60 @@
package com.fr.solution.plugin.design.formula.ui.type.impl;
import com.fr.base.Formula;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants;
import com.fr.solution.plugin.design.formula.ui.type.BaseFormulaPane;
import com.fr.stable.StringUtils;
public class BasicFormulaPane extends BaseFormulaPane<Formula> {
@Override
public boolean accept(Object ob) {
return ob instanceof Formula;
}
@Override
public void populateBean(Formula formula) {
if (formula != null) {
String content = formula.getContent();
fixContent(content);
}
}
@Override
protected Formula createWrittenFormula(String content) {
return new Formula();
}
@Override
protected Formula createFormula(String content) {
Formula formula;
if (StringUtils.isEmpty(content) || content.trim().charAt(0) == '=') {
formula = new Formula(content);
} else {
formula = new Formula("=" + content);
}
return formula;
}
@Override
protected RSyntaxTextArea createContentEditor() {
RSyntaxTextArea formulaTextArea = new RSyntaxTextArea();
configFormulaArea(formulaTextArea);
return formulaTextArea;
}
protected void configFormulaArea(RSyntaxTextArea formulaTextArea) {
formulaTextArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_FORMULA);
formulaTextArea.setAnimateBracketMatching(true);
formulaTextArea.setAntiAliasingEnabled(true);
formulaTextArea.setAutoIndentEnabled(true);
formulaTextArea.setCodeFoldingEnabled(true);
formulaTextArea.setUseSelectedTextColor(true);
formulaTextArea.setCloseCurlyBraces(true);
formulaTextArea.setBracketMatchingEnabled(true);
formulaTextArea.setAntiAliasingEnabled(true);
formulaTextArea.setCloseMarkupTags(true);
formulaTextArea.setLineWrap(true);
}
}

55
src/com/fr/solution/plugin/design/formula/ui/type/impl/ScriptFormulaPane.java

@ -1,33 +1,23 @@
package com.fr.solution.plugin.design.formula.ui.type.impl;
import com.fr.base.Formula;
import com.fr.base.ScriptFormula;
import com.fr.design.beans.FurtherBasicBeanPane;
import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants;
import com.fr.general.Inter;
import com.fr.solution.plugin.design.formula.ui.evt.OperateListener;
import com.fr.solution.plugin.design.formula.ui.type.CommonEvent;
import com.fr.solution.plugin.design.formula.ui.type.BaseFormulaPane;
import com.fr.stable.StringUtils;
import java.awt.*;
public class ScriptFormulaPane extends BaseFormulaPane<ScriptFormula> {
public class ScriptFormulaPane extends FurtherBasicBeanPane<ScriptFormula> implements CommonEvent {
private RSyntaxTextArea formulaTextArea;
public ScriptFormulaPane() {
setLayout(new BorderLayout());
formulaTextArea = new RSyntaxTextArea();
@Override
protected RSyntaxTextArea createContentEditor() {
RSyntaxTextArea formulaTextArea = new RSyntaxTextArea();
formulaTextArea.setCloseCurlyBraces(true);
formulaTextArea.setLineWrap(true);
formulaTextArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT);
formulaTextArea.setCodeFoldingEnabled(true);
formulaTextArea.setAntiAliasingEnabled(true);
UIScrollPane formulaTextAreaScrollPane = new UIScrollPane(formulaTextArea);
formulaTextAreaScrollPane.setBorder(null);
add(formulaTextAreaScrollPane, BorderLayout.CENTER);
return formulaTextArea;
}
@Override
@ -43,14 +33,14 @@ public class ScriptFormulaPane extends FurtherBasicBeanPane<ScriptFormula> imple
@Override
public void populateBean(ScriptFormula formula) {
if (formula != null) {
formulaTextArea.setText(formula.getContent());
String content = formula.getContent();
fixContent(content);
}
}
@Override
public ScriptFormula updateBean() {
protected ScriptFormula createFormula(String content) {
ScriptFormula formula;
String content = formulaTextArea.getText();
if (StringUtils.isEmpty(content) || content.trim().charAt(0) == '=') {
formula = new ScriptFormula(content);
} else {
@ -60,37 +50,22 @@ public class ScriptFormulaPane extends FurtherBasicBeanPane<ScriptFormula> imple
}
@Override
public void onDoubleClick(String currentLineContent) {
}
@Override
public void onSingleClick() {
protected ScriptFormula createWrittenFormula(String content) {
return createFormula(content);
}
@Override
public void applyText(String text) {
}
@Override
public void checkContentValid() {
}
@Override
public void onSearch() {
public void onDoubleClick(String currentLineContent) {
}
@Override
public void setOperateListener(OperateListener listener) {
protected String wrapText(String text) {
return "'${" + text + "}'";
}
@Override
public String title4PopupWindow() {
return Inter.getLocText("Plugin-Script_Formula_Title");
return Inter.getLocText("FR-Designer_Group_Formula_Script_Title");
}
}

Loading…
Cancel
Save