public static class FlowView.FlowStrategy
extends Object
Strategy for maintaining the physical form
of the flow. The default implementation is
completely stateless, and recalculates the
entire flow if the layout is invalid on the
given FlowView. Alternative strategies can
be implemented by subclassing, and might
perform incremental repair to the layout
or alternative breaking behavior.
Gives notification that something was inserted into the document
in a location that the given flow view is responsible for. The
strategy should update the appropriate changed region (which
depends upon the strategy used for repair).
Parameters:
fv - the flow view
e - the change information from the associated document
alloc - the current allocation of the view inside of the insets.
This value will be null if the view has not yet been displayed.
Update the flow on the given FlowView. By default, this causes
all of the rows (child views) to be rebuilt to match the given
constraints for each row. This is called by a FlowView.layout
to update the child views in the flow.
Parameters:
fv - the view to reflow
layoutRow
protected int layoutRow(FlowView fv,
int rowIndex,
int pos)
Creates a row of views that will fit within the
layout span of the row. This is called by the layout method.
This is implemented to fill the row by repeatedly calling
the createView method until the available span has been
exhausted, a forced break was encountered, or the createView
method returned null. If the remaining span was exhausted,
the adjustRow method will be called to perform adjustments
to the row to try and make it fit into the given span.
Parameters:
fv - the flow view
rowIndex - the index of the row to fill in with views. The
row is assumed to be empty on entry.
pos - The current position in the children of
this views element from which to start.
Returns:
the position to start the next row
adjustRow
protected void adjustRow(FlowView fv,
int rowIndex,
int desiredSpan,
int x)
Adjusts the given row if possible to fit within the
layout span. By default this will try to find the
highest break weight possible nearest the end of
the row. If a forced break is encountered, the
break will be positioned there.
Parameters:
fv - the flow view
rowIndex - the row to adjust to the current layout
span.
desiredSpan - the current layout span >= 0
x - the location r starts at.
createView
protected View createView(FlowView fv,
int startOffset,
int spanLeft,
int rowIndex)
Creates a view that can be used to represent the current piece
of the flow. This can be either an entire view from the
logical view, or a fragment of the logical view.
Parameters:
fv - the view holding the flow
startOffset - the start location for the view being created
spanLeft - the about of span left to fill in the row
rowIndex - the row the view will be placed into
Returns:
a view that can be used to represent the current piece
of the flow
Scripting on this page tracks web page traffic, but does not change the content in any way.