Package org.eclipse.draw2d
Class AbstractHintLayout
java.lang.Object
org.eclipse.draw2d.AbstractLayout
org.eclipse.draw2d.AbstractHintLayout
- All Implemented Interfaces:
LayoutManager
- Direct Known Subclasses:
BorderLayout
,GridLayout
,OrderedLayout
,ScrollPaneLayout
,StackLayout
,ViewportLayout
The foundation for layout managers which are sensitive to width and/or height
hints. This class will cache preferred and minimum sizes for a given set of
hints. If the hints change in a meaningful way, the cached size is thrown out
and redetermined.
Subclasses may be sensitive to one or both hints. By default, this class
assumes both hints are important. Subclasses may override this behavior in
isSensitiveHorizontally(IFigure)
and
isSensitiveVertically(IFigure)
. At least one of these method should
return true
.
- Since:
- 2.0
-
Field Summary
Fields inherited from class org.eclipse.draw2d.AbstractLayout
isObservingVisibility, preferredSize
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected Dimension
calculateMinimumSize
(IFigure container, int wHint, int hHint) Calculates the minimum size using the given width and height hints.getMinimumSize
(IFigure container, int w, int h) Returns the minimum size of the given figure.final Dimension
getPreferredSize
(IFigure container, int w, int h) Returns the preferred size of the given figure, using width and height hints.void
Extends the superclass implementation to flush the cached minimum size.protected boolean
isSensitiveHorizontally
(IFigure container) Returns whether this layout manager is sensitive to changes in the horizontal hint.protected boolean
isSensitiveVertically
(IFigure container) Returns whether this layout manager is sensitive to changes in the vertical hint.Methods inherited from class org.eclipse.draw2d.AbstractLayout
calculatePreferredSize, calculatePreferredSize, getBorderPreferredSize, getConstraint, getMinimumSize, getPreferredSize, invalidate, isObservingVisibility, remove, setConstraint, setObserveVisibility
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.eclipse.draw2d.LayoutManager
layout
-
Constructor Details
-
AbstractHintLayout
public AbstractHintLayout()
-
-
Method Details
-
calculateMinimumSize
Calculates the minimum size using the given width and height hints. This method is called fromgetMinimumSize(IFigure, int, int)
whenever the cached minimum size has been flushed.By default, this method just calls
getPreferredSize(IFigure, int, int)
, meaning minimum and preferres sizes will be the same unless this method is overridden.- Parameters:
container
- the Figure on which this layout is installedwHint
- the width hinthHint
- the height hint- Returns:
- the layout's minimum size
-
getMinimumSize
Description copied from interface:LayoutManager
Returns the minimum size of the given figure.- Specified by:
getMinimumSize
in interfaceLayoutManager
- Overrides:
getMinimumSize
in classAbstractLayout
- Parameters:
container
- The Figurew
- the width hinth
- the height hint- Returns:
- The minimum size
- See Also:
-
getPreferredSize
Description copied from class:AbstractLayout
Returns the preferred size of the given figure, using width and height hints. If the preferred size is cached, that size is returned. Otherwise,AbstractLayout.calculatePreferredSize(IFigure, int, int)
is called.- Specified by:
getPreferredSize
in interfaceLayoutManager
- Overrides:
getPreferredSize
in classAbstractLayout
- Parameters:
container
- The figurew
- The width hinth
- The height hint- Returns:
- The preferred size
- See Also:
-
invalidate
public void invalidate()Extends the superclass implementation to flush the cached minimum size.- Specified by:
invalidate
in interfaceLayoutManager
- Overrides:
invalidate
in classAbstractLayout
- See Also:
-
isSensitiveHorizontally
Returns whether this layout manager is sensitive to changes in the horizontal hint. By default, this method returnstrue
.- Parameters:
container
- the layout's container- Returns:
true
if this layout is sensite to horizontal hint changes
-
isSensitiveVertically
Returns whether this layout manager is sensitive to changes in the vertical hint. By default, this method returnstrue
.- Parameters:
container
- the layout's container- Returns:
true
if this layout is sensite to vertical hint changes
-