@ -246,44 +246,69 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula {
}
public class DoubleClick extends MouseAdapter {
String singlePressContent ;
String doublePressContent ;
@Override
public void mousePressed ( MouseEvent e ) {
int index = tipsList . getSelectedIndex ( ) ;
if ( index ! = - 1 ) {
if ( e . getClickCount ( ) = = 1 ) {
singlePressContent = ( String ) listModel . getElementAt ( index ) ;
} else if ( e . getClickCount ( ) = = 2 ) {
doublePressContent = ( String ) listModel . getElementAt ( index ) ;
}
}
}
@Override
public void mouseClicked ( MouseEvent e ) {
public void mouseReleas ed ( 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 ) {
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