JavaTM 2 Platform
Std. Ed. v1.4.0

javax.swing.text
Class GlyphView.GlyphPainter

java.lang.Object
  |
  +--javax.swing.text.GlyphView.GlyphPainter
Enclosing class:
GlyphView

public abstract static class GlyphView.GlyphPainter
extends Object

A class to perform rendering of the glyphs. This can be implemented to be stateless, or to hold some information as a cache to facilitate faster rendering and model/view translation. At a minimum, the GlyphPainter allows a View implementation to perform its duties independant of a particular version of JVM and selection of capabilities (i.e. shaping for i18n, etc).

Since:
1.3

Constructor Summary
GlyphView.GlyphPainter()
           
 
Method Summary
abstract  float getAscent(GlyphView v)
           
abstract  int getBoundedPosition(GlyphView v, int p0, float x, float len)
          Determines the model location that represents the maximum advance that fits within the given span.
abstract  float getDescent(GlyphView v)
           
abstract  float getHeight(GlyphView v)
           
 int getNextVisualPositionFrom(GlyphView v, int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet)
          Provides a way to determine the next visually represented model location that one might place a caret.
 GlyphView.GlyphPainter getPainter(GlyphView v, int p0, int p1)
          Create a painter to use for the given GlyphView.
abstract  float getSpan(GlyphView v, int p0, int p1, TabExpander e, float x)
          Determine the span the glyphs given a start location (for tab expansion).
abstract  Shape modelToView(GlyphView v, int pos, Position.Bias bias, Shape a)
          Provides a mapping from the document model coordinate space to the coordinate space of the view mapped to it.
abstract  void paint(GlyphView v, Graphics g, Shape a, int p0, int p1)
          Paint the glyphs representing the given range.
abstract  int viewToModel(GlyphView v, float x, float y, Shape a, Position.Bias[] biasReturn)
          Provides a mapping from the view coordinate space to the logical coordinate space of the model.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GlyphView.GlyphPainter

public GlyphView.GlyphPainter()
Method Detail

getSpan

public abstract float getSpan(GlyphView v,
                              int p0,
                              int p1,
                              TabExpander e,
                              float x)
Determine the span the glyphs given a start location (for tab expansion).


getHeight

public abstract float getHeight(GlyphView v)

getAscent

public abstract float getAscent(GlyphView v)

getDescent

public abstract float getDescent(GlyphView v)

paint

public abstract void paint(GlyphView v,
                           Graphics g,
                           Shape a,
                           int p0,
                           int p1)
Paint the glyphs representing the given range.


modelToView

public abstract Shape modelToView(GlyphView v,
                                  int pos,
                                  Position.Bias bias,
                                  Shape a)
                           throws BadLocationException
Provides a mapping from the document model coordinate space to the coordinate space of the view mapped to it. This is shared by the broken views.

Parameters:
pos - the position to convert
a - the allocated region to render into
Returns:
the bounding box of the given position
Throws:
BadLocationException - if the given position does not represent a valid location in the associated document
See Also:
View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)

viewToModel

public abstract int viewToModel(GlyphView v,
                                float x,
                                float y,
                                Shape a,
                                Position.Bias[] biasReturn)
Provides a mapping from the view coordinate space to the logical coordinate space of the model.

Parameters:
x - the X coordinate
y - the Y coordinate
a - the allocated region to render into
Returns:
the location within the model that best represents the given point of view
See Also:
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

getBoundedPosition

public abstract int getBoundedPosition(GlyphView v,
                                       int p0,
                                       float x,
                                       float len)
Determines the model location that represents the maximum advance that fits within the given span. This could be used to break the given view. The result should be a location just shy of the given advance. This differs from viewToModel which returns the closest position which might be proud of the maximum advance.

Parameters:
v - the view to find the model location to break at.
p0 - the location in the model where the fragment should start it's representation >= 0.
len - specifies the distance into the view where a potential break is desired >= 0.
Returns:
the maximum model location possible for a break.
See Also:
View.breakView(int, int, float, float)

getPainter

public GlyphView.GlyphPainter getPainter(GlyphView v,
                                         int p0,
                                         int p1)
Create a painter to use for the given GlyphView. If the painter carries state it can create another painter to represent a new GlyphView that is being created. If the painter doesn't hold any significant state, it can return itself. The default behavior is to return itself.


getNextVisualPositionFrom

public int getNextVisualPositionFrom(GlyphView v,
                                     int pos,
                                     Position.Bias b,
                                     Shape a,
                                     int direction,
                                     Position.Bias[] biasRet)
                              throws BadLocationException
Provides a way to determine the next visually represented model location that one might place a caret. Some views may not be visible, they might not be in the same order found in the model, or they just might not allow access to some of the locations in the model.

Parameters:
v - the view to use
pos - the position to convert >= 0
a - the allocated region to render into
direction - the direction from the current position that can be thought of as the arrow keys typically found on a keyboard. This may be SwingConstants.WEST, SwingConstants.EAST, SwingConstants.NORTH, or SwingConstants.SOUTH.
Returns:
the location within the model that best represents the next location visual position.
Throws:
BadLocationException
IllegalArgumentException - for an invalid direction

JavaTM 2 Platform
Std. Ed. v1.4.0

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Java, Java 2D, and JDBC are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.