Class LayoutCache


  • public class LayoutCache
    extends Object
    Caches the preferred sizes of an array of controls
    Since:
    3.0
    • Constructor Detail

      • LayoutCache

        public LayoutCache()
        Creates an empty layout cache
      • LayoutCache

        public LayoutCache​(Control[] controls)
        Creates a cache for the given array of controls
        Parameters:
        controls - controls to cache
    • Method Detail

      • getCache

        public SizeCache getCache​(int idx)
        Returns the size cache for the given control
        Parameters:
        idx - control's index
        Returns:
        the size cache for the given control
      • setControls

        public void setControls​(Control[] controls)
        Sets the controls that are being cached here. If these are the same controls that were used last time, this method does nothing. Otherwise, the cache is flushed and a new cache is created for the new controls.
        Parameters:
        controls - new controls to cache
      • computeSize

        public Point computeSize​(int controlIndex,
                                 int widthHint,
                                 int heightHint)
        Computes the preferred size of the nth control
        Parameters:
        controlIndex - index of the control whose size will be computed
        widthHint - width of the control (or SWT.DEFAULT if unknown)
        heightHint - height of the control (or SWT.DEFAULT if unknown)
        Returns:
        the preferred size of the control
      • flush

        public void flush​(int controlIndex)
        Flushes the cache for the given control. This should be called if exactly one of the controls has changed but the remaining controls remain unmodified
        Parameters:
        controlIndex - index of control to flush
      • flush

        public void flush()
        Flushes the cache.