javax.swing.text

Class GlyphView

Implemented Interfaces:
Cloneable, SwingConstants, TabableView
Known Direct Subclasses:
LabelView

public class GlyphView
extends View
implements TabableView, Cloneable

Renders a run of styled text. This View subclass paints the characters of the Element it is responsible for using the style information from that Element.

Nested Class Summary

static class
GlyphView.GlyphPainter
An abstract base implementation for a glyph painter for GlyphView.

Field Summary

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

GlyphView(Element element)
Creates a new GlyphView for the given Element.

Method Summary

protected void
checkPainter()
Checks if a GlyphPainer is installed.
int
getBeginIndex()
Returns the starting offset in the document model of the portion of text that this view is responsible for.
int
getEndIndex()
Returns the end offset in the document model of the portion of text that this view is responsible for.
Font
getFont()
Returns the font for the text run for which this GlyphView is responsible.
Color
getForeground()
Returns the foreground color which should be used to paint the text.
GlyphView.GlyphPainter
getGlyphPainter()
Returns the GlyphPainter that is used by this GlyphView.
float
getPartialSpan(int p0, int p1)
Returns the span of a portion of the view.
float
getPreferredSpan(int axis)
Returns the preferred span of the content managed by this View along the specified axis.
TabExpander
getTabExpander()
Return the TabExpander to use.
float
getTabbedSpan(float x, TabExpander te)
Returns the preferred span of this view for tab expansion.
Segment
getText(int p0, int p1)
Returns the text segment that this view is responsible for.
Shape
modelToView(int pos, Shape a, Position.Bias b)
Maps a position in the document into the coordinate space of the View.
void
paint(Graphics g, Shape a)
Renders the Element that is associated with this View.
void
setGlyphPainter(GlyphView.GlyphPainter painter)
Sets the GlyphView.GlyphPainter to be used for this GlyphView.
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, forwardUpdate, forwardUpdateToView, getAlignment, getAttributes, getBreakWeight, getChildAllocation, getContainer, getDocument, getElement, getEndOffset, getGraphics, getMaximumSpan, getMinimumSpan, getParent, getPreferredSpan, getResizeWeight, getStartOffset, getToolTipText, getView, getViewCount, getViewFactory, getViewIndex, getViewIndex, insert, insertUpdate, isVisible, modelToView, modelToView, paint, preferenceChanged, remove, removeAll, removeUpdate, replace, setParent, setSize, updateChildren, updateLayout, viewToModel

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

GlyphView

public GlyphView(Element element)
Creates a new GlyphView for the given Element.

Parameters:
element - the element that is rendered by this GlyphView

Method Details

checkPainter

protected void checkPainter()
Checks if a GlyphPainer is installed. If this is not the case, a default painter is installed.


getBeginIndex

public int getBeginIndex()
Returns the starting offset in the document model of the portion of text that this view is responsible for.

Returns:
the starting offset in the document model of the portion of text that this view is responsible for


getEndIndex

public int getEndIndex()
Returns the end offset in the document model of the portion of text that this view is responsible for.

Returns:
the end offset in the document model of the portion of text that this view is responsible for


getFont

public Font getFont()
Returns the font for the text run for which this GlyphView is responsible.

Returns:
the font for the text run for which this GlyphView is responsible


getForeground

public Color getForeground()
Returns the foreground color which should be used to paint the text. This is fetched from the associated element's text attributes using StyleConstants.getForeground(AttributeSet).

Returns:
the foreground color which should be used to paint the text


getGlyphPainter

public GlyphView.GlyphPainter getGlyphPainter()
Returns the GlyphPainter that is used by this GlyphView. If no GlyphPainer has been installed null is returned.

Returns:
the glyph painter that is used by this glyph view or null if no glyph painter has been installed


getPartialSpan

public float getPartialSpan(int p0,
                            int p1)
Returns the span of a portion of the view. This is used in TAB expansion for fragments that don't contain TABs.
Specified by:
getPartialSpan in interface TabableView

Parameters:
p0 - the start index
p1 - the end index

Returns:
the span of the specified portion of the view


getPreferredSpan

public float getPreferredSpan(int axis)
Returns the preferred span of the content managed by this View along the specified axis.
Overrides:
getPreferredSpan in interface View

Parameters:
axis - the axis

Returns:
the preferred span of this View.


getTabExpander

public TabExpander getTabExpander()
Return the TabExpander to use.

Returns:
the TabExpander to use


getTabbedSpan

public float getTabbedSpan(float x,
                           TabExpander te)
Returns the preferred span of this view for tab expansion.
Specified by:
getTabbedSpan in interface TabableView

Parameters:
x - the location of the view
te - the tab expander to use

Returns:
the preferred span of this view for tab expansion


getText

public Segment getText(int p0,
                       int p1)
Returns the text segment that this view is responsible for.

Parameters:
p0 - the start index in the document model
p1 - the end index in the document model

Returns:
the text segment that this view is responsible for


modelToView

public Shape modelToView(int pos,
                         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. Position.Bias.Backward depending on the preferred direction bias. If null this defaults to Position.Bias.Forward
Overrides:
modelToView in interface View

Parameters:
pos - the position of the character in the model
a - the area that is occupied by the view
b - either Position.Bias.Forward or

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


paint

public void paint(Graphics g,
                  Shape a)
Renders the Element that is associated with this View.
Overrides:
paint in interface View

Parameters:
g - the Graphics context to render to
a - the allocated region for the Element


setGlyphPainter

public void setGlyphPainter(GlyphView.GlyphPainter painter)
Sets the GlyphView.GlyphPainter to be used for this GlyphView.

Parameters:
painter - the glyph painter to be used for this glyph view


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.

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


GlyphView.java -- A view to render styled text Copyright (C) 2005 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.