KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > gnu > kawa > models > Text


1 package gnu.kawa.models;
2 import gnu.lists.*;
3
4 /** An editable sequences of characters and embedded objects.
5  * For now, only supports plain text.
6  * Conceptually similar to javax.swing.text.Document.
7  * May display as a one line "text field" or a multi-line "text area"
8  * depending on styling preferences; for now only the former is implemented.
9  */

10
11 public class Text extends Model
12   implements Viewable, java.io.Serializable JavaDoc
13 {
14   public final CharBuffer buffer = new CharBuffer(100);
15
16   public Text ()
17   {
18     this("");
19   }
20
21   public Text (String JavaDoc text)
22   {
23     buffer.gapEnd = 100-1;
24     buffer.getArray()[buffer.gapEnd] = '\n';
25     setText(text);
26   }
27
28   public void makeView (Display display, Object JavaDoc where)
29   {
30     display.addText(this, where);
31   }
32
33   public String JavaDoc getText ()
34   {
35     int len = buffer.size() - 1;
36     int start = buffer.getSegment(0, len);
37     return new String JavaDoc(buffer.getArray(), start, len);
38   }
39
40   public void setText (String JavaDoc text)
41   {
42     int size = buffer.size()-1;
43     if (size > 0)
44       buffer.delete(0, size);
45     buffer.insert(0, text, false);
46     notifyListeners("text");
47   }
48
49   public CharBuffer getBuffer ()
50   {
51     return buffer;
52   }
53 }
54
Popular Tags