javax.swing.text

Class ParagraphView

Implemented Interfaces:
SwingConstants, TabExpander

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

void
changedUpdate(DocumentEvent ev, Shape a, ViewFactory fv)
Receives notification when some attributes of the displayed element changes.
protected View
createRow()
Creates a new view that represents a row within a flow.
float
getAlignment(int axis)
Returns the alignment for this paragraph view for the specified axis.
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 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

changedUpdate, createRow, getFlowAxis, getFlowSpan, getFlowStart, getViewIndexAtPosition, insertUpdate, layout, loadChildren, removeUpdate

Methods inherited from class javax.swing.text.BoxView

baselineLayout, baselineRequirements, calculateMajorAxisRequirements, calculateMinorAxisRequirements, childAllocation, getAlignment, getAxis, getHeight, getMaximumSpan, getOffset, getPreferredSpan, getSpan, getViewAtPoint, getWidth, isAfter, isAllocationValid, isBefore, isLayoutValid, layout, layoutChanged, layoutMajorAxis, layoutMinorAxis, modelToView, paint, paintChild, preferenceChanged, replace, setAxis, setSize

Methods inherited from class javax.swing.text.CompositeView

childAllocation, flipEastAndWestAtEnds, getBottomInset, getChildAllocation, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextNorthSouthVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPoint, getViewAtPosition, getViewCount, getViewIndex, getViewIndexAtPosition, isAfter, isBefore, loadChildren, modelToView, modelToView, replace, setInsets, setParagraphInsets, setParent, viewToModel

Methods inherited from class javax.swing.text.View

append, breakView, changedUpdate, createFragment, forwardUpdate, forwardUpdateToView, getAlignment, getAttributes, getBreakWeight, getChildAllocation, getContainer, getDocument, getElement, getEndOffset, getGraphics, getMaximumSpan, getMinimumSpan, getNextVisualPositionFrom, getParent, getPreferredSpan, getResizeWeight, getStartOffset, getToolTipText, getView, getViewCount, getViewFactory, getViewIndex, getViewIndex, insert, insertUpdate, isVisible, modelToView, modelToView, modelToView, paint, preferenceChanged, remove, removeAll, removeUpdate, replace, setParent, setSize, updateChildren, updateLayout, viewToModel, viewToModel

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

firstLineIndent

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

Constructor Details

ParagraphView

public ParagraphView(Element element)
Creates a new ParagraphView for the given Element.
Parameters:
element - the element that is rendered by this ParagraphView

Method Details

changedUpdate

public void changedUpdate(DocumentEvent ev,
                          Shape a,
                          ViewFactory fv)
Receives notification when some attributes of the displayed element changes. This triggers a refresh of the cached attributes of this paragraph.
Overrides:
changedUpdate in interface FlowView
Parameters:
ev - the document event
a - the allocation of this view
fv - the view factory to use for creating new child views

createRow

protected View createRow()
Creates a new view that represents a row within a flow.
Overrides:
createRow in interface 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 interface BoxView
Parameters:
axis - the axis which is examined
Returns:
the alignment for this paragraph view for the specified axis

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

nextTabStop

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

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

setPropertiesFromAttributes

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

ParagraphView.java -- A composite View Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.