View Javadoc

1   package fr.ove.palette.swing;
2   
3   import javax.swing.JTextField;
4   import fr.ove.palette.*;
5   import fr.ove.palette.events.*;
6   
7   public class LinearEntry extends JTextField implements PaletteListener {
8       /***
9       * Consumes (i.e. treats) the event received.
10      * @param paletteEvent the event to consume.
11      */
12      public void consumePaletteEvent(PaletteEvent paletteEvent) {
13          int index;
14          StringBuffer start, end;
15          
16          String text = getText();
17          if (getSelectedText() == "") {
18              index  = getCaretPosition();
19              start = new StringBuffer(text.substring(0, index));
20              end = new StringBuffer(text.substring(index));
21          }
22          else {
23              index = getSelectionStart();
24              start = new StringBuffer(text.substring(0, index));
25              end = new StringBuffer(text.substring(getSelectionEnd()));
26          }
27          
28          PaletteInfo paletteInfo = paletteEvent.getPaletteInfo();
29          setText(start + paletteInfo.getSyntax() + end);
30          setCaretPosition(index + paletteInfo.getOffset());
31          requestFocus();
32      }
33  }