javax.swing.text
Class FlowView.FlowStrategy
- FlowView
A strategy for translating the logical views of a FlowView
into the real views.
protected void | adjustRow(FlowView fv, int rowIndex, int desiredSpan, int x) - Tries to adjust the specified row to fit within the desired span.
|
void | changedUpdate(FlowView fv, DocumentEvent e, Rectangle alloc) - Receives notification from a
FlowView that some attributes
have changed in the document at a location that the
FlowView is responsible for.
|
protected View | createView(FlowView fv, int startOffset, int spanLeft, int rowIndex) - Creates physical views that form the rows of the flow view.
|
protected View | getLogicalView(FlowView fv) - Returns the logical view of the managed
FlowView .
|
void | insertUpdate(FlowView fv, DocumentEvent e, Rectangle alloc) - Receives notification from a
FlowView that some content
has been inserted into the document at a location that the
FlowView is responsible for.
|
void | layout(FlowView fv) - Performs the layout for the whole view.
|
protected int | layoutRow(FlowView fv, int rowIndex, int pos) - Lays out one row of the flow view.
|
void | removeUpdate(FlowView fv, DocumentEvent e, Rectangle alloc) - Receives notification from a
FlowView that some content
has been removed from the document at a location that the
FlowView is responsible for.
|
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
FlowStrategy
public FlowStrategy()
Creates a new instance of FlowStragegy
.
adjustRow
protected void adjustRow(FlowView fv,
int rowIndex,
int desiredSpan,
int x)
Tries to adjust the specified row to fit within the desired span. The
default implementation iterates through the children of the specified
row to find the view that has the highest break weight and - if there
is more than one view with such a break weight - which is nearest to
the end of the row. If there is such a view that has a break weight >
View.BadBreakWeight
, this view is broken using the
View.breakView(int,int,float,float)
method and this view and
all views after the now broken view are replaced by the broken view.
fv
- the flow viewrowIndex
- the index of the row to be adjusteddesiredSpan
- the layout spanx
- the X location at which the row starts
changedUpdate
public void changedUpdate(FlowView fv,
DocumentEvent e,
Rectangle alloc)
Receives notification from a
FlowView
that some attributes
have changed in the document at a location that the
FlowView
is responsible for.
The default implementation simply calls
layout(FlowView)
.
fv
- the flow view that sends the notificatione
- the document event describing the changealloc
- the current allocation of the flow view
createView
protected View createView(FlowView fv,
int startOffset,
int spanLeft,
int rowIndex)
Creates physical views that form the rows of the flow view. This
can be an entire view from the logical view (if it fits within the
available span), a fragment of such a view (if it doesn't fit in the
available span and can be broken down) or
null
(if it does
not fit in the available span and also cannot be broken down).
The default implementation fetches the logical view at the specified
startOffset
. If that view has a different startOffset than
specified in the argument, a fragment is created using
View.createFragment(int,int)
that has the correct startOffset
and the logical view's endOffset.
fv
- the flow viewstartOffset
- the start offset for the view to be createdspanLeft
- the available spanrowIndex
- the index of the row
- a view to fill the row with, or
null
if there
is no view or view fragment that fits in the available span
getLogicalView
protected View getLogicalView(FlowView fv)
Returns the logical view of the managed FlowView
.
fv
- the flow view for which to return the logical view
- the logical view of the managed
FlowView
insertUpdate
public void insertUpdate(FlowView fv,
DocumentEvent e,
Rectangle alloc)
Receives notification from a
FlowView
that some content
has been inserted into the document at a location that the
FlowView
is responsible for.
The default implementation simply calls
layout(FlowView)
.
fv
- the flow view that sends the notificatione
- the document event describing the changealloc
- the current allocation of the flow view
layout
public void layout(FlowView fv)
Performs the layout for the whole view. By default this rebuilds
all the physical views from the logical views of the managed FlowView.
This is called by
FlowView.layout(int,int)
to update the layout of
the view.
fv
- the flow view for which we perform the layout
layoutRow
protected int layoutRow(FlowView fv,
int rowIndex,
int pos)
Lays out one row of the flow view. This is called by
layout(FlowView)
to
fill one row with child views until the available span is exhausted. The
default implementation fills the row by calling
createView(FlowView,int,int,int)
until the available space is
exhausted, a forced break is encountered or there are no more views in
the logical view. If the available space is exhausted,
adjustRow(FlowView,int,int,int)
is called to fit the row into
the available span.
fv
- the flow view for which we perform the layoutrowIndex
- the index of the rowpos
- the model position for the beginning of the row
- the start position of the next row
removeUpdate
public void removeUpdate(FlowView fv,
DocumentEvent e,
Rectangle alloc)
Receives notification from a
FlowView
that some content
has been removed from the document at a location that the
FlowView
is responsible for.
The default implementation simply calls
layout(FlowView)
.
fv
- the flow view that sends the notificatione
- the document event describing the changealloc
- the current allocation of the flow view
FlowView.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.