home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 June / CHIPHEFT062001.ISO / browser / nc32lyc / comm.z / java40.jar / java / awt / TextComponent.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-08-15  |  4.8 KB  |  236 lines

  1. package java.awt;
  2.  
  3. import java.awt.event.TextEvent;
  4. import java.awt.event.TextListener;
  5. import java.awt.peer.TextComponentPeer;
  6. import java.io.IOException;
  7. import java.io.ObjectInputStream;
  8. import java.io.ObjectOutputStream;
  9.  
  10. public class TextComponent extends Component {
  11.    String text;
  12.    boolean editable = true;
  13.    int selectionStart;
  14.    int selectionEnd;
  15.    protected transient TextListener textListener;
  16.    private static final long serialVersionUID = -2214773872412987419L;
  17.    private int textComponentSerializedDataVersion = 1;
  18.  
  19.    TextComponent(String var1) {
  20.       this.text = var1;
  21.       ((Component)this).setCursor(Cursor.getPredefinedCursor(2));
  22.    }
  23.  
  24.    public void removeNotify() {
  25.       TextComponentPeer var1 = (TextComponentPeer)super.peer;
  26.       if (var1 != null) {
  27.          this.text = var1.getText();
  28.          this.selectionStart = var1.getSelectionStart();
  29.          this.selectionEnd = var1.getSelectionEnd();
  30.       }
  31.  
  32.       super.removeNotify();
  33.    }
  34.  
  35.    public synchronized void setText(String var1) {
  36.       this.text = var1;
  37.       TextComponentPeer var2 = (TextComponentPeer)super.peer;
  38.       if (var2 != null) {
  39.          var2.setText(var1);
  40.       }
  41.  
  42.    }
  43.  
  44.    public synchronized String getText() {
  45.       TextComponentPeer var1 = (TextComponentPeer)super.peer;
  46.       if (var1 != null) {
  47.          this.text = var1.getText();
  48.       }
  49.  
  50.       return this.text;
  51.    }
  52.  
  53.    public synchronized String getSelectedText() {
  54.       return this.getText().substring(this.getSelectionStart(), this.getSelectionEnd());
  55.    }
  56.  
  57.    public boolean isEditable() {
  58.       return this.editable;
  59.    }
  60.  
  61.    public synchronized void setEditable(boolean var1) {
  62.       this.editable = var1;
  63.       TextComponentPeer var2 = (TextComponentPeer)super.peer;
  64.       if (var2 != null) {
  65.          var2.setEditable(var1);
  66.       }
  67.  
  68.    }
  69.  
  70.    public synchronized int getSelectionStart() {
  71.       TextComponentPeer var1 = (TextComponentPeer)super.peer;
  72.       if (var1 != null) {
  73.          this.selectionStart = var1.getSelectionStart();
  74.       }
  75.  
  76.       return this.selectionStart;
  77.    }
  78.  
  79.    public synchronized void setSelectionStart(int var1) {
  80.       this.select(var1, this.getSelectionEnd());
  81.    }
  82.  
  83.    public synchronized int getSelectionEnd() {
  84.       TextComponentPeer var1 = (TextComponentPeer)super.peer;
  85.       if (var1 != null) {
  86.          this.selectionEnd = var1.getSelectionEnd();
  87.       }
  88.  
  89.       return this.selectionEnd;
  90.    }
  91.  
  92.    public synchronized void setSelectionEnd(int var1) {
  93.       this.select(this.getSelectionStart(), var1);
  94.    }
  95.  
  96.    public synchronized void select(int var1, int var2) {
  97.       String var3 = this.getText();
  98.       if (var1 < 0) {
  99.          var1 = 0;
  100.       }
  101.  
  102.       if (var2 > var3.length()) {
  103.          var2 = var3.length();
  104.       }
  105.  
  106.       if (var2 < var1) {
  107.          var2 = var1;
  108.       }
  109.  
  110.       if (var1 > var2) {
  111.          var1 = var2;
  112.       }
  113.  
  114.       this.selectionStart = var1;
  115.       this.selectionEnd = var2;
  116.       TextComponentPeer var4 = (TextComponentPeer)super.peer;
  117.       if (var4 != null) {
  118.          var4.select(var1, var2);
  119.       }
  120.  
  121.    }
  122.  
  123.    public synchronized void selectAll() {
  124.       this.getText();
  125.       this.selectionStart = 0;
  126.       this.selectionEnd = this.getText().length();
  127.       TextComponentPeer var1 = (TextComponentPeer)super.peer;
  128.       if (var1 != null) {
  129.          var1.select(this.selectionStart, this.selectionEnd);
  130.       }
  131.  
  132.    }
  133.  
  134.    public void setCaretPosition(int var1) {
  135.       if (var1 < 0) {
  136.          throw new IllegalArgumentException("position less than zero.");
  137.       } else {
  138.          int var2 = this.getText().length();
  139.          if (var1 > var2) {
  140.             var1 = var2;
  141.          }
  142.  
  143.          TextComponentPeer var3 = (TextComponentPeer)super.peer;
  144.          if (var3 != null) {
  145.             var3.setCaretPosition(var1);
  146.          } else {
  147.             throw new IllegalComponentStateException("Cannot set caret position until after the peer has been created");
  148.          }
  149.       }
  150.    }
  151.  
  152.    public int getCaretPosition() {
  153.       TextComponentPeer var1 = (TextComponentPeer)super.peer;
  154.       int var2 = 0;
  155.       if (var1 != null) {
  156.          var2 = var1.getCaretPosition();
  157.       }
  158.  
  159.       return var2;
  160.    }
  161.  
  162.    public synchronized void addTextListener(TextListener var1) {
  163.       this.textListener = AWTEventMulticaster.add(this.textListener, var1);
  164.       super.newEventsOnly = true;
  165.    }
  166.  
  167.    public void removeTextListener(TextListener var1) {
  168.       this.textListener = AWTEventMulticaster.remove(this.textListener, var1);
  169.    }
  170.  
  171.    boolean eventEnabled(AWTEvent var1) {
  172.       if (var1.id == 900) {
  173.          return (super.eventMask & 1024L) != 0L || this.textListener != null;
  174.       } else {
  175.          return super.eventEnabled(var1);
  176.       }
  177.    }
  178.  
  179.    protected void processEvent(AWTEvent var1) {
  180.       if (var1 instanceof TextEvent) {
  181.          this.processTextEvent((TextEvent)var1);
  182.       } else {
  183.          super.processEvent(var1);
  184.       }
  185.    }
  186.  
  187.    protected void processTextEvent(TextEvent var1) {
  188.       if (this.textListener != null) {
  189.          int var2 = ((AWTEvent)var1).getID();
  190.          switch (var2) {
  191.             case 900:
  192.                this.textListener.textValueChanged(var1);
  193.                return;
  194.          }
  195.       }
  196.  
  197.    }
  198.  
  199.    protected String paramString() {
  200.       String var1 = super.paramString() + ",text=" + this.getText();
  201.       if (this.editable) {
  202.          var1 = var1 + ",editable";
  203.       }
  204.  
  205.       return var1 + ",selection=" + this.getSelectionStart() + "-" + this.getSelectionEnd();
  206.    }
  207.  
  208.    private void writeObject(ObjectOutputStream var1) throws IOException {
  209.       TextComponentPeer var2 = (TextComponentPeer)super.peer;
  210.       if (var2 != null) {
  211.          this.text = var2.getText();
  212.          this.selectionStart = var2.getSelectionStart();
  213.          this.selectionEnd = var2.getSelectionEnd();
  214.       }
  215.  
  216.       var1.defaultWriteObject();
  217.       AWTEventMulticaster.save(var1, "textL", this.textListener);
  218.       var1.writeObject((Object)null);
  219.    }
  220.  
  221.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  222.       var1.defaultReadObject();
  223.  
  224.       Object var2;
  225.       while((var2 = var1.readObject()) != null) {
  226.          String var3 = ((String)var2).intern();
  227.          if (var3 == "textL") {
  228.             this.addTextListener((TextListener)var1.readObject());
  229.          } else {
  230.             var1.readObject();
  231.          }
  232.       }
  233.  
  234.    }
  235. }
  236.