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 }