home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 144 / DPCS0200.iso / Internet / Supanet / system / swing.jar / javax / swing / text / JTextComponent.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-05  |  18.0 KB  |  729 lines

  1. package javax.swing.text;
  2.  
  3. import java.awt.AWTEvent;
  4. import java.awt.Color;
  5. import java.awt.Component;
  6. import java.awt.Container;
  7. import java.awt.Dimension;
  8. import java.awt.Insets;
  9. import java.awt.LayoutManager;
  10. import java.awt.Point;
  11. import java.awt.Rectangle;
  12. import java.awt.Toolkit;
  13. import java.awt.datatransfer.Clipboard;
  14. import java.awt.datatransfer.ClipboardOwner;
  15. import java.awt.datatransfer.DataFlavor;
  16. import java.awt.datatransfer.StringSelection;
  17. import java.awt.datatransfer.Transferable;
  18. import java.awt.event.ActionEvent;
  19. import java.awt.event.InputEvent;
  20. import java.awt.event.KeyEvent;
  21. import java.io.IOException;
  22. import java.io.ObjectInputStream;
  23. import java.io.Reader;
  24. import java.io.Writer;
  25. import java.util.Hashtable;
  26. import javax.accessibility.Accessible;
  27. import javax.accessibility.AccessibleContext;
  28. import javax.swing.Action;
  29. import javax.swing.JComponent;
  30. import javax.swing.JViewport;
  31. import javax.swing.KeyStroke;
  32. import javax.swing.Scrollable;
  33. import javax.swing.UIManager;
  34. import javax.swing.event.CaretEvent;
  35. import javax.swing.event.CaretListener;
  36. import javax.swing.plaf.TextUI;
  37.  
  38. public abstract class JTextComponent extends JComponent implements Scrollable, Accessible {
  39.    public static final String FOCUS_ACCELERATOR_KEY = "focusAcceleratorKey";
  40.    private Document model;
  41.    private transient Caret caret;
  42.    private transient Highlighter highlighter;
  43.    private transient Keymap keymap;
  44.    private boolean opaque;
  45.    private transient MutableCaretEvent caretEvent;
  46.    private Color caretColor;
  47.    private Color selectionColor;
  48.    private Color selectedTextColor;
  49.    private Color disabledTextColor;
  50.    private boolean editable;
  51.    private Insets margin;
  52.    private char focusAccelerator;
  53.    private Action focusAction = new FocusAction(this);
  54.    private static ClipboardOwner defaultClipboardOwner = new ClipboardObserver();
  55.    private static Hashtable keymapTable = null;
  56.    private JTextComponent editor;
  57.    private static JTextComponent focusedComponent;
  58.    public static final String DEFAULT_KEYMAP = "default";
  59.    static final KeyBinding[] defaultBindings = new KeyBinding[]{new KeyBinding(KeyStroke.getKeyStroke(8, 0), "delete-previous"), new KeyBinding(KeyStroke.getKeyStroke(127, 0), "delete-next"), new KeyBinding(KeyStroke.getKeyStroke(39, 0), "caret-forward"), new KeyBinding(KeyStroke.getKeyStroke(37, 0), "caret-backward")};
  60.    // $FF: synthetic field
  61.    static Class class$javax$swing$event$CaretListener;
  62.  
  63.    static {
  64.       try {
  65.          keymapTable = new Hashtable(17);
  66.          Keymap var0 = addKeymap("default", (Keymap)null);
  67.          var0.setDefaultAction(new DefaultEditorKit.DefaultKeyTypedAction());
  68.          DefaultEditorKit var1 = new DefaultEditorKit();
  69.          loadKeymap(var0, defaultBindings, ((EditorKit)var1).getActions());
  70.       } catch (Throwable var2) {
  71.          var2.printStackTrace();
  72.          keymapTable = new Hashtable(17);
  73.       }
  74.  
  75.    }
  76.  
  77.    public JTextComponent() {
  78.       ((Component)this).enableEvents(8L);
  79.       this.caretEvent = new MutableCaretEvent(this);
  80.       ((Component)this).addMouseListener(this.caretEvent);
  81.       ((Component)this).addFocusListener(this.caretEvent);
  82.       this.setEditable(true);
  83.       ((Container)this).setLayout((LayoutManager)null);
  84.       this.updateUI();
  85.    }
  86.  
  87.    // $FF: synthetic method
  88.    static Document access$0(JTextComponent var0) {
  89.       return var0.model;
  90.    }
  91.  
  92.    // $FF: synthetic method
  93.    static JTextComponent access$1() {
  94.       return focusedComponent;
  95.    }
  96.  
  97.    // $FF: synthetic method
  98.    static void access$2(JTextComponent var0) {
  99.       focusedComponent = var0;
  100.    }
  101.  
  102.    public void addCaretListener(CaretListener var1) {
  103.       super.listenerList.add(class$javax$swing$event$CaretListener != null ? class$javax$swing$event$CaretListener : (class$javax$swing$event$CaretListener = class$("javax.swing.event.CaretListener")), var1);
  104.    }
  105.  
  106.    public static Keymap addKeymap(String var0, Keymap var1) {
  107.       DefaultKeymap var2 = new DefaultKeymap(var0, var1);
  108.       if (var0 != null) {
  109.          keymapTable.put(var0, var2);
  110.       }
  111.  
  112.       return var2;
  113.    }
  114.  
  115.    // $FF: synthetic method
  116.    static Class class$(String var0) {
  117.       try {
  118.          return Class.forName(var0);
  119.       } catch (ClassNotFoundException var2) {
  120.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  121.       }
  122.    }
  123.  
  124.    public void copy() {
  125.       try {
  126.          Clipboard var1 = Toolkit.getDefaultToolkit().getSystemClipboard();
  127.          int var2 = Math.min(this.caret.getDot(), this.caret.getMark());
  128.          int var3 = Math.max(this.caret.getDot(), this.caret.getMark());
  129.          if (var2 != var3) {
  130.             Document var4 = this.getDocument();
  131.             String var5 = var4.getText(var2, var3 - var2);
  132.             StringSelection var6 = new StringSelection(var5);
  133.             var1.setContents(var6, defaultClipboardOwner);
  134.          }
  135.       } catch (BadLocationException var7) {
  136.       }
  137.  
  138.    }
  139.  
  140.    public void cut() {
  141.       if (this.isEditable() && ((Component)this).isEnabled()) {
  142.          try {
  143.             Clipboard var1 = Toolkit.getDefaultToolkit().getSystemClipboard();
  144.             int var2 = Math.min(this.caret.getDot(), this.caret.getMark());
  145.             int var3 = Math.max(this.caret.getDot(), this.caret.getMark());
  146.             if (var2 != var3) {
  147.                Document var4 = this.getDocument();
  148.                String var5 = var4.getText(var2, var3 - var2);
  149.                StringSelection var6 = new StringSelection(var5);
  150.                var1.setContents(var6, defaultClipboardOwner);
  151.                var4.remove(var2, var3 - var2);
  152.             }
  153.          } catch (BadLocationException var7) {
  154.          }
  155.       } else {
  156.          ((Component)this).getToolkit().beep();
  157.       }
  158.  
  159.    }
  160.  
  161.    protected void fireCaretUpdate(CaretEvent var1) {
  162.       Object[] var2 = super.listenerList.getListenerList();
  163.  
  164.       for(int var3 = var2.length - 2; var3 >= 0; var3 -= 2) {
  165.          if (var2[var3] == (class$javax$swing$event$CaretListener != null ? class$javax$swing$event$CaretListener : (class$javax$swing$event$CaretListener = class$("javax.swing.event.CaretListener")))) {
  166.             ((CaretListener)var2[var3 + 1]).caretUpdate(var1);
  167.          }
  168.       }
  169.  
  170.    }
  171.  
  172.    public AccessibleContext getAccessibleContext() {
  173.       if (super.accessibleContext == null) {
  174.          super.accessibleContext = new AccessibleJTextComponent(this);
  175.       }
  176.  
  177.       return super.accessibleContext;
  178.    }
  179.  
  180.    public Action[] getActions() {
  181.       return this.getUI().getEditorKit(this).getActions();
  182.    }
  183.  
  184.    public Caret getCaret() {
  185.       return this.caret;
  186.    }
  187.  
  188.    public Color getCaretColor() {
  189.       return this.caretColor;
  190.    }
  191.  
  192.    public int getCaretPosition() {
  193.       return this.caret.getDot();
  194.    }
  195.  
  196.    public Color getDisabledTextColor() {
  197.       return this.disabledTextColor;
  198.    }
  199.  
  200.    public Document getDocument() {
  201.       return this.model;
  202.    }
  203.  
  204.    public char getFocusAccelerator() {
  205.       return this.focusAccelerator;
  206.    }
  207.  
  208.    static final JTextComponent getFocusedComponent() {
  209.       return focusedComponent;
  210.    }
  211.  
  212.    public Highlighter getHighlighter() {
  213.       return this.highlighter;
  214.    }
  215.  
  216.    public Keymap getKeymap() {
  217.       return this.keymap;
  218.    }
  219.  
  220.    public static Keymap getKeymap(String var0) {
  221.       return (Keymap)keymapTable.get(var0);
  222.    }
  223.  
  224.    public Insets getMargin() {
  225.       return this.margin;
  226.    }
  227.  
  228.    public Dimension getPreferredScrollableViewportSize() {
  229.       return ((JComponent)this).getPreferredSize();
  230.    }
  231.  
  232.    public int getScrollableBlockIncrement(Rectangle var1, int var2, int var3) {
  233.       switch (var2) {
  234.          case 0:
  235.             return var1.width;
  236.          case 1:
  237.             return var1.height;
  238.          default:
  239.             throw new IllegalArgumentException("Invalid orientation: " + var2);
  240.       }
  241.    }
  242.  
  243.    public boolean getScrollableTracksViewportHeight() {
  244.       if (((Component)this).getParent() instanceof JViewport) {
  245.          return ((JViewport)((Component)this).getParent()).getHeight() > ((JComponent)this).getPreferredSize().height;
  246.       } else {
  247.          return false;
  248.       }
  249.    }
  250.  
  251.    public boolean getScrollableTracksViewportWidth() {
  252.       if (((Component)this).getParent() instanceof JViewport) {
  253.          return ((JViewport)((Component)this).getParent()).getWidth() > ((JComponent)this).getPreferredSize().width;
  254.       } else {
  255.          return false;
  256.       }
  257.    }
  258.  
  259.    public int getScrollableUnitIncrement(Rectangle var1, int var2, int var3) {
  260.       switch (var2) {
  261.          case 0:
  262.             return var1.width / 10;
  263.          case 1:
  264.             return var1.height / 10;
  265.          default:
  266.             throw new IllegalArgumentException("Invalid orientation: " + var2);
  267.       }
  268.    }
  269.  
  270.    public String getSelectedText() {
  271.       String var1 = null;
  272.       int var2 = Math.min(this.caret.getDot(), this.caret.getMark());
  273.       int var3 = Math.max(this.caret.getDot(), this.caret.getMark());
  274.       if (var2 != var3) {
  275.          try {
  276.             Document var4 = this.getDocument();
  277.             var1 = var4.getText(var2, var3 - var2);
  278.          } catch (BadLocationException var5) {
  279.             throw new IllegalArgumentException(((Throwable)var5).getMessage());
  280.          }
  281.       }
  282.  
  283.       return var1;
  284.    }
  285.  
  286.    public Color getSelectedTextColor() {
  287.       return this.selectedTextColor;
  288.    }
  289.  
  290.    public Color getSelectionColor() {
  291.       return this.selectionColor;
  292.    }
  293.  
  294.    public int getSelectionEnd() {
  295.       int var1 = Math.max(this.caret.getDot(), this.caret.getMark());
  296.       return var1;
  297.    }
  298.  
  299.    int getSelectionEnd(Position.Bias[] var1) {
  300.       DefaultCaret var2 = (DefaultCaret)this.caret;
  301.       if (var2.getDot() > var2.getMark()) {
  302.          var1[0] = var2.getDotBias();
  303.          return var2.getDot();
  304.       } else {
  305.          var1[0] = var2.getMarkBias();
  306.          return var2.getMark();
  307.       }
  308.    }
  309.  
  310.    public int getSelectionStart() {
  311.       int var1 = Math.min(this.caret.getDot(), this.caret.getMark());
  312.       return var1;
  313.    }
  314.  
  315.    int getSelectionStart(Position.Bias[] var1) {
  316.       DefaultCaret var2 = (DefaultCaret)this.caret;
  317.       if (var2.getDot() < var2.getMark()) {
  318.          var1[0] = var2.getDotBias();
  319.          return var2.getDot();
  320.       } else {
  321.          var1[0] = var2.getMarkBias();
  322.          return var2.getMark();
  323.       }
  324.    }
  325.  
  326.    public String getText() {
  327.       Document var1 = this.getDocument();
  328.  
  329.       String var2;
  330.       try {
  331.          var2 = var1.getText(0, var1.getLength());
  332.       } catch (BadLocationException var3) {
  333.          var2 = null;
  334.       }
  335.  
  336.       return var2;
  337.    }
  338.  
  339.    public String getText(int var1, int var2) throws BadLocationException {
  340.       return this.getDocument().getText(var1, var2);
  341.    }
  342.  
  343.    public TextUI getUI() {
  344.       return (TextUI)super.ui;
  345.    }
  346.  
  347.    public boolean isEditable() {
  348.       return this.editable;
  349.    }
  350.  
  351.    public boolean isFocusTraversable() {
  352.       return ((Component)this).isEnabled();
  353.    }
  354.  
  355.    public boolean isOpaque() {
  356.       return this.opaque;
  357.    }
  358.  
  359.    public static void loadKeymap(Keymap var0, KeyBinding[] var1, Action[] var2) {
  360.       Hashtable var3 = new Hashtable();
  361.  
  362.       for(int var4 = 0; var4 < var2.length; ++var4) {
  363.          Action var5 = var2[var4];
  364.          String var6 = (String)var5.getValue("Name");
  365.          var3.put(var6 != null ? var6 : "", var5);
  366.       }
  367.  
  368.       for(int var7 = 0; var7 < var1.length; ++var7) {
  369.          Action var8 = (Action)var3.get(var1[var7].actionName);
  370.          if (var8 != null) {
  371.             var0.addActionForKeyStroke(var1[var7].key, var8);
  372.          }
  373.       }
  374.  
  375.    }
  376.  
  377.    private final boolean mapEventToAction(KeyEvent var1) {
  378.       Keymap var2 = this.getKeymap();
  379.       if (var2 != null) {
  380.          KeyStroke var3 = KeyStroke.getKeyStrokeForEvent(var1);
  381.          Action var4 = var2.getAction(var3);
  382.          if (var4 != null) {
  383.             String var5 = null;
  384.             if (var1.getKeyChar() != 0) {
  385.                var5 = String.valueOf(var1.getKeyChar());
  386.             }
  387.  
  388.             ActionEvent var6 = new ActionEvent(this, 1001, var5, ((InputEvent)var1).getModifiers());
  389.             var4.actionPerformed(var6);
  390.             ((InputEvent)var1).consume();
  391.             return true;
  392.          }
  393.       }
  394.  
  395.       return false;
  396.    }
  397.  
  398.    public Rectangle modelToView(int var1) throws BadLocationException {
  399.       return this.getUI().modelToView(this, var1);
  400.    }
  401.  
  402.    public void moveCaretPosition(int var1) {
  403.       this.caret.moveDot(var1);
  404.    }
  405.  
  406.    protected String paramString() {
  407.       String var1 = this.opaque ? "true" : "false";
  408.       String var2 = this.editable ? "true" : "false";
  409.       String var3 = this.caretColor != null ? this.caretColor.toString() : "";
  410.       String var4 = this.selectionColor != null ? this.selectionColor.toString() : "";
  411.       String var5 = this.selectedTextColor != null ? this.selectedTextColor.toString() : "";
  412.       String var6 = this.disabledTextColor != null ? this.disabledTextColor.toString() : "";
  413.       String var7 = this.margin != null ? this.margin.toString() : "";
  414.       return super.paramString() + ",caretColor=" + var3 + ",disabledTextColor=" + var6 + ",editable=" + var2 + ",margin=" + var7 + ",opaque=" + var1 + ",selectedTextColor=" + var5 + ",selectionColor=" + var4;
  415.    }
  416.  
  417.    public void paste() {
  418.       Clipboard var1 = Toolkit.getDefaultToolkit().getSystemClipboard();
  419.       Transferable var2 = var1.getContents(this);
  420.       if (var2 != null) {
  421.          try {
  422.             String var3 = (String)var2.getTransferData(DataFlavor.stringFlavor);
  423.             this.replaceSelection(var3);
  424.          } catch (Exception var4) {
  425.             ((Component)this).getToolkit().beep();
  426.          }
  427.       }
  428.  
  429.    }
  430.  
  431.    protected void processComponentKeyEvent(KeyEvent var1) {
  432.       int var2 = ((AWTEvent)var1).getID();
  433.       switch (var2) {
  434.          case 400:
  435.             if (!this.mapEventToAction(var1)) {
  436.                Keymap var3 = this.getKeymap();
  437.                if (var3 != null) {
  438.                   Action var4 = var3.getDefaultAction();
  439.                   if (var4 != null) {
  440.                      ActionEvent var5 = new ActionEvent(this, 1001, String.valueOf(var1.getKeyChar()), ((InputEvent)var1).getModifiers());
  441.                      var4.actionPerformed(var5);
  442.                      ((InputEvent)var1).consume();
  443.                   }
  444.                }
  445.             }
  446.             break;
  447.          case 401:
  448.             this.mapEventToAction(var1);
  449.             break;
  450.          case 402:
  451.             this.mapEventToAction(var1);
  452.       }
  453.  
  454.    }
  455.  
  456.    public void read(Reader var1, Object var2) throws IOException {
  457.       EditorKit var3 = this.getUI().getEditorKit(this);
  458.       Document var4 = var3.createDefaultDocument();
  459.       if (var2 != null) {
  460.          var4.putProperty("stream", var2);
  461.       }
  462.  
  463.       try {
  464.          var3.read(var1, var4, 0);
  465.          this.setDocument(var4);
  466.       } catch (BadLocationException var6) {
  467.          throw new IOException(((Throwable)var6).getMessage());
  468.       }
  469.    }
  470.  
  471.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  472.       var1.defaultReadObject();
  473.       this.caretEvent = new MutableCaretEvent(this);
  474.       ((Component)this).addMouseListener(this.caretEvent);
  475.       ((Component)this).addFocusListener(this.caretEvent);
  476.    }
  477.  
  478.    public void removeCaretListener(CaretListener var1) {
  479.       super.listenerList.remove(class$javax$swing$event$CaretListener != null ? class$javax$swing$event$CaretListener : (class$javax$swing$event$CaretListener = class$("javax.swing.event.CaretListener")), var1);
  480.    }
  481.  
  482.    public static Keymap removeKeymap(String var0) {
  483.       return (Keymap)keymapTable.remove(var0);
  484.    }
  485.  
  486.    public void removeNotify() {
  487.       super.removeNotify();
  488.       if (focusedComponent == this) {
  489.          focusedComponent = null;
  490.       }
  491.  
  492.    }
  493.  
  494.    public void replaceSelection(String var1) {
  495.       if (this.isEditable() && ((Component)this).isEnabled()) {
  496.          Document var2 = this.getDocument();
  497.          if (var2 != null) {
  498.             try {
  499.                int var3 = Math.min(this.caret.getDot(), this.caret.getMark());
  500.                int var4 = Math.max(this.caret.getDot(), this.caret.getMark());
  501.                if (var3 != var4) {
  502.                   var2.remove(var3, var4 - var3);
  503.                }
  504.  
  505.                if (var1 != null && var1.length() > 0) {
  506.                   var2.insertString(var3, var1, (AttributeSet)null);
  507.                }
  508.             } catch (BadLocationException var5) {
  509.                ((Component)this).getToolkit().beep();
  510.             }
  511.          }
  512.  
  513.       } else {
  514.          ((Component)this).getToolkit().beep();
  515.       }
  516.    }
  517.  
  518.    public void select(int var1, int var2) {
  519.       if (var1 < 0) {
  520.          var1 = 0;
  521.       }
  522.  
  523.       if (var2 > this.getDocument().getLength()) {
  524.          var2 = this.getDocument().getLength();
  525.       }
  526.  
  527.       if (var2 < var1) {
  528.          var2 = var1;
  529.       }
  530.  
  531.       if (var1 > var2) {
  532.          var1 = var2;
  533.       }
  534.  
  535.       this.setCaretPosition(var1);
  536.       this.moveCaretPosition(var2);
  537.    }
  538.  
  539.    public void selectAll() {
  540.       Document var1 = this.getDocument();
  541.       if (var1 != null) {
  542.          this.setCaretPosition(0);
  543.          this.moveCaretPosition(var1.getLength());
  544.       }
  545.  
  546.    }
  547.  
  548.    public void setCaret(Caret var1) {
  549.       if (this.caret != null) {
  550.          this.caret.removeChangeListener(this.caretEvent);
  551.          this.caret.deinstall(this);
  552.       }
  553.  
  554.       Caret var2 = this.caret;
  555.       this.caret = var1;
  556.       if (this.caret != null) {
  557.          this.caret.install(this);
  558.          this.caret.addChangeListener(this.caretEvent);
  559.       }
  560.  
  561.       ((JComponent)this).firePropertyChange("caret", var2, this.caret);
  562.    }
  563.  
  564.    public void setCaretColor(Color var1) {
  565.       Color var2 = this.caretColor;
  566.       this.caretColor = var1;
  567.       ((JComponent)this).firePropertyChange("caretColor", var2, this.caretColor);
  568.    }
  569.  
  570.    public void setCaretPosition(int var1) {
  571.       Document var2 = this.getDocument();
  572.       if (var2 != null) {
  573.          if (var1 > var2.getLength() || var1 < 0) {
  574.             throw new IllegalArgumentException("bad position: " + var1);
  575.          }
  576.  
  577.          this.caret.setDot(var1);
  578.       }
  579.  
  580.    }
  581.  
  582.    public void setDisabledTextColor(Color var1) {
  583.       Color var2 = this.disabledTextColor;
  584.       this.disabledTextColor = var1;
  585.       ((JComponent)this).firePropertyChange("disabledTextColor", var2, this.disabledTextColor);
  586.    }
  587.  
  588.    public void setDocument(Document var1) {
  589.       if (super.accessibleContext != null) {
  590.          this.model.removeDocumentListener((AccessibleJTextComponent)super.accessibleContext);
  591.       }
  592.  
  593.       Document var2 = this.model;
  594.       this.model = var1;
  595.       ((JComponent)this).firePropertyChange("document", var2, var1);
  596.       ((JComponent)this).revalidate();
  597.       ((Component)this).repaint();
  598.       if (super.accessibleContext != null) {
  599.          this.model.addDocumentListener((AccessibleJTextComponent)super.accessibleContext);
  600.       }
  601.  
  602.    }
  603.  
  604.    public void setEditable(boolean var1) {
  605.       if (var1 != this.editable) {
  606.          boolean var2 = this.editable;
  607.          this.editable = var1;
  608.          ((JComponent)this).firePropertyChange("editable", new Boolean(var2), new Boolean(this.editable));
  609.          ((Component)this).repaint();
  610.       }
  611.  
  612.    }
  613.  
  614.    public void setEnabled(boolean var1) {
  615.       super.setEnabled(var1);
  616.       ((Component)this).repaint();
  617.    }
  618.  
  619.    public void setFocusAccelerator(char var1) {
  620.       var1 = Character.toUpperCase(var1);
  621.       KeyStroke[] var2 = ((JComponent)this).getRegisteredKeyStrokes();
  622.       int var3 = 0;
  623.  
  624.       for(int var4 = var2.length; var3 < var4; ++var3) {
  625.          if (((JComponent)this).getActionForKeyStroke(var2[var3]) == this.focusAction) {
  626.             if (var2[var3].getKeyChar() == var1) {
  627.                return;
  628.             }
  629.  
  630.             ((JComponent)this).unregisterKeyboardAction(var2[var3]);
  631.             break;
  632.          }
  633.       }
  634.  
  635.       if (var1 != 0) {
  636.          ((JComponent)this).registerKeyboardAction(this.focusAction, KeyStroke.getKeyStroke(var1, 8), 2);
  637.       }
  638.  
  639.       char var5 = this.focusAccelerator;
  640.       this.focusAccelerator = var1;
  641.       ((JComponent)this).firePropertyChange("focusAcceleratorKey", var5, this.focusAccelerator);
  642.    }
  643.  
  644.    public void setHighlighter(Highlighter var1) {
  645.       if (this.highlighter != null) {
  646.          this.highlighter.deinstall(this);
  647.       }
  648.  
  649.       Highlighter var2 = this.highlighter;
  650.       this.highlighter = var1;
  651.       if (this.highlighter != null) {
  652.          this.highlighter.install(this);
  653.       }
  654.  
  655.       ((JComponent)this).firePropertyChange("highlighter", var2, var1);
  656.    }
  657.  
  658.    public void setKeymap(Keymap var1) {
  659.       Keymap var2 = this.keymap;
  660.       this.keymap = var1;
  661.       ((JComponent)this).firePropertyChange("keymap", var2, this.keymap);
  662.    }
  663.  
  664.    public void setMargin(Insets var1) {
  665.       Insets var2 = this.margin;
  666.       this.margin = var1;
  667.       ((JComponent)this).firePropertyChange("margin", var2, var1);
  668.       ((Container)this).invalidate();
  669.    }
  670.  
  671.    public void setOpaque(boolean var1) {
  672.       this.opaque = var1;
  673.    }
  674.  
  675.    public void setSelectedTextColor(Color var1) {
  676.       Color var2 = this.selectedTextColor;
  677.       this.selectedTextColor = var1;
  678.       ((JComponent)this).firePropertyChange("selectedTextColor", var2, this.selectedTextColor);
  679.    }
  680.  
  681.    public void setSelectionColor(Color var1) {
  682.       Color var2 = this.selectionColor;
  683.       this.selectionColor = var1;
  684.       ((JComponent)this).firePropertyChange("selectionColor", var2, this.selectionColor);
  685.    }
  686.  
  687.    public void setSelectionEnd(int var1) {
  688.       this.select(this.getSelectionStart(), var1);
  689.    }
  690.  
  691.    public void setSelectionStart(int var1) {
  692.       this.select(var1, this.getSelectionEnd());
  693.    }
  694.  
  695.    public void setText(String var1) {
  696.       try {
  697.          Document var2 = this.getDocument();
  698.          var2.remove(0, var2.getLength());
  699.          var2.insertString(0, var1, (AttributeSet)null);
  700.       } catch (BadLocationException var3) {
  701.          ((Component)this).getToolkit().beep();
  702.       }
  703.  
  704.    }
  705.  
  706.    public void setUI(TextUI var1) {
  707.       super.setUI(var1);
  708.    }
  709.  
  710.    public void updateUI() {
  711.       this.setUI((TextUI)UIManager.getUI(this));
  712.       ((Container)this).invalidate();
  713.    }
  714.  
  715.    public int viewToModel(Point var1) {
  716.       return this.getUI().viewToModel(this, var1);
  717.    }
  718.  
  719.    public void write(Writer var1) throws IOException {
  720.       Document var2 = this.getDocument();
  721.  
  722.       try {
  723.          this.getUI().getEditorKit(this).write(var1, var2, 0, var2.getLength());
  724.       } catch (BadLocationException var4) {
  725.          throw new IOException(((Throwable)var4).getMessage());
  726.       }
  727.    }
  728. }
  729.