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).
public GlyphPainter()
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).
public abstract float getHeight(GlyphView v)
public abstract float getAscent(GlyphView v)
public abstract float getDescent(GlyphView v)
public abstract void paint(GlyphView v, Graphics g, Shape a, int p0, int p1)
Paint the glyphs representing the given range.
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.
v
- the GlyphView
containing the destination coordinate spacepos
- the position to convertbias
- either Position.Bias.Forward
or Position.Bias.Backward
a
- Bounds of the ViewBadLocationException
- if the given position does not represent a valid location in the associated documentView.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)
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.
v
- the GlyphView
to provide a mapping forx
- the X coordinatey
- the Y coordinatea
- the allocated region to render intobiasReturn
- either Position.Bias.Forward
or Position.Bias.Backward
is returned as the zero-th element of this arrayView.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
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.
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.x
- the graphic location along the axis that the broken view would occupy >= 0. This may be useful for things like tab calculations.len
- specifies the distance into the view where a potential break is desired >= 0.View.breakView(int, int, float, float)
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.
v
- the GlyphView
to provide a painter forp0
- the starting document offset >= 0p1
- the ending document offset >= p0public 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.
v
- the view to usepos
- the position to convert >= 0b
- either Position.Bias.Forward
or Position.Bias.Backward
a
- the allocated region to render intodirection
- 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.biasRet
- either Position.Bias.Forward
or Position.Bias.Backward
is returned as the zero-th element of this arrayBadLocationException
IllegalArgumentException
- for an invalid direction
© 1993–2017, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.