javax.swing.text
public abstract class FlowView extends BoxView
View
that can flows it's children into it's layout space.
The FlowView
manages a set of logical views (that are
the children of the {@link #layoutPool} field). These are translated
at layout time into a set of physical views. These are the views that
are managed as the real child views. Each of these child views represents
a row and are laid out within a box using the superclasses behaviour.
The concrete implementation of the rows must be provided by subclasses.
Nested Class Summary | |
---|---|
static class | FlowView.FlowStrategy
A strategy for translating the logical views of a FlowView
into the real views. |
Field Summary | |
---|---|
protected View | layoutPool
Represents the logical child elements of this view, encapsulated within
one parent view (an instance of a package private LogicalView
class). |
protected int | layoutSpan
The span of the FlowView that should be flowed. |
protected FlowView.FlowStrategy | strategy
The FlowStrategy to use for translating between the
logical and physical view. |
Constructor Summary | |
---|---|
FlowView(Element element, int axis)
Creates a new FlowView for the given
Element and axis .
|
Method Summary | |
---|---|
protected SizeRequirements | calculateMinorAxisRequirements(int axis, SizeRequirements r)
Calculates the size requirements of this BoxView along
its minor axis, that is the axis opposite to the axis specified in the
constructor.
|
void | changedUpdate(DocumentEvent changes, Shape a, ViewFactory vf)
Receice notification that some attributes changed in the region
that this view is responsible for. |
protected abstract View | createRow()
Creates a new view that represents a row within a flow.
|
int | getFlowAxis()
Returns the axis along which the view should be flowed. |
int | getFlowSpan(int index)
Returns the span of the flow for the specified child view. |
int | getFlowStart(int index)
Returns the location along the flow axis where the flow span starts
given a child view index. |
protected int | getViewIndexAtPosition(int pos)
Returns the index of the child View for the given model
position.
|
void | insertUpdate(DocumentEvent changes, Shape a, ViewFactory vf)
Receice notification that some content has been inserted in the region
that this view is responsible for. |
protected void | layout(int width, int height)
Performs the layout of this view. |
protected void | loadChildren(ViewFactory vf)
Loads the children of this view. |
void | removeUpdate(DocumentEvent changes, Shape a, ViewFactory vf)
Receice notification that some content has been removed from the region
that this view is responsible for. |
LogicalView
class). These will be translated to a set of real views that are then
displayed on screen. This translation is performed by the inner class
{@link FlowStrategy}.FlowView
that should be flowed.FlowStrategy
to use for translating between the
logical and physical view.FlowView
for the given
Element
and axis
.
Parameters: element the element that is rendered by this FlowView axis the axis along which the view is tiled, either
View.X_AXIS
or View.Y_AXIS
, the flow
axis is orthogonal to this one
BoxView
along
its minor axis, that is the axis opposite to the axis specified in the
constructor.
This is overridden and forwards the request to the logical view.
Parameters: axis the axis that is examined r the SizeRequirements
object to hold the result,
if null
, a new one is created
Returns: the size requirements for this BoxView
along
the specified axis
Parameters: changes the document event describing the changes a the current allocation of the view vf the view factory that is used for creating new child views
Returns: a view for a new row
Returns: the axis along which the view should be flowed
Parameters: index the index of the child for which to return the span
Returns: the span of the flow for the specified child view
Parameters: index the index of the child for which to return the flow location
Returns: the location along the flow axis where the flow span starts
View
for the given model
position.
This is implemented to iterate over the children of this
view (the rows) and return the index of the first view that contains
the given position.
Parameters: pos the model position for whicht the child View
is
queried
Returns: the index of the child View
for the given model
position
Parameters: changes the document event describing the changes a the current allocation of the view vf the view factory that is used for creating new child views
Parameters: width the width of the view height the height of the view
FlowView
does not
directly load its children. Instead it creates a logical view
({@link #layoutPool}) which is filled by the logical child views.
The real children are created at layout time and each represent one
row.
This method is called by {@link View#setParent} in order to initialize
the view.
Parameters: vf the view factory to use for creating the child views
Parameters: changes the document event describing the changes a the current allocation of the view vf the view factory that is used for creating new child views