Java Platform 1.2
Beta 4

Class com.sun.java.swing.text.DefaultCaret

java.lang.Object
  |
  +--com.sun.java.swing.text.DefaultCaret

public class DefaultCaret
extends Object
implements Caret, FocusListener, MouseListener, MouseMotionListener
An implementation of Caret for a view that maps over the entire portion of the model represented (i.e. there are no holes in the area represented) and renders the insert position as a vertical line. The foreground color of the component is the color of the caret and the background color of the component is the color of the selections made by moving the caret. The Highlighter implementation of the associated UI is used to actually render the selection.

Warning: serialized objects of this class will not be compatible with future swing releases. The current serialization support is appropriate for short term storage or RMI between Swing1.0 applications. It will not be possible to load serialized Swing1.0 objects with future releases of Swing. The JDK1.2 release of Swing will be the compatibility baseline for the serialized form of Swing objects.

See Also:
Caret

Field Summary
protected  ChangeEvent changeEvent
          The change event for the model.
protected  EventListenerList listenerList
          The event listener list.
 
Constructor Summary
DefaultCaret()
          Constructs a default caret.
 
Method Summary
 void addChangeListener(ChangeListener l)
          Adds a listener to track whenever the caret position has been changed.
protected  void adjustVisibility(Rectangle nloc)
          Scrolls the associated view (if necessary) to make the caret visible.
protected  void damage(Rectangle r)
          Damages the area surrounding the caret to cause it to be repainted.
 void deinstall(JTextComponent c)
          Called when the UI is being removed from the interface of a JTextComponent.
protected  void fireStateChanged()
          Notifies all listeners that have registered interest for notification on this event type.
 void focusGained(FocusEvent e)
          Called when the component containing the caret gains focus.
 void focusLost(FocusEvent e)
          Called when the component containing the caret loses focus.
 int getBlinkRate()
          Gets the caret blink rate.
protected  JTextComponent getComponent()
          Gets the editor component that this caret is for.
 int getDot()
          Fetches the current position of the caret.
 Point getMagicCaretPosition()
          Gets the saved caret position.
 int getMark()
          Fetches the current position of the mark.
protected  Highlighter.HighlightPainter getSelectionPainter()
          Gets the painter for the Highlighter.
 void install(JTextComponent c)
          Called when the UI is being installed into the interface of a JTextComponent.
 boolean isSelectionVisible()
          Checks whether the current selection is visible.
 boolean isVisible()
          Determines if the caret is currently visible.
 void mouseClicked(MouseEvent e)
          Called when the mouse is clicked.
 void mouseDragged(MouseEvent e)
          Moves the caret position according to the mouse pointer's current location.
 void mouseEntered(MouseEvent e)
          Called when the mouse enters a region.
 void mouseExited(MouseEvent e)
          Called when the mouse exits a region.
 void mouseMoved(MouseEvent e)
          Called when the mouse is moved.
 void mousePressed(MouseEvent e)
          Requests focus on the associated text component, and tries to set the cursor position.
 void mouseReleased(MouseEvent e)
          Called when the mouse is released.
protected  void moveCaret(MouseEvent e)
          Tries to move the position of the caret from the coordinates of a mouse event, using viewToModel().
 void moveDot(int dot)
          Moves the caret position to some other position.
 void paint(Graphics g)
          Renders the caret as a vertical line.
protected  void positionCaret(MouseEvent e)
          Tries to set the position of the caret from the coordinates of a mouse event, using viewToModel().
 void removeChangeListener(ChangeListener l)
          Removes a listener that was tracking caret position changes.
 void setBlinkRate(int rate)
          Sets the caret blink rate.
 void setDot(int dot)
          Sets the caret position and mark to some position.
 void setMagicCaretPosition(Point p)
          Saves the current caret position.
 void setSelectionVisible(boolean vis)
          Changes the selection visibility.
 void setVisible(boolean e)
          Sets the caret visibility, and repaints the caret.
 
Methods inherited from class java.lang.Object
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

Field Detail

listenerList

protected EventListenerList listenerList
The event listener list.

changeEvent

protected transient ChangeEvent changeEvent
The change event for the model. Only one ChangeEvent is needed per model instance since the event's only (read-only) state is the source property. The source of events generated here is always "this".
Constructor Detail

DefaultCaret

public DefaultCaret()
Constructs a default caret.
Method Detail

getComponent

protected final JTextComponent getComponent()
Gets the editor component that this caret is for.
Returns:
the component

damage

protected void damage(Rectangle r)
Damages the area surrounding the caret to cause it to be repainted. If paint() is reimplemented, this method should also be reimplemented.
Parameters:
r - the current location of the caret
See Also:
paint(java.awt.Graphics)

adjustVisibility

protected void adjustVisibility(Rectangle nloc)
Scrolls the associated view (if necessary) to make the caret visible. Since how this should be done is somewhat of a policy, this method can be reimplemented to change the behavior. By default the scrollRectToVisible method is called on the associated component.
Parameters:
nloc - the new position to scroll to

getSelectionPainter

protected Highlighter.HighlightPainter getSelectionPainter()
Gets the painter for the Highlighter.
Returns:
the painter

positionCaret

protected void positionCaret(MouseEvent e)
Tries to set the position of the caret from the coordinates of a mouse event, using viewToModel().
Parameters:
e - the mouse event

moveCaret

protected void moveCaret(MouseEvent e)
Tries to move the position of the caret from the coordinates of a mouse event, using viewToModel(). This will cause a selection if the dot and mark are different.
Parameters:
e - the mouse event

focusGained

public void focusGained(FocusEvent e)
Called when the component containing the caret gains focus. This is implemented to set the caret to visible if the component is editable, and sets the selection to visible.
Specified by:
focusGained in interface FocusListener
Parameters:
e - the focus event
See Also:
FocusListener.focusGained(java.awt.event.FocusEvent)

focusLost

public void focusLost(FocusEvent e)
Called when the component containing the caret loses focus. This is implemented to set the caret to visibility to false, and to set the selection visibility to false.
Specified by:
focusLost in interface FocusListener
Parameters:
e - the focus event
See Also:
FocusListener.focusLost(java.awt.event.FocusEvent)

mouseClicked

public void mouseClicked(MouseEvent e)
Called when the mouse is clicked. A double click selects a word, and a triple click the current line.
Specified by:
mouseClicked in interface MouseListener
Parameters:
e - the mouse event
See Also:
MouseListener.mouseClicked(java.awt.event.MouseEvent)

mousePressed

public void mousePressed(MouseEvent e)
Requests focus on the associated text component, and tries to set the cursor position.
Specified by:
mousePressed in interface MouseListener
Parameters:
e - the mouse event
See Also:
MouseListener.mousePressed(java.awt.event.MouseEvent)

mouseReleased

public void mouseReleased(MouseEvent e)
Called when the mouse is released.
Specified by:
mouseReleased in interface MouseListener
Parameters:
e - the mouse event
See Also:
MouseListener.mouseReleased(java.awt.event.MouseEvent)

mouseEntered

public void mouseEntered(MouseEvent e)
Called when the mouse enters a region.
Specified by:
mouseEntered in interface MouseListener
Parameters:
e - the mouse event
See Also:
MouseListener.mouseEntered(java.awt.event.MouseEvent)

mouseExited

public void mouseExited(MouseEvent e)
Called when the mouse exits a region.
Specified by:
mouseExited in interface MouseListener
Parameters:
e - the mouse event
See Also:
MouseListener.mouseExited(java.awt.event.MouseEvent)

mouseDragged

public void mouseDragged(MouseEvent e)
Moves the caret position according to the mouse pointer's current location. This effectively extends the selection.
Specified by:
mouseDragged in interface MouseMotionListener
Parameters:
e - the mouse event
See Also:
MouseMotionListener.mouseDragged(java.awt.event.MouseEvent)

mouseMoved

public void mouseMoved(MouseEvent e)
Called when the mouse is moved.
Specified by:
mouseMoved in interface MouseMotionListener
Parameters:
e - the mouse event
See Also:
MouseMotionListener.mouseMoved(java.awt.event.MouseEvent)

paint

public void paint(Graphics g)
Renders the caret as a vertical line. If this is reimplemented the damage method should also be reimplemented as it assumes the shape of the caret is a vertical line. Sets the caret color to the value returned by getCaretColor().
Specified by:
paint in interface Caret
Parameters:
g - the graphics context
See Also:
damage(java.awt.Rectangle)

install

public void install(JTextComponent c)
Called when the UI is being installed into the interface of a JTextComponent. This can be used to gain access to the model that is being navigated by the implementation of this interface. Sets the dot and mark to 0, and establishes document, property change, focus, mouse, and mouse motion listeners.
Specified by:
install in interface Caret
Parameters:
c - the component
See Also:
Caret.install(com.sun.java.swing.text.JTextComponent)

deinstall

public void deinstall(JTextComponent c)
Called when the UI is being removed from the interface of a JTextComponent. This is used to unregister any listeners that were attached.
Specified by:
deinstall in interface Caret
Parameters:
c - the component
See Also:
Caret.deinstall(com.sun.java.swing.text.JTextComponent)

addChangeListener

public void addChangeListener(ChangeListener l)
Adds a listener to track whenever the caret position has been changed.
Specified by:
addChangeListener in interface Caret
Parameters:
l - the listener
See Also:
Caret.addChangeListener(com.sun.java.swing.event.ChangeListener)

removeChangeListener

public void removeChangeListener(ChangeListener l)
Removes a listener that was tracking caret position changes.
Specified by:
removeChangeListener in interface Caret
Parameters:
l - the listener
See Also:
Caret.removeChangeListener(com.sun.java.swing.event.ChangeListener)

fireStateChanged

protected void fireStateChanged()
Notifies all listeners that have registered interest for notification on this event type. The event instance is lazily created using the parameters passed into the fire method. The listener list is processed last to first.
See Also:
EventListenerList

setSelectionVisible

public void setSelectionVisible(boolean vis)
Changes the selection visibility.
Specified by:
setSelectionVisible in interface Caret
Parameters:
vis - the new visibility

isSelectionVisible

public boolean isSelectionVisible()
Checks whether the current selection is visible.
Specified by:
isSelectionVisible in interface Caret
Returns:
true if the selection is visible

isVisible

public boolean isVisible()
Determines if the caret is currently visible.
Specified by:
isVisible in interface Caret
Returns:
true if visible else false
See Also:
Caret.isVisible()

setVisible

public void setVisible(boolean e)
Sets the caret visibility, and repaints the caret.
Specified by:
setVisible in interface Caret
Parameters:
e - the visibility specifier
See Also:
Caret.setVisible(boolean)

setBlinkRate

public void setBlinkRate(int rate)
Sets the caret blink rate.
Specified by:
setBlinkRate in interface Caret
Parameters:
rate - the rate in milliseconds, 0 to stop blinking
See Also:
Caret.setBlinkRate(int)

getBlinkRate

public int getBlinkRate()
Gets the caret blink rate.
Specified by:
getBlinkRate in interface Caret
See Also:
Caret.getBlinkRate()

getDot

public int getDot()
Fetches the current position of the caret.
Specified by:
getDot in interface Caret
Returns:
the position >= 0
See Also:
Caret.getDot()

getMark

public int getMark()
Fetches the current position of the mark. If there is a selection, the dot and mark will not be the same.
Specified by:
getMark in interface Caret
Returns:
the position >= 0
See Also:
Caret.getMark()

setDot

public void setDot(int dot)
Sets the caret position and mark to some position. This implicitly sets the selection range to zero.
Specified by:
setDot in interface Caret
Parameters:
dot - the position >= 0
See Also:
Caret.setDot(int)

moveDot

public void moveDot(int dot)
Moves the caret position to some other position.
Specified by:
moveDot in interface Caret
Parameters:
dot - the position >= 0
See Also:
Caret.moveDot(int)

setMagicCaretPosition

public void setMagicCaretPosition(Point p)
Saves the current caret position. This is used when caret up/down actions occur, moving between lines that have uneven end positions.
Specified by:
setMagicCaretPosition in interface Caret
Parameters:
p - the position
See Also:
getMagicCaretPosition(), UpAction, DownAction

getMagicCaretPosition

public Point getMagicCaretPosition()
Gets the saved caret position.
Specified by:
getMagicCaretPosition in interface Caret
Returns:
the position see #setMagicCaretPosition

Java Platform 1.2
Beta 4

Submit a bug or feature
Submit comments/suggestions about new javadoc look
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.
This documentation was generated with a post-Beta4 version of Javadoc.