javax.swing.text

Class PlainView

Implemented Interfaces:
SwingConstants, TabExpander
Known Direct 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)
Creates a new View instance.

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, changedUpdate, createFragment, dump, forwardUpdate, forwardUpdateToView, getAlignment, getAttributes, getBreakWeight, getChildAllocation, getContainer, getDocument, getElement, getEndOffset, getGraphics, getMaximumSpan, getMinimumSpan, getNextVisualPositionFrom, getParent, getPreferredSpan, getResizeWeight, getStartOffset, getToolTipText, getView, getViewCount, getViewFactory, getViewIndex, getViewIndex, insert, insertUpdate, isVisible, modelToView, modelToView, modelToView, paint, preferenceChanged, remove, removeAll, removeUpdate, replace, setParent, setSize, updateChildren, updateLayout, viewToModel, viewToModel

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

metrics

protected FontMetrics metrics

Constructor Details

PlainView

public PlainView(Element elem)
Creates a new View instance.
Parameters:
elem - an Element value

Method Details

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 interface View

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

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

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

getLineBuffer

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

getPreferredSpan

public float getPreferredSpan(int axis)
Returns the preferred span along the specified axis. Normally the view is rendered with the span returned here if that is possible.
Overrides:
getPreferredSpan in interface View
Parameters:
axis - the axis
Returns:
the preferred span along the specified axis

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.

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 interface View
Parameters:
changes - the DocumentEvent for the changes.
a - the allocation of the View
f - the ViewFactory used to rebuild

lineToRect

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

modelToView

public Shape modelToView(int position,
                         Shape a,
                         Position.Bias b)
            throws BadLocationException
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.
Overrides:
modelToView in interface View
Parameters:
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
IllegalArgumentException - if b is not one of the above listed valid values

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

paint

public void paint(Graphics g,
                  Shape s)
Overrides:
paint in interface View

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 interface View
Parameters:
changes - the DocumentEvent for the changes.
a - the allocation of the View
f - the ViewFactory used to rebuild

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.

updateMetrics

protected void updateMetrics()
Since:
1.4

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.
Overrides:
viewToModel in interface 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

PlainView.java -- Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.