javax.swing.text
Class PlainView

java.lang.Object
  extended by javax.swing.text.View
      extended by javax.swing.text.PlainView
All Implemented Interfaces:
SwingConstants, TabExpander
Direct Known Subclasses:
FieldView

public class PlainView
extends View
implements TabExpander


Field Summary
protected  FontMetrics metrics
           
 
Fields inherited from class javax.swing.text.View
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Constructor Summary
PlainView(Element elem)
           
 
Method Summary
 void changedUpdate(DocumentEvent changes, Shape a, ViewFactory f)
          This method is called when attributes were changed in the Document in a location that this view is responsible for.
protected  void damageLineRange(int line0, int line1, Shape a, Component host)
          Repaint the given line range.
protected  void drawLine(int lineIndex, Graphics g, int x, int y)
          Draws a line of text.
protected  int drawSelectedText(Graphics g, int x, int y, int p0, int p1)
           
protected  int drawUnselectedText(Graphics g, int x, int y, int p0, int p1)
          Draws a chunk of unselected text.
protected  Segment getLineBuffer()
          Provides a Segment object, that can be used to fetch text from the document.
 float getPreferredSpan(int axis)
          Returns the preferred span along the specified axis.
protected  int getTabSize()
          Returns the tab size of a tab.
 void insertUpdate(DocumentEvent changes, Shape a, ViewFactory f)
          This method is called when something is inserted into the Document that this View is displaying.
protected  Rectangle lineToRect(Shape a, int line)
           
 Shape modelToView(int position, Shape a, Position.Bias b)
          Maps a position in the document into the coordinate space of the View.
 float nextTabStop(float x, int tabStop)
          Returns the next tab stop position after a given reference position.
 void paint(Graphics g, Shape s)
           
 void removeUpdate(DocumentEvent changes, Shape a, ViewFactory f)
          This method is called when something is removed from the Document that this View is displaying.
protected  void updateDamage(DocumentEvent changes, Shape a, ViewFactory f)
          Since insertUpdate and removeUpdate each deal with children Elements being both added and removed, they both have to perform the same checks.
protected  void updateMetrics()
           
 int viewToModel(float x, float y, Shape a, Position.Bias[] b)
          Maps coordinates from the View's space into a position in the document model.
 
Methods inherited from class javax.swing.text.View
append, breakView, createFragment, dump, forwardUpdate, forwardUpdateToView, getAlignment, getAttributes, getBreakWeight, getChildAllocation, getContainer, getDocument, getElement, getEndOffset, getGraphics, getMaximumSpan, getMinimumSpan, getNextVisualPositionFrom, getParent, getResizeWeight, getStartOffset, getToolTipText, getView, getViewCount, getViewFactory, getViewIndex, getViewIndex, insert, isVisible, modelToView, modelToView, preferenceChanged, remove, removeAll, replace, setParent, setSize, updateChildren, updateLayout, viewToModel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

metrics

protected FontMetrics metrics
Constructor Detail

PlainView

public PlainView(Element elem)
Method Detail

updateMetrics

protected void updateMetrics()
Since:
1.4

lineToRect

protected Rectangle lineToRect(Shape a,
                               int line)
Since:
1.4

modelToView

public Shape modelToView(int position,
                         Shape a,
                         Position.Bias b)
                  throws BadLocationException
Description copied from class: View
Maps a position in the document into the coordinate space of the View. The output rectangle usually reflects the font height but has a width of zero.

Specified by:
modelToView in class View
Parameters:
position - the position of the character in the model
a - the area that is occupied by the view
b - either Position.Bias.Forward or Position.Bias.Backward depending on the preferred direction bias. If null this defaults to Position.Bias.Forward
Returns:
a rectangle that gives the location of the document position inside the view coordinate space
Throws:
BadLocationException - if pos is invalid

drawLine

protected void drawLine(int lineIndex,
                        Graphics g,
                        int x,
                        int y)
Draws a line of text. The X and Y coordinates specify the start of the baseline of the line.

Parameters:
lineIndex - the index of the line
g - the graphics to use for drawing the text
x - the X coordinate of the baseline
y - the Y coordinate of the baseline

drawSelectedText

protected int drawSelectedText(Graphics g,
                               int x,
                               int y,
                               int p0,
                               int p1)
                        throws BadLocationException
Throws:
BadLocationException

drawUnselectedText

protected int drawUnselectedText(Graphics g,
                                 int x,
                                 int y,
                                 int p0,
                                 int p1)
                          throws BadLocationException
Draws a chunk of unselected text.

Parameters:
g - the graphics to use for drawing the text
x - the X coordinate of the baseline
y - the Y coordinate of the baseline
p0 - the start position in the text model
p1 - the end position in the text model
Returns:
the X location of the end of the range
Throws:
BadLocationException - if p0 or p1 are invalid

paint

public void paint(Graphics g,
                  Shape s)
Specified by:
paint in class View

getTabSize

protected int getTabSize()
Returns the tab size of a tab. Checks the Document's properties for PlainDocument.tabSizeAttribute and returns it if it is defined, otherwise returns 8.

Returns:
the tab size.

nextTabStop

public float nextTabStop(float x,
                         int tabStop)
Returns the next tab stop position after a given reference position. This implementation ignores the tabStop argument.

Specified by:
nextTabStop in interface TabExpander
Parameters:
x - the current x position in pixels
tabStop - the position within the text stream that the tab occured at

getPreferredSpan

public float getPreferredSpan(int axis)
Description copied from class: View
Returns the preferred span along the specified axis. Normally the view is rendered with the span returned here if that is possible.

Specified by:
getPreferredSpan in class View
Parameters:
axis - the axis
Returns:
the preferred span along the specified axis

viewToModel

public int viewToModel(float x,
                       float y,
                       Shape a,
                       Position.Bias[] b)
Maps coordinates from the View's space into a position in the document model.

Specified by:
viewToModel in class View
Parameters:
x - the x coordinate in the view space
y - the y coordinate in the view space
a - the allocation of this View
b - the bias to use
Returns:
the position in the document that corresponds to the screen coordinates x, y

updateDamage

protected void updateDamage(DocumentEvent changes,
                            Shape a,
                            ViewFactory f)
Since insertUpdate and removeUpdate each deal with children Elements being both added and removed, they both have to perform the same checks. So they both simply call this method.

Parameters:
changes - the DocumentEvent for the changes to the Document.
a - the allocation of the View.
f - the ViewFactory to use for rebuilding.

insertUpdate

public void insertUpdate(DocumentEvent changes,
                         Shape a,
                         ViewFactory f)
This method is called when something is inserted into the Document that this View is displaying.

Overrides:
insertUpdate in class View
Parameters:
changes - the DocumentEvent for the changes.
a - the allocation of the View
f - the ViewFactory used to rebuild

removeUpdate

public void removeUpdate(DocumentEvent changes,
                         Shape a,
                         ViewFactory f)
This method is called when something is removed from the Document that this View is displaying.

Overrides:
removeUpdate in class View
Parameters:
changes - the DocumentEvent for the changes.
a - the allocation of the View
f - the ViewFactory used to rebuild

changedUpdate

public void changedUpdate(DocumentEvent changes,
                          Shape a,
                          ViewFactory f)
This method is called when attributes were changed in the Document in a location that this view is responsible for.

Overrides:
changedUpdate in class View
Parameters:
changes - the DocumentEvent that describes the change
a - the shape of the view
f - the ViewFactory for creating child views

damageLineRange

protected void damageLineRange(int line0,
                               int line1,
                               Shape a,
                               Component host)
Repaint the given line range. This is called from insertUpdate, changedUpdate, and removeUpdate when no new lines were added and no lines were removed, to repaint the line that was modified.

Parameters:
line0 - the start of the range
line1 - the end of the range
a - the rendering region of the host
host - the Component that uses this View (used to call repaint on that Component)
Since:
1.4

getLineBuffer

protected final Segment getLineBuffer()
Provides a Segment object, that can be used to fetch text from the document.