/[classpath]/classpath/javax/swing/text/JTextComponent.java
ViewVC logotype

Diff of /classpath/javax/swing/text/JTextComponent.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.43 by rabbit78, Wed Oct 19 14:57:31 2005 UTC revision 1.44 by rabbit78, Thu Nov 3 11:19:29 2005 UTC
# Line 50  import java.awt.datatransfer.StringSelec Line 50  import java.awt.datatransfer.StringSelec
50  import java.awt.datatransfer.Transferable;  import java.awt.datatransfer.Transferable;
51  import java.awt.datatransfer.UnsupportedFlavorException;  import java.awt.datatransfer.UnsupportedFlavorException;
52  import java.awt.event.ActionEvent;  import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;  
53  import java.awt.event.InputMethodListener;  import java.awt.event.InputMethodListener;
54  import java.awt.event.KeyEvent;  import java.awt.event.KeyEvent;
55  import java.awt.event.MouseEvent;  import java.awt.event.MouseEvent;
# Line 73  import javax.swing.JViewport; Line 72  import javax.swing.JViewport;
72  import javax.swing.KeyStroke;  import javax.swing.KeyStroke;
73  import javax.swing.Scrollable;  import javax.swing.Scrollable;
74  import javax.swing.SwingConstants;  import javax.swing.SwingConstants;
 import javax.swing.Timer;  
75  import javax.swing.TransferHandler;  import javax.swing.TransferHandler;
76  import javax.swing.UIManager;  import javax.swing.UIManager;
77  import javax.swing.event.CaretEvent;  import javax.swing.event.CaretEvent;
# Line 304  public abstract class JTextComponent ext Line 302  public abstract class JTextComponent ext
302    }    }
303    
304    /**    /**
    * The timer that lets the caret blink.  
    */  
   private class CaretBlinkTimer extends Timer implements ActionListener  
   {  
     /**  
      * Creates a new CaretBlinkTimer object with a default delay of 1 second.  
      */  
     public CaretBlinkTimer()  
     {  
       super(1000, null);  
       addActionListener(this);  
     }  
   
     /**  
      * Lets the caret blink.  
      */  
     public void actionPerformed(ActionEvent ev)  
     {  
       Caret c = caret;  
       if (c != null)  
         c.setVisible(!c.isVisible());  
     }  
   
     /**  
      * Updates the blink delay according to the current caret.  
      */  
     public void update()  
     {  
       stop();  
       Caret c = caret;  
       if (c != null)  
         {  
           setDelay(c.getBlinkRate());  
           if (editable)  
             start();  
           else  
             c.setVisible(false);  
         }  
     }  
   }  
   
   /**  
305     * According to <a     * According to <a
306     * href="http://java.sun.com/products/jfc/tsc/special_report/kestrel/keybindings.html">this     * href="http://java.sun.com/products/jfc/tsc/special_report/kestrel/keybindings.html">this
307     * report</a>, a pair of private classes wraps a {@link     * report</a>, a pair of private classes wraps a {@link
# Line 701  public abstract class JTextComponent ext Line 657  public abstract class JTextComponent ext
657    private char focusAccelerator = '\0';    private char focusAccelerator = '\0';
658    private NavigationFilter navigationFilter;    private NavigationFilter navigationFilter;
659    
   private CaretBlinkTimer caretBlinkTimer;  
   
660    /**    /**
661     * Get a Keymap from the global keymap table, by name.     * Get a Keymap from the global keymap table, by name.
662     *     *
# Line 960  public abstract class JTextComponent ext Line 914  public abstract class JTextComponent ext
914          creatingKeymap = true;          creatingKeymap = true;
915        }        }
916    
     caretBlinkTimer = new CaretBlinkTimer();  
   
917      setFocusable(true);      setFocusable(true);
918      setEditable(true);      setEditable(true);
919      enableEvents(AWTEvent.KEY_EVENT_MASK);      enableEvents(AWTEvent.KEY_EVENT_MASK);
# Line 1200  public abstract class JTextComponent ext Line 1152  public abstract class JTextComponent ext
1152      if (editable == newValue)      if (editable == newValue)
1153        return;        return;
1154    
     if (newValue == true)  
       caretBlinkTimer.start();  
     else  
       {  
         caretBlinkTimer.stop();  
         caret.setVisible(false);  
       }  
   
1155      boolean oldValue = editable;      boolean oldValue = editable;
1156      editable = newValue;      editable = newValue;
1157      firePropertyChange("editable", oldValue, newValue);      firePropertyChange("editable", oldValue, newValue);
# Line 1236  public abstract class JTextComponent ext Line 1180  public abstract class JTextComponent ext
1180      Caret oldCaret = caret;      Caret oldCaret = caret;
1181      caret = newCaret;      caret = newCaret;
1182    
     caretBlinkTimer.update();  
   
1183      if (caret != null)      if (caret != null)
1184        caret.install(this);        caret.install(this);
1185            

Legend:
Removed from v.1.43  
changed lines
  Added in v.1.44

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26