javax.swing.text

Class FlowView.FlowStrategy

Enclosing Class:
FlowView

public static class FlowView.FlowStrategy
extends Object

A strategy for translating the logical views of a FlowView into the real views.

Constructor Summary

FlowStrategy()
Creates a new instance of FlowStragegy.

Method Summary

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 offset, int spanLeft, int rowIndex)
Creates physical views that form the rows of the flow view.
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.

Methods inherited from class java.lang.Object

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

Constructor Details

FlowStrategy

public FlowStrategy()
Creates a new instance of FlowStragegy.

Method Details

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).
Parameters:
fv - the flow view that sends the notification
e - the document event describing the change
alloc - the current allocation of the flow view

createView

protected View createView(FlowView fv,
                          int offset,
                          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).
Parameters:
fv - the flow view
offset - the start offset for the view to be created
spanLeft - the available span
rowIndex - the index of the row
Returns:
a view to fill the row with, or null if there is no view or view fragment that fits in the available span

getLogicalView

public View getLogicalView(FlowView fv)
Returns the logical view of the managed FlowView.
Parameters:
fv - the flow view for which to return the logical view
Returns:
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).
Parameters:
fv - the flow view that sends the notification
e - the document event describing the change
alloc - 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.
Parameters:
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.
Parameters:
fv - the flow view for which we perform the layout
rowIndex - the index of the row
pos - the start position for the row
Returns:
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).
Parameters:
fv - the flow view that sends the notification
e - the document event describing the change
alloc - 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.