public abstract class FlowView extends BoxView
View
Modifier and Type | Class and Description |
---|---|
static class |
FlowView.FlowStrategy
Strategy for maintaining the physical form
of the flow.
|
Modifier and Type | Field and Description |
---|---|
protected View |
layoutPool
These are the views that represent the child elements
of the element this view represents (The logical view
to translate to a physical view).
|
protected int |
layoutSpan
Default constraint against which the flow is
created against.
|
protected FlowView.FlowStrategy |
strategy
The behavior for keeping the flow updated.
|
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
Constructor and Description |
---|
FlowView(Element elem,
int axis)
Constructs a FlowView for the given element.
|
Modifier and Type | Method and Description |
---|---|
protected SizeRequirements |
calculateMinorAxisRequirements(int axis,
SizeRequirements r)
Calculate requirements along the minor axis.
|
void |
changedUpdate(DocumentEvent changes,
Shape a,
ViewFactory f)
Gives notification from the document that attributes were changed
in a location that this view is responsible for.
|
protected abstract View |
createRow()
Create a View that should be used to hold a
a rows worth of children in a flow.
|
int |
getFlowAxis()
Fetches the axis along which views should be
flowed.
|
int |
getFlowSpan(int index)
Fetch the constraining span to flow against for
the given child index.
|
int |
getFlowStart(int index)
Fetch the location along the flow axis that the
flow span will start at.
|
protected int |
getViewIndexAtPosition(int pos)
Fetches the child view index representing the given position in
the model.
|
void |
insertUpdate(DocumentEvent changes,
Shape a,
ViewFactory f)
Gives notification that something was inserted into the document
in a location that this view is responsible for.
|
protected void |
layout(int width,
int height)
Lays out the children.
|
protected void |
loadChildren(ViewFactory f)
Loads all of the children to initialize the view.
|
void |
removeUpdate(DocumentEvent changes,
Shape a,
ViewFactory f)
Gives notification that something was removed from the document
in a location that this view is responsible for.
|
void |
setParent(View parent)
Sets the parent of the view.
|
baselineLayout, baselineRequirements, calculateMajorAxisRequirements, childAllocation, flipEastAndWestAtEnds, forwardUpdate, getAlignment, getAxis, getChildAllocation, getHeight, getMaximumSpan, getMinimumSpan, getOffset, getPreferredSpan, getResizeWeight, getSpan, getViewAtPoint, getWidth, isAfter, isAllocationValid, isBefore, isLayoutValid, layoutChanged, layoutMajorAxis, layoutMinorAxis, modelToView, paint, paintChild, preferenceChanged, replace, setAxis, setSize, viewToModel
getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextNorthSouthVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, modelToView, setInsets, setParagraphInsets
append, breakView, createFragment, forwardUpdateToView, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, isVisible, modelToView, remove, removeAll, updateChildren, updateLayout, viewToModel
protected int layoutSpan
protected View layoutPool
protected FlowView.FlowStrategy strategy
public FlowView(Element elem, int axis)
elem
- the element that this view is responsible foraxis
- may be either View.X_AXIS or View.Y_AXISpublic int getFlowAxis()
FlowStrategy
.public int getFlowSpan(int index)
index
- the index of the row being updated.
This should be a value >= 0 and < getViewCount().getFlowStart(int)
public int getFlowStart(int index)
index
- the index of the row being updated.
This should be a value >= 0 and < getViewCount().getFlowSpan(int)
protected abstract View createRow()
protected void loadChildren(ViewFactory f)
setParent
method.
This is reimplemented to not load any children directly
(as they are created in the process of formatting).
If the layoutPool variable is null, an instance of
LogicalView is created to represent the logical view
that is used in the process of formatting.loadChildren
in class CompositeView
f
- the view factoryCompositeView.setParent(javax.swing.text.View)
protected int getViewIndexAtPosition(int pos)
getViewIndexAtPosition
in class CompositeView
pos
- the position >= 0protected void layout(int width, int height)
protected SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r)
calculateMinorAxisRequirements
in class BoxView
axis
- the axis being studiedr
- the SizeRequirements
object;
if null
one will be createdSizeRequirements
objectSizeRequirements
public void insertUpdate(DocumentEvent changes, Shape a, ViewFactory f)
insertUpdate
in class View
changes
- the change information from the associated documenta
- the current allocation of the viewf
- the factory to use to rebuild if the view has childrenView.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
public void removeUpdate(DocumentEvent changes, Shape a, ViewFactory f)
removeUpdate
in class View
changes
- the change information from the associated documenta
- the current allocation of the viewf
- the factory to use to rebuild if the view has childrenView.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
public void changedUpdate(DocumentEvent changes, Shape a, ViewFactory f)
changedUpdate
in class View
changes
- the change information from the associated documenta
- the current allocation of the viewf
- the factory to use to rebuild if the view has childrenView.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
public void setParent(View parent)
loadChildren
method if this view does not already have children.
The children should not be loaded in the
constructor because the act of setting the parent
may cause them to try to search up the hierarchy
(to get the hosting Container
for example).
If this view has children (the view is being moved
from one place in the view hierarchy to another),
the loadChildren
method will not be called.setParent
in class CompositeView
parent
- the parent of the view, null
if none Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2022, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.