|
|
|
@ -246,44 +246,71 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public class DoubleClick extends MouseAdapter { |
|
|
|
|
String singlePressContent; |
|
|
|
|
|
|
|
|
|
String doublePressContent; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void mouseClicked(MouseEvent e) { |
|
|
|
|
public void mousePressed(MouseEvent e) { |
|
|
|
|
int index = tipsList.getSelectedIndex(); |
|
|
|
|
if (index != -1) { |
|
|
|
|
String currentLineContent = (String) listModel.getElementAt(index); |
|
|
|
|
if (e.getClickCount() == 2) { |
|
|
|
|
if (ifHasBeenWriten == 0) { |
|
|
|
|
formulaTextArea.setForeground(Color.black); |
|
|
|
|
formulaTextArea.setText(""); |
|
|
|
|
if (e.getClickCount() == 1) { |
|
|
|
|
singlePressContent = (String) listModel.getElementAt(index); |
|
|
|
|
} else if (e.getClickCount() == 2) { |
|
|
|
|
doublePressContent = (String) listModel.getElementAt(index); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void mouseReleased(MouseEvent e) { |
|
|
|
|
int index = tipsList.getSelectedIndex(); |
|
|
|
|
if (index != -1) { |
|
|
|
|
if (e.getClickCount() == 1) { |
|
|
|
|
if (ComparatorUtils.equals((String) listModel.getElementAt(index), singlePressContent)) { |
|
|
|
|
singleClickActuator(singlePressContent); |
|
|
|
|
} |
|
|
|
|
formulaTextArea.setForeground(Color.black); |
|
|
|
|
currentPosition = formulaTextArea.getCaretPosition(); |
|
|
|
|
String output = currentLineContent + "()"; |
|
|
|
|
String textAll = formulaTextArea.getText(); |
|
|
|
|
String textReplaced; |
|
|
|
|
int position = 0; |
|
|
|
|
if (insertPosition <= currentPosition) { |
|
|
|
|
textReplaced = textAll.substring(0, insertPosition) + output + textAll.substring(currentPosition); |
|
|
|
|
position = insertPosition + output.length() - 1; |
|
|
|
|
} else { |
|
|
|
|
textReplaced = textAll.substring(0, currentPosition) + output + textAll.substring(insertPosition); |
|
|
|
|
position = currentPosition + output.length() - 1; |
|
|
|
|
} else if (e.getClickCount() == 2) { |
|
|
|
|
if (ComparatorUtils.equals((String) listModel.getElementAt(index), doublePressContent)) { |
|
|
|
|
doubleClickActuator(doublePressContent); |
|
|
|
|
} |
|
|
|
|
formulaTextArea.setText(textReplaced); |
|
|
|
|
formulaTextArea.requestFocusInWindow(); |
|
|
|
|
formulaTextArea.setCaretPosition(position); |
|
|
|
|
insertPosition = position; |
|
|
|
|
ifHasBeenWriten = 1; |
|
|
|
|
listModel.removeAllElements(); |
|
|
|
|
} else if (e.getClickCount() == 1) { |
|
|
|
|
refreshDescriptionTextArea(currentLineContent); |
|
|
|
|
|
|
|
|
|
formulaTextArea.requestFocusInWindow(); |
|
|
|
|
fixFunctionNameList(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void singleClickActuator(String currentLineContent) { |
|
|
|
|
refreshDescriptionTextArea(currentLineContent); |
|
|
|
|
|
|
|
|
|
formulaTextArea.requestFocusInWindow(); |
|
|
|
|
fixFunctionNameList(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void doubleClickActuator(String currentLineContent) { |
|
|
|
|
if (ifHasBeenWriten == 0) { |
|
|
|
|
formulaTextArea.setForeground(Color.black); |
|
|
|
|
formulaTextArea.setText(""); |
|
|
|
|
} |
|
|
|
|
formulaTextArea.setForeground(Color.black); |
|
|
|
|
currentPosition = formulaTextArea.getCaretPosition(); |
|
|
|
|
String output = currentLineContent + "()"; |
|
|
|
|
String textAll = formulaTextArea.getText(); |
|
|
|
|
String textReplaced; |
|
|
|
|
int position = 0; |
|
|
|
|
if (insertPosition <= currentPosition) { |
|
|
|
|
textReplaced = textAll.substring(0, insertPosition) + output + textAll.substring(currentPosition); |
|
|
|
|
position = insertPosition + output.length() - 1; |
|
|
|
|
} else { |
|
|
|
|
textReplaced = textAll.substring(0, currentPosition) + output + textAll.substring(insertPosition); |
|
|
|
|
position = currentPosition + output.length() - 1; |
|
|
|
|
} |
|
|
|
|
formulaTextArea.setText(textReplaced); |
|
|
|
|
formulaTextArea.requestFocusInWindow(); |
|
|
|
|
formulaTextArea.setCaretPosition(position); |
|
|
|
|
insertPosition = position; |
|
|
|
|
ifHasBeenWriten = 1; |
|
|
|
|
listModel.removeAllElements(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@ -583,10 +610,10 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula {
|
|
|
|
|
FineJOptionPane.showMessageDialog( |
|
|
|
|
FormulaPane.this, |
|
|
|
|
/* |
|
|
|
|
* alex:仅仅只需要根据expression是否为null作合法性判断 |
|
|
|
|
* 不需要eval |
|
|
|
|
* TODO 但有个问题,有些函数的参数个数是有规定的,何以判别之 |
|
|
|
|
*/ |
|
|
|
|
* alex:仅仅只需要根据expression是否为null作合法性判断 |
|
|
|
|
* 不需要eval |
|
|
|
|
* TODO 但有个问题,有些函数的参数个数是有规定的,何以判别之 |
|
|
|
|
*/ |
|
|
|
|
(expression != null ? com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FormulaD_Valid_Formula") : com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FormulaD_Invalid_Formula")) + ".", |
|
|
|
|
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tool_Tips"), |
|
|
|
|
JOptionPane.INFORMATION_MESSAGE); |
|
|
|
@ -780,13 +807,13 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula {
|
|
|
|
|
public void valueChanged(TreeSelectionEvent e) { |
|
|
|
|
DefaultMutableTreeNode selectedTreeNode = (DefaultMutableTreeNode) variablesTree.getLastSelectedPathComponent(); |
|
|
|
|
Object selectedValue = selectedTreeNode.getUserObject(); |
|
|
|
|
Object selectedParentValue = ((DefaultMutableTreeNode)selectedTreeNode.getParent()).getUserObject(); |
|
|
|
|
Object selectedParentValue = ((DefaultMutableTreeNode) selectedTreeNode.getParent()).getUserObject(); |
|
|
|
|
|
|
|
|
|
if (selectedValue == null) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (selectedValue instanceof TextUserObject) { |
|
|
|
|
if (selectedValue instanceof TextUserObject) { |
|
|
|
|
//有公式说明的条件:1.属于TextUserObject 2.parent是系统参数
|
|
|
|
|
if (ComparatorUtils.equals(((TextFolderUserObject) selectedParentValue).getText(), |
|
|
|
|
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FormulaPane_Variables"))) { |
|
|
|
|