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