# Interface ComponentWrapper

All Known Subinterfaces:
  `ContainerWrapper`

public interface ComponentWrapper

A class that wraps the important parts of a Component.

NOTE!.equals() and .hashcode() should be forwarded to the wrapped component. E.g.

        public int hashCode()
    {
    return getComponent().hashCode();
    }

    public final boolean equals(Object o)
    {
    if (o instanceof ComponentWrapper == false)
    return false;

    return getComponent().equals(((ComponentWrapper) o).getComponent());
    }

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `TYPE_BUTTON`
  `static final int`
  `TYPE_CHECK_BOX`
  `static final int`
  `TYPE_COMBO_BOX`
  `static final int`
  `TYPE_CONTAINER`
  `static final int`
  `TYPE_IMAGE`
  `static final int`
  `TYPE_LABEL`
  `static final int`
  `TYPE_LIST`
  `static final int`
  `TYPE_PANEL`
  `static final int`
  `TYPE_PROGRESS_BAR`
  `static final int`
  `TYPE_SCROLL_BAR`
  `static final int`
  `TYPE_SCROLL_PANE`
  `static final int`
  `TYPE_SEPARATOR`
  `static final int`
  `TYPE_SLIDER`
  `static final int`
  `TYPE_SPINNER`
  `static final int`
  `TYPE_TABBED_PANE`
  `static final int`
  `TYPE_TABLE`
  `static final int`
  `TYPE_TEXT_AREA`
  `static final int`
  `TYPE_TEXT_FIELD`
  `static final int`
  `TYPE_TREE`
  `static final int`
  `TYPE_UNKNOWN`
  `static final int`
  `TYPE_UNSET`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `getBaseline(int width, int height)`
  Returns the baseline for the component given the suggested height.
  `java.lang.Object`
  `getComponent()`
  Returns the actual object that this wrapper is aggregating.
  `int`
  `getComponentType(boolean disregardScrollPane)`
  Returns the type of component that this wrapper is wrapping.
  `int`
  `getContentBias()`
  Returns in what way the min/pref/max sizes relates to it's height or width for the current settings of the component (like wrapText).
  `int`
  `getHeight()`
  Returns the current height for this component.
  `int`
  `getHorizontalScreenDPI()`
  Returns the DPI (Dots Per Inch) of the screen the component is currently in or for the default screen if the component is not visible.
  `int`
  `getLayoutHashCode()`
  Returns a hash code that should be reasonably different for anything that might change the layout.
  `String`
  `getLinkId()`
  Returns a String id that can be used to reference the component in link constraints.
  `int`
  `getMaximumHeight(int wHint)`
  Returns the maximum height of the component.
  `int`
  `getMaximumWidth(int hHint)`
  Returns the maximum width of the component.
  `int`
  `getMinimumHeight(int wHint)`
  Returns the minimum height of the component.
  `int`
  `getMinimumWidth(int hHint)`
  Returns the minimum width of the component.
  `ContainerWrapper`
  `getParent()`
  Returns the container for this component.
  `float`
  `getPixelUnitFactor(boolean isHor)`
  Returns the pixel unit factor for the horizontal or vertical dimension.
  `int`
  `getPreferredHeight(int wHint)`
  Returns the preferred height of the component.
  `int`
  `getPreferredWidth(int hHint)`
  Returns the preferred width of the component.
  `int`
  `getScreenHeight()`
  Returns the pixel size of the screen that the component is currently in or for the default screen if the component is not visible or `null`.
  `int`
  `getScreenLocationX()`
  Returns the screen x-coordinate for the upper left coordinate of the component layout-able bounds.
  `int`
  `getScreenLocationY()`
  Returns the screen y-coordinate for the upper left coordinate of the component layout-able bounds.
  `int`
  `getScreenWidth()`
  Returns the pixel size of the screen that the component is currently in or for the default screen if the component is not visible or `null`.
  `int`
  `getVerticalScreenDPI()`
  Returns the DPI (Dots Per Inch) of the screen the component is currently in or for the default screen if the component is not visible.
  `int[]`
  `getVisualPadding()`
  Returns the padding on a component by component basis.
  `int`
  `getWidth()`
  Returns the current width for this component.
  `int`
  `getX()`
  Returns the current x coordinate for this component.
  `int`
  `getY()`
  Returns the current y coordinate for this component.
  `boolean`
  `hasBaseline()`
  Returns if the component has a baseline and if it can be retrieved.
  `boolean`
  `isVisible()`
  Returns if the component's visibility is set to `true`.
  `void`
  `paintDebugOutline(boolean showVisualPadding)`
  Paints component outline to indicate where it is.
  `void`
  `setBounds(int x, int y, int width, int height)`
  Sets the component's bounds.

- ## Field Details

  - ### TYPE_UNSET

    static final int TYPE_UNSET
    See Also:
      - Constant Field Values

  - ### TYPE_UNKNOWN

    static final int TYPE_UNKNOWN
    See Also:
      - Constant Field Values

  - ### TYPE_CONTAINER

    static final int TYPE_CONTAINER
    See Also:
      - Constant Field Values

  - ### TYPE_LABEL

    static final int TYPE_LABEL
    See Also:
      - Constant Field Values

  - ### TYPE_TEXT_FIELD

    static final int TYPE_TEXT_FIELD
    See Also:
      - Constant Field Values

  - ### TYPE_TEXT_AREA

    static final int TYPE_TEXT_AREA
    See Also:
      - Constant Field Values

  - ### TYPE_BUTTON

    static final int TYPE_BUTTON
    See Also:
      - Constant Field Values

  - ### TYPE_LIST

    static final int TYPE_LIST
    See Also:
      - Constant Field Values

  - ### TYPE_TABLE

    static final int TYPE_TABLE
    See Also:
      - Constant Field Values

  - ### TYPE_SCROLL_PANE

    static final int TYPE_SCROLL_PANE
    See Also:
      - Constant Field Values

  - ### TYPE_IMAGE

    static final int TYPE_IMAGE
    See Also:
      - Constant Field Values

  - ### TYPE_PANEL

    static final int TYPE_PANEL
    See Also:
      - Constant Field Values

  - ### TYPE_COMBO_BOX

    static final int TYPE_COMBO_BOX
    See Also:
      - Constant Field Values

  - ### TYPE_SLIDER

    static final int TYPE_SLIDER
    See Also:
      - Constant Field Values

  - ### TYPE_SPINNER

    static final int TYPE_SPINNER
    See Also:
      - Constant Field Values

  - ### TYPE_PROGRESS_BAR

    static final int TYPE_PROGRESS_BAR
    See Also:
      - Constant Field Values

  - ### TYPE_TREE

    static final int TYPE_TREE
    See Also:
      - Constant Field Values

  - ### TYPE_CHECK_BOX

    static final int TYPE_CHECK_BOX
    See Also:
      - Constant Field Values

  - ### TYPE_SCROLL_BAR

    static final int TYPE_SCROLL_BAR
    See Also:
      - Constant Field Values

  - ### TYPE_SEPARATOR

    static final int TYPE_SEPARATOR
    See Also:
      - Constant Field Values

  - ### TYPE_TABBED_PANE

    static final int TYPE_TABBED_PANE
    See Also:
      - Constant Field Values

- ## Method Details

  - ### getComponent

    java.lang.Object getComponent()

    Returns the actual object that this wrapper is aggregating. This might be needed for getting information about the object that the wrapper interface does not provide.

    If this is a container the container should be returned instead.

    ###### Returns

    The actual object that this wrapper is aggregating. Not `null`.

  - ### getX

    int getX()

    Returns the current x coordinate for this component.

    ###### Returns

    The current x coordinate for this component.

  - ### getY

    int getY()

    Returns the current y coordinate for this component.

    ###### Returns

    The current y coordinate for this component.

  - ### getWidth

    int getWidth()

    Returns the current width for this component.

    ###### Returns

    The current width for this component.

  - ### getHeight

    int getHeight()

    Returns the current height for this component.

    ###### Returns

    The current height for this component.

  - ### getScreenLocationX

    int getScreenLocationX()

    Returns the screen x-coordinate for the upper left coordinate of the component layout-able bounds.

    ###### Returns

    The screen x-coordinate for the upper left coordinate of the component layout-able bounds.

  - ### getScreenLocationY

    int getScreenLocationY()

    Returns the screen y-coordinate for the upper left coordinate of the component layout-able bounds.

    ###### Returns

    The screen y-coordinate for the upper left coordinate of the component layout-able bounds.

  - ### getMinimumWidth

    int getMinimumWidth(int hHint)

    Returns the minimum width of the component.

    ###### Parameters

    - `hHint`: @param hHint The Size hint for the other dimension. An implementation can use this value or the current size for the widget in this dimension, or a combination of both, to calculate the correct size.

    Use -1 to denote that there is no hint. This corresponds with SWT.DEFAULT.

    ###### Returns

    The minimum width of the component.

    ###### Since

    Since:
      3.5. Added the hint as a parameter knowing that a correction and recompilation is necessary for any implementing classes. This change was worth it though.

  - ### getMinimumHeight

    int getMinimumHeight(int wHint)

    Returns the minimum height of the component.

    ###### Parameters

    - `wHint`: @param wHint The Size hint for the other dimension. An implementation can use this value or the current size for the widget in this dimension, or a combination of both, to calculate the correct size.

    Use -1 to denote that there is no hint. This corresponds with SWT.DEFAULT.

    ###### Returns

    The minimum height of the component.

    ###### Since

    Since:
      3.5. Added the hint as a parameter knowing that a correction and recompilation is necessary for any implementing classes. This change was worth it though.

  - ### getPreferredWidth

    int getPreferredWidth(int hHint)

    Returns the preferred width of the component.

    ###### Parameters

    - `hHint`: @param hHint The Size hint for the other dimension. An implementation can use this value or the current size for the widget in this dimension, or a combination of both, to calculate the correct size.

    Use -1 to denote that there is no hint. This corresponds with SWT.DEFAULT.

    ###### Returns

    The preferred width of the component.

    ###### Since

    Since:
      3.5. Added the hint as a parameter knowing that a correction and recompilation is necessary for any implementing classes. This change was worth it though.

  - ### getPreferredHeight

    int getPreferredHeight(int wHint)

    Returns the preferred height of the component.

    ###### Parameters

    - `wHint`: @param wHint The Size hint for the other dimension. An implementation can use this value or the current size for the widget in this dimension, or a combination of both, to calculate the correct size.

    Use -1 to denote that there is no hint. This corresponds with SWT.DEFAULT.

    ###### Returns

    The preferred height of the component.

    ###### Since

    Since:
      3.5. Added the hint as a parameter knowing that a correction and recompilation is necessary for any implementing classes. This change was worth it though.

  - ### getMaximumWidth

    int getMaximumWidth(int hHint)

    Returns the maximum width of the component.

    ###### Parameters

    - `hHint`: @param hHint The Size hint for the other dimension. An implementation can use this value or the current size for the widget in this dimension, or a combination of both, to calculate the correct size.

    Use -1 to denote that there is no hint. This corresponds with SWT.DEFAULT.

    ###### Returns

    The maximum width of the component.

    ###### Since

    Since:
      3.5. Added the hint as a parameter knowing that a correction and recompilation is necessary for any implementing classes. This change was worth it though.

  - ### getMaximumHeight

    int getMaximumHeight(int wHint)

    Returns the maximum height of the component.

    ###### Parameters

    - `wHint`: @param wHint The Size hint for the other dimension. An implementation can use this value or the current size for the widget in this dimension, or a combination of both, to calculate the correct size.

    Use -1 to denote that there is no hint. This corresponds with SWT.DEFAULT.

    ###### Returns

    The maximum height of the component.

    ###### Since

    Since:
      3.5. Added the hint as a parameter knowing that a correction and recompilation is necessary for any implementing classes. This change was worth it though.

  - ### setBounds

    void setBounds(int x, int y, int width, int height)

    Sets the component's bounds.

    ###### Parameters

    - `x`: The x coordinate.

    - `y`: The y coordinate.

    - `width`: The width.

    - `height`: The height.

  - ### isVisible

    boolean isVisible()

    Returns if the component's visibility is set to `true`. This should not return if the component is actually visible, but if the visibility is set to true or not.

    ###### Returns

    `true` means visible.

  - ### getBaseline

    int getBaseline(int width, int height)

    Returns the baseline for the component given the suggested height.

    ###### Parameters

    - `width`: The width to calculate for if other than the current. If `-1` the current size should be used.

    - `height`: The height to calculate for if other than the current. If `-1` the current size should be used.

    ###### Returns

    The baseline from the top or -1 if not applicable.

  - ### hasBaseline

    boolean hasBaseline()

    Returns if the component has a baseline and if it can be retrieved. Should for instance return `false` for Swing before mustang.

    ###### Returns

    If the component has a baseline and if it can be retrieved.

  - ### getParent

    ContainerWrapper getParent()

    Returns the container for this component.

    ###### Returns

    The container for this component. Will return `null` if the component has no parent.

  - ### getPixelUnitFactor

    float getPixelUnitFactor(boolean isHor)

    Returns the pixel unit factor for the horizontal or vertical dimension.

    The factor is 1 for both dimensions on the normal font in a JPanel on Windows. The factor should increase with a bigger "X".

    This is the Swing version:

        Rectangle2D r = fm.getStringBounds("X", parent.getGraphics());
        wFactor = r.getWidth() / 6;
        hFactor = r.getHeight() / 13.27734375f;

    ###### Parameters

    - `isHor`: If it is the horizontal factor that should be returned.

    ###### Returns

    The factor.

  - ### getHorizontalScreenDPI

    int getHorizontalScreenDPI()

    Returns the DPI (Dots Per Inch) of the screen the component is currently in or for the default screen if the component is not visible.

    If headless mode `net.miginfocom.layout.PlatformDefaults#getDefaultDPI` will be returned.

    ###### Returns

    The DPI.

  - ### getVerticalScreenDPI

    int getVerticalScreenDPI()

    Returns the DPI (Dots Per Inch) of the screen the component is currently in or for the default screen if the component is not visible.

    If headless mode `net.miginfocom.layout.PlatformDefaults#getDefaultDPI` will be returned.

    ###### Returns

    The DPI.

  - ### getScreenWidth

    int getScreenWidth()

    Returns the pixel size of the screen that the component is currently in or for the default screen if the component is not visible or `null`.

    If in headless mode `1024` is returned.

    ###### Returns

    The screen size. E.g. `1280`.

  - ### getScreenHeight

    int getScreenHeight()

    Returns the pixel size of the screen that the component is currently in or for the default screen if the component is not visible or `null`.

    If in headless mode `768` is returned.

    ###### Returns

    The screen size. E.g. `1024`.

  - ### getLinkId

    String getLinkId()

    Returns a String id that can be used to reference the component in link constraints. This value should return the default id for the component. The id can be set for a component in the constraints and if so the value returned by this method will never be used. If there are no sensible id for the component `null` should be returned.

    For instance the Swing implementation returns the string returned from `Component.getName()`.

    ###### Returns

    The string link id or `null`.

  - ### getLayoutHashCode

    int getLayoutHashCode()

    Returns a hash code that should be reasonably different for anything that might change the layout. This value is used to know if the component layout needs to clear any caches.

    ###### Returns

    Returns:
      A hash code that should be reasonably different for anything that might change the layout. Returns -1 if the widget is disposed.

  - ### getVisualPadding

    int[] getVisualPadding()

    Returns the padding on a component by component basis. This method can be overridden to return padding to compensate for example for borders that have shadows or where the outer most pixel is not the visual "edge" to align to.

    Default implementation returns `null` for all components except for Windows XP's JTabbedPane which will return new Insets(0, 0, 2, 2).

    NOTE! To reduce generated garbage the returned padding should never be changed so that the same insets can be returned many times.

    ###### Returns

    Returns:
      `null` if no padding. NOTE! To reduce generated garbage the returned padding should never be changed so that the same insets can be returned many times. [top, left, bottom, right]

  - ### paintDebugOutline

    void paintDebugOutline(boolean showVisualPadding)

    Paints component outline to indicate where it is.

    ###### Parameters

    - `showVisualPadding`: If the visual padding should be shown in the debug drawing.

  - ### getComponentType

    int getComponentType(boolean disregardScrollPane)

    Returns the type of component that this wrapper is wrapping.

    This method can be invoked often so the result should be cached.

    ###### Parameters

    - `disregardScrollPane`: @param disregardScrollPane Is `true` any wrapping scroll pane should be disregarded and the type of the scrolled component should be returned.

    ###### Returns

    The type of component that this wrapper is wrapping. E.g. `#TYPE_LABEL`.

  - ### getContentBias

    int getContentBias()

    Returns in what way the min/pref/max sizes relates to it's height or width for the current settings of the component (like wrapText). If the min/pref/max height depends on it's width return `net.miginfocom.layout.LayoutUtil#HORIZONTAL` If the min/pref/max width depends on it's height (not common) return `net.miginfocom.layout.LayoutUtil#VERTICAL` If there is no connection between the preferred min/pref/max and the size of the component return -1.

    ###### Since

    5.0