javax.swing.text
Class ParagraphView

java.lang.Object
  extended by javax.swing.text.View
      extended by javax.swing.text.CompositeView
          extended by javax.swing.text.BoxView
              extended by javax.swing.text.FlowView
                  extended by javax.swing.text.ParagraphView
All Implemented Interfaces:
SwingConstants, TabExpander
Direct Known Subclasses:
ParagraphView

public class ParagraphView
extends FlowView
implements TabExpander

A FlowView that flows it's children horizontally and boxes the rows vertically.


Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.text.FlowView
FlowView.FlowStrategy
 
Field Summary
protected  int firstLineIndent
          The indentation of the first line of the paragraph.
 
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, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Constructor Summary
ParagraphView(Element element)
          Creates a new ParagraphView for the given Element.
 
Method Summary
protected  void adjustRow(javax.swing.text.ParagraphView.Row r, int desiredSpan, int x)
           
 View breakView(int axis, float len, Shape a)
           
 void changedUpdate(DocumentEvent ev, Shape a, ViewFactory vf)
          Receives notification when some attributes of the displayed element changes.
protected  View createRow()
          Creates a new view that represents a row within a flow.
protected  int findOffsetToCharactersInString(char[] string, int start)
          Finds the next offset in the document that has one of the characters specified in string.
 float getAlignment(int axis)
          Returns the alignment for this paragraph view for the specified axis.
 int getBreakWeight(int axis, float len)
           
protected  int getClosestPositionTo(int pos, Position.Bias bias, Shape a, int direction, Position.Bias[] biasRet, int rowIndex, int x)
           
protected  View getLayoutView(int i)
          Returns the i-th view from the logical views, before breaking into rows.
protected  int getLayoutViewCount()
          Returns the number of logical child views.
protected  float getPartialSize(int startOffset, int endOffset)
          Returns the size that is used by this view (or it's child views) between startOffset and endOffset.
protected  float getTabBase()
          Returns the location where the tabs are calculated from.
protected  TabSet getTabSet()
          Returns the TabSet used by this ParagraphView.
 float nextTabStop(float x, int tabOffset)
           
protected  void setFirstLineIndent(float i)
          Sets the indentation of the first line of the paragraph.
protected  void setJustification(int j)
          Sets the justification of the paragraph.
protected  void setLineSpacing(float s)
          Sets the line spacing for this paragraph.
protected  void setPropertiesFromAttributes()
          Fetches the cached properties from the element's attributes.
 
Methods inherited from class javax.swing.text.FlowView
calculateMinorAxisRequirements, getFlowAxis, getFlowSpan, getFlowStart, getViewIndexAtPosition, insertUpdate, layout, loadChildren, removeUpdate
 
Methods inherited from class javax.swing.text.BoxView
baselineLayout, baselineRequirements, calculateMajorAxisRequirements, childAllocation, flipEastAndWestAtEnds, forwardUpdate, getAxis, getChildAllocation, getHeight, getMaximumSpan, getMinimumSpan, getOffset, getPreferredSpan, getResizeWeight, getSpan, getViewAtPoint, getWidth, isAfter, isAllocationValid, isBefore, isLayoutValid, layoutChanged, layoutMajorAxis, layoutMinorAxis, modelToView, paint, paintChild, preferenceChanged, replace, setAxis, setSize, viewToModel
 
Methods inherited from class javax.swing.text.CompositeView
getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextNorthSouthVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, modelToView, setInsets, setParagraphInsets, setParent
 
Methods inherited from class javax.swing.text.View
append, breakView, createFragment, dump, forwardUpdateToView, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getStartOffset, getToolTipText, getViewFactory, getViewIndex, 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

firstLineIndent

protected int firstLineIndent
The indentation of the first line of the paragraph.

Constructor Detail

ParagraphView

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

Parameters:
element - the element that is rendered by this ParagraphView
Method Detail

nextTabStop

public float nextTabStop(float x,
                         int tabOffset)
Specified by:
nextTabStop in interface TabExpander

createRow

protected View createRow()
Creates a new view that represents a row within a flow.

Specified by:
createRow in class FlowView
Returns:
a view for a new row

getAlignment

public float getAlignment(int axis)
Returns the alignment for this paragraph view for the specified axis. For the X_AXIS the paragraph view will be aligned at it's left edge (0.0F). For the Y_AXIS the paragraph view will be aligned at the center of it's first row.

Overrides:
getAlignment in class BoxView
Parameters:
axis - the axis which is examined
Returns:
the alignment for this paragraph view for the specified axis

changedUpdate

public void changedUpdate(DocumentEvent ev,
                          Shape a,
                          ViewFactory vf)
Receives notification when some attributes of the displayed element changes. This triggers a refresh of the cached attributes of this paragraph.

Overrides:
changedUpdate in class FlowView
Parameters:
ev - the document event
a - the allocation of this view
vf - the view factory to use for creating new child views

setPropertiesFromAttributes

protected void setPropertiesFromAttributes()
Fetches the cached properties from the element's attributes.


setFirstLineIndent

protected void setFirstLineIndent(float i)
Sets the indentation of the first line of the paragraph.

Parameters:
i - the indentation to set

setJustification

protected void setJustification(int j)
Sets the justification of the paragraph.

Parameters:
j - the justification to set

setLineSpacing

protected void setLineSpacing(float s)
Sets the line spacing for this paragraph.

Parameters:
s - the line spacing to set

getLayoutView

protected View getLayoutView(int i)
Returns the i-th view from the logical views, before breaking into rows.

Parameters:
i - the index of the logical view to return
Returns:
the i-th view from the logical views, before breaking into rows

getLayoutViewCount

protected int getLayoutViewCount()
Returns the number of logical child views.

Returns:
the number of logical child views

getTabSet

protected TabSet getTabSet()
Returns the TabSet used by this ParagraphView.

Returns:
the TabSet used by this ParagraphView

findOffsetToCharactersInString

protected int findOffsetToCharactersInString(char[] string,
                                             int start)
Finds the next offset in the document that has one of the characters specified in string. If there is no such character found, this returns -1.

Parameters:
string - the characters to search for
start - the start offset
Returns:
the next offset in the document that has one of the characters specified in string

getClosestPositionTo

protected int getClosestPositionTo(int pos,
                                   Position.Bias bias,
                                   Shape a,
                                   int direction,
                                   Position.Bias[] biasRet,
                                   int rowIndex,
                                   int x)
                            throws BadLocationException
Throws:
BadLocationException

getPartialSize

protected float getPartialSize(int startOffset,
                               int endOffset)
Returns the size that is used by this view (or it's child views) between startOffset and endOffset. If the child views implement the TabableView interface, then this is used to determine the span, otherwise we use the preferred span of the child views.

Parameters:
startOffset - the start offset
endOffset - the end offset
Returns:
the span used by the view between startOffset and endOffset

getTabBase

protected float getTabBase()
Returns the location where the tabs are calculated from. This returns 0.0F by default.

Returns:
the location where the tabs are calculated from

adjustRow

protected void adjustRow(javax.swing.text.ParagraphView.Row r,
                         int desiredSpan,
                         int x)

breakView

public View breakView(int axis,
                      float len,
                      Shape a)

getBreakWeight

public int getBreakWeight(int axis,
                          float len)