增强公式编辑器,能让公式支持脚本和实时计算。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

96 lines
2.5 KiB

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.stable.StringUtils;
import java.awt.*;
public class ScriptFormulaPane extends FurtherBasicBeanPane<ScriptFormula> implements CommonEvent {
private RSyntaxTextArea formulaTextArea;
public ScriptFormulaPane() {
setLayout(new BorderLayout());
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);
}
@Override
public boolean accept(Object ob) {
return ob instanceof ScriptFormula;
}
@Override
public void reset() {
}
@Override
public void populateBean(ScriptFormula formula) {
if (formula != null) {
formulaTextArea.setText(formula.getContent());
}
}
@Override
public ScriptFormula updateBean() {
ScriptFormula formula;
String content = formulaTextArea.getText();
if (StringUtils.isEmpty(content) || content.trim().charAt(0) == '=') {
formula = new ScriptFormula(content);
} else {
formula = new ScriptFormula("=" + content);
}
return formula;
}
@Override
public void onDoubleClick(String currentLineContent) {
}
@Override
public void onSingleClick() {
}
@Override
public void applyText(String text) {
}
@Override
public void checkContentValid() {
}
@Override
public void onSearch() {
}
@Override
public void setOperateListener(OperateListener listener) {
}
@Override
public String title4PopupWindow() {
return Inter.getLocText("Plugin-Script_Formula_Title");
}
}