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

public abstract class AbstractHintLayout extends AbstractLayout
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
  • Constructor Details

    • AbstractHintLayout

      public AbstractHintLayout()
  • Method Details

    • calculateMinimumSize

      protected Dimension calculateMinimumSize(IFigure container, int wHint, int hHint)
      Calculates the minimum size using the given width and height hints. This method is called from getMinimumSize(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 installed
      wHint - the width hint
      hHint - the height hint
      Returns:
      the layout's minimum size
    • getMinimumSize

      public Dimension getMinimumSize(IFigure container, int w, int h)
      Description copied from interface: LayoutManager
      Returns the minimum size of the given figure.
      Specified by:
      getMinimumSize in interface LayoutManager
      Overrides:
      getMinimumSize in class AbstractLayout
      Parameters:
      container - The Figure
      w - the width hint
      h - the height hint
      Returns:
      The minimum size
      See Also:
    • getPreferredSize

      public final Dimension getPreferredSize(IFigure container, int w, int h)
      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 interface LayoutManager
      Overrides:
      getPreferredSize in class AbstractLayout
      Parameters:
      container - The figure
      w - The width hint
      h - 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 interface LayoutManager
      Overrides:
      invalidate in class AbstractLayout
      See Also:
    • isSensitiveHorizontally

      protected boolean isSensitiveHorizontally(IFigure container)
      Returns whether this layout manager is sensitive to changes in the horizontal hint. By default, this method returns true.
      Parameters:
      container - the layout's container
      Returns:
      true if this layout is sensite to horizontal hint changes
    • isSensitiveVertically

      protected boolean isSensitiveVertically(IFigure container)
      Returns whether this layout manager is sensitive to changes in the vertical hint. By default, this method returns true.
      Parameters:
      container - the layout's container
      Returns:
      true if this layout is sensite to vertical hint changes