|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--javax.swing.text.View | +--javax.swing.text.PlainView
Safe: Implements View interface for a simple multi-line text view that has text in one font and color. The view represents each child element as a line of text.
View
Field Summary | |
(package private) Font |
font
Font used to calculate the longest line... |
(package private) Segment |
lineBuffer
|
(package private) Element |
longLine
The current longest line. |
protected FontMetrics |
metrics
Font metrics for the current font. |
(package private) int |
sel0
|
(package private) int |
sel1
|
(package private) Color |
selected
|
(package private) int |
tabBase
|
(package private) int |
tabSize
|
(package private) Color |
unselected
|
Fields inherited from class javax.swing.text.View |
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, sharedBiasReturn, 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)
Enabled: Constructs a new PlainView wrapped on an element. |
Method Summary | |
(package private) Shape |
adjustPaintRegion(Shape a)
Should return a shape ideal for painting based on the passed in Shape a . |
private void |
calculateLongestLine()
Iterate over the lines represented by the child elements of the element this view represents, looking for the line that is the longest. |
void |
changedUpdate(DocumentEvent changes,
Shape a,
ViewFactory f)
Suppressed: Gives notification from the document that attributes were changed 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. |
private int |
drawElement(Element elem,
Graphics g,
int x,
int y)
|
protected void |
drawLine(int lineIndex,
Graphics g,
int x,
int y)
Renders a line of text, suppressing whitespace at the end and expanding any tabs. |
protected int |
drawSelectedText(Graphics g,
int x,
int y,
int p0,
int p1)
Renders the given range in the model as selected text. |
protected int |
drawUnselectedText(Graphics g,
int x,
int y,
int p0,
int p1)
Renders the given range in the model as normal unselected text. |
protected Segment |
getLineBuffer()
Gives access to a buffer that can be used to fetch text from the associated document. |
private int |
getLineWidth(Element line)
Calculate the width of the line represented by the given element. |
float |
getPreferredSpan(int axis)
Enabled: Determines the preferred span for this view along an axis. |
protected int |
getTabSize()
Returns the tab size set for the document, defaulting to 8. |
void |
insertUpdate(DocumentEvent changes,
Shape a,
ViewFactory f)
Enabled: Gives notification that something was inserted into the document in a location that this view is responsible for. |
protected Rectangle |
lineToRect(Shape a,
int line)
Determine the rectangle that represents the given line. |
Shape |
modelToView(int pos,
Shape a,
javax.swing.text.Position.Bias b)
Suppressed: Provides a mapping from the document model coordinate space to the coordinate space of the view mapped to it. |
float |
nextTabStop(float x,
int tabOffset)
Enabled: Returns the next tab stop position after a given reference position. |
void |
paint(Graphics g,
Shape a)
Suppressed: Renders using the given rendering surface and area on that surface. |
void |
removeUpdate(DocumentEvent changes,
Shape a,
ViewFactory f)
Enabled: Gives notification that something was removed from the document in a location that this view is responsible for. |
void |
setSize(float width,
float height)
Enabled: Sets the size of the view. |
protected void |
updateDamage(DocumentEvent changes,
Shape a,
ViewFactory f)
|
protected void |
updateMetrics()
Checks to see if the font metrics and longest line are up-to-date. |
int |
viewToModel(float fx,
float fy,
Shape a,
javax.swing.text.Position.Bias[] bias)
Suppressed: Provides a mapping from the view coordinate space to the logical coordinate space of the model. |
Methods inherited from class javax.swing.text.View |
append, breakView, createFragment, 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, updateChildren, updateLayout, viewToModel |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected FontMetrics metrics
Element longLine
Font font
Segment lineBuffer
int tabSize
int tabBase
int sel0
int sel1
Color unselected
Color selected
Constructor Detail |
public PlainView(Element elem)
elem
- the elementMethod Detail |
protected int getTabSize()
protected void drawLine(int lineIndex, Graphics g, int x, int y)
drawUnselectedText
and
drawSelectedText
so that the way selected and
unselected text are rendered can be customized.
lineIndex
- the line to draw >= 0g
- the Graphics
contextx
- the starting X position >= 0y
- the starting Y position >= 0drawUnselectedText(java.awt.Graphics, int, int, int, int)
,
drawSelectedText(java.awt.Graphics, int, int, int, int)
private int drawElement(Element elem, Graphics g, int x, int y) throws BadLocationException
BadLocationException
protected int drawUnselectedText(Graphics g, int x, int y, int p0, int p1) throws BadLocationException
g
- the graphics contextx
- the starting X coordinate >= 0y
- the starting Y coordinate >= 0p0
- the beginning position in the model >= 0p1
- the ending position in the model >= 0
BadLocationException
protected int drawSelectedText(Graphics g, int x, int y, int p0, int p1) throws BadLocationException
g
- the graphics contextx
- the starting X coordinate >= 0y
- the starting Y coordinate >= 0p0
- the beginning position in the model >= 0p1
- the ending position in the model >= 0
BadLocationException
protected final Segment getLineBuffer()
protected void updateMetrics()
public float getPreferredSpan(int axis)
getPreferredSpan
in class View
axis
- may be either View.X_AXIS or View.Y_AXIS
View.getPreferredSpan(int)
public void paint(Graphics g, Shape a)
paint
in class View
g
- the rendering surface to usea
- the allocated region to render intoView.paint(java.awt.Graphics, java.awt.Shape)
Shape adjustPaintRegion(Shape a)
a
. This is useful if painting in a different
region. The default implementation returns a
.
public Shape modelToView(int pos, Shape a, javax.swing.text.Position.Bias b) throws BadLocationException
modelToView
in class View
pos
- the position to convert >= 0a
- the allocated region to render intob
- the bias toward the previous character or the
next character represented by the offset, in case the
position is a boundary of two views; b
will have one
of these values:
Position.Bias.Forward
Position.Bias.Backward
BadLocationException
View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)
public int viewToModel(float fx, float fy, Shape a, javax.swing.text.Position.Bias[] bias)
viewToModel
in class View
fx
- the X coordinate >= 0fy
- the Y coordinate >= 0a
- the allocated region to render into
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
public void insertUpdate(DocumentEvent changes, Shape a, ViewFactory f)
insertUpdate
in class View
changes
- the change information from the associated documenta
- the current allocation of the viewf
- the factory to use to rebuild if the view has childrenView.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
public void removeUpdate(DocumentEvent changes, Shape a, ViewFactory f)
removeUpdate
in class View
changes
- the change information from the associated documenta
- the current allocation of the viewf
- the factory to use to rebuild if the view has childrenView.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
public void changedUpdate(DocumentEvent changes, Shape a, ViewFactory f)
changedUpdate
in class View
changes
- the change information from the associated documenta
- the current allocation of the viewf
- the factory to use to rebuild if the view has childrenView.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
public void setSize(float width, float height)
setSize
in class View
width
- the width >= 0height
- the height >= 0public float nextTabStop(float x, int tabOffset)
nextTabStop
in interface TabExpander
x
- the current position >= 0tabOffset
- the position within the text stream
that the tab occurred at >= 0.
protected void updateDamage(DocumentEvent changes, Shape a, ViewFactory f)
protected void damageLineRange(int line0, int line1, Shape a, Component host)
host
- the component hosting the view (used to call repaint)a
- the region allocated for the view to render intoline0
- the starting line number to repaint. This must
be a valid line number in the model.line1
- the ending line number to repaint. This must
be a valid line number in the model.protected Rectangle lineToRect(Shape a, int line)
a
- the region allocated for the view to render intoline
- the line number to find the region of. This must
be a valid line number in the model.private void calculateLongestLine()
private int getLineWidth(Element line)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |