|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--javax.swing.text.View | +--javax.swing.text.CompositeView | +--javax.swing.text.BoxView | +--javax.swing.text.FlowView | +--javax.swing.text.ParagraphView
View of a simple line-wrapping paragraph that supports
multiple fonts, colors, components, icons, etc. It is
basically a vertical box with a margin around it. The
contents of the box are a bunch of rows which are special
horizontal boxes. This view creates a collection of
views that represent the child elements of the paragraph
element. Each of these views are placed into a row
directly if they will fit, otherwise the breakView
method is called to try and carve the view into pieces
that fit.
View
Inner classes inherited from class javax.swing.text.FlowView |
FlowView.FlowStrategy |
Field Summary | |
protected int |
firstLineIndent
Indentation for the first line, from the left inset. |
Fields inherited from class javax.swing.text.FlowView |
layoutPool, layoutSpan, strategy |
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, NORTH, NORTH_EAST, NORTH_WEST, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST |
Constructor Summary | |
ParagraphView(Element elem)
Constructs a ParagraphView for the given element. |
Method Summary | |
protected void |
adjustRow(javax.swing.text.ParagraphView.Row r,
int desiredSpan,
int x)
Adjusts the given row if possible to fit within the layout span. |
View |
breakView(int axis,
float len,
Shape a)
Breaks this view on the given axis at the given length. |
void |
changedUpdate(DocumentEvent changes,
Shape a,
ViewFactory f)
Gives notification from the document that attributes were changed in a location that this view is responsible for. |
protected View |
createRow()
Create a View that should be used to hold a a rows worth of children in a flow. |
protected int |
findOffsetToCharactersInString(char[] string,
int start)
Finds the next character in the document with a character in string , starting at offset start . |
protected boolean |
flipEastAndWestAtEnds(int position,
Position.Bias bias)
Subclasses may wish to subclass this and conditionally return true based on the position. |
float |
getAlignment(int axis)
Determines the desired alignment for this view along an axis. |
int |
getBreakWeight(int axis,
float len)
Gets the break weight for a given location. |
protected int |
getClosestPositionTo(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet,
int rowIndex,
int x)
Returns the closest model position to x . |
int |
getFlowSpan(int index)
Fetch the constraining span to flow against for the given child index. |
int |
getFlowStart(int index)
Fetch the location along the flow axis that the flow span will start at. |
protected View |
getLayoutView(int index)
The child views of the paragraph are rows which have been used to arrange pieces of the Views that represent the child elements. |
protected int |
getLayoutViewCount()
The child views of the paragraph are rows which have been used to arrange pieces of the Views that represent the child elements. |
protected int |
getNextNorthSouthVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet)
Overriden from CompositeView. |
protected float |
getPartialSize(int startOffset,
int endOffset)
Returns the size used by the views between startOffset
and endOffset . |
protected float |
getTabBase()
|
protected TabSet |
getTabSet()
Gets the Tabset to be used in calculating tabs. |
float |
nextTabStop(float x,
int tabOffset)
Returns the next tab stop position given a reference position. |
void |
paint(Graphics g,
Shape a)
Renders using the given rendering surface and area on that surface. |
protected void |
setFirstLineIndent(float fi)
Set the indent on the first line |
protected void |
setJustification(int j)
Set the type of justification. |
protected void |
setLineSpacing(float ls)
Set the line spacing. |
protected void |
setPropertiesFromAttributes()
|
Methods inherited from class javax.swing.text.FlowView |
calculateMinorAxisRequirements, getFlowAxis, getViewIndexAtPosition, insertUpdate, layout, loadChildren, removeUpdate |
Methods inherited from class javax.swing.text.BoxView |
baselineLayout, baselineRequirements, calculateMajorAxisRequirements, childAllocation, forwardUpdate, getAxis, getChildAllocation, getHeight, getMaximumSpan, getMinimumSpan, getOffset, getPreferredSpan, getResizeWeight, getSpan, getViewAtPoint, getWidth, isAfter, isAllocationValid, isBefore, layoutChanged, layoutMajorAxis, layoutMinorAxis, modelToView, paintChild, preferenceChanged, replace, setAxis, setSize, viewToModel |
Methods inherited from class javax.swing.text.CompositeView |
getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, modelToView, setInsets, setParagraphInsets, setParent |
Methods inherited from class javax.swing.text.View |
append, breakView, createFragment, forwardUpdateToView, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getStartOffset, getViewFactory, insert, isVisible, modelToView, remove, removeAll, updateChildren, updateLayout, viewToModel |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected int firstLineIndent
Constructor Detail |
public ParagraphView(Element elem)
elem
- the element that this view is responsible forMethod Detail |
protected void setJustification(int j)
protected void setLineSpacing(float ls)
ls
- the value in pointsprotected void setFirstLineIndent(float fi)
ls
- the value in pointsprotected void setPropertiesFromAttributes()
protected int getLayoutViewCount()
protected View getLayoutView(int index)
protected void adjustRow(javax.swing.text.ParagraphView.Row r, int desiredSpan, int x)
r
- the row to adjust to the current layout
span.desiredSpan
- the current layout span >= 0x
- the location r starts at.protected int getNextNorthSouthVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
getNextNorthSouthVisualPositionFrom
in class CompositeView
javax.swing.text.CompositeView
protected int getClosestPositionTo(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet, int rowIndex, int x) throws BadLocationException
x
.
rowIndex
gives the index of the view that corresponds
that should be looked in.protected boolean flipEastAndWestAtEnds(int position, Position.Bias bias)
CompositeView
flipEastAndWestAtEnds
in class BoxView
javax.swing.text.CompositeView
public int getFlowSpan(int index)
getFlowSpan
in class FlowView
javax.swing.text.FlowView
index
- the index of the row being updated.
This should be a value >= 0 and < getViewCount().FlowView.getFlowStart(int)
public int getFlowStart(int index)
getFlowStart
in class FlowView
javax.swing.text.FlowView
index
- the index of the row being updated.
This should be a value >= 0 and < getViewCount().FlowView.getFlowSpan(int)
protected View createRow()
createRow
in class FlowView
public float nextTabStop(float x, int tabOffset)
getTabbedSpan
on the logical children in the process
of layout to determine the desired span of the children. The
logical children can delegate their tab expansion upward to
the paragraph which knows how to expand tabs.
LabelView
is an example of a view that delegates
its tab expansion needs upward to the paragraph.
This is implemented to try and locate a TabSet
in the paragraph element's attribute set. If one can be
found, its settings will be used, otherwise a default expansion
will be provided. The base location for for tab expansion
is the left inset from the paragraphs most recent allocation
(which is what the layout of the children is based upon).
nextTabStop
in interface TabExpander
x
- the X reference positiontabOffset
- the position within the text stream
that the tab occurred at >= 0.TabSet
,
TabStop
,
LabelView
protected TabSet getTabSet()
protected float getPartialSize(int startOffset, int endOffset)
startOffset
and endOffset
. This uses getPartialView to calculate the
size if the child view implements the TabableView interface. If a
size is needed and a View does not implement the TabableView
interface, the preferredSpan will be used.startOffset
- the starting document offset >= 0endOffset
- the ending document offset >= startOffsetprotected int findOffsetToCharactersInString(char[] string, int start)
string
, starting at offset start
. If
there are no characters found, -1 will be returned.string
- the string of charactersstart
- where to start in the model >= 0protected float getTabBase()
public void paint(Graphics g, Shape a)
paint
in class BoxView
g
- the rendering surface to usea
- the allocated region to render intoView.paint(java.awt.Graphics, java.awt.Shape)
public float getAlignment(int axis)
getAlignment
in class BoxView
axis
- may be either View.X_AXIS or View.Y_AXISpublic View breakView(int axis, float len, Shape a)
ParagraphView instances are breakable along the Y_AXIS only, and only if
len
is after the first line.
axis
- may be either View.X_AXIS or View.Y_AXISlen
- specifies where a potential break is desired
along the given axis >= 0a
- the current allocation of the viewView.breakView(int, int, float, float)
public int getBreakWeight(int axis, float len)
len
is after the first row. If the length
is less than one row, a value of BadBreakWeight is returned.axis
- may be either View.X_AXIS or View.Y_AXISlen
- specifies where a potential break is desired >= 0View.getBreakWeight(int, float, float)
public void changedUpdate(DocumentEvent changes, Shape a, ViewFactory f)
changedUpdate
in class FlowView
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)
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Java, Java 2D, and JDBC are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.