## com.google.gwt.user.client.ui
Class VerticalSplitPanel

    java.lang.Object
      com.google.gwt.user.client.ui.UIObject
          com.google.gwt.user.client.ui.Widget
              com.google.gwt.user.client.ui.Panel
                  com.google.gwt.user.client.ui.VerticalSplitPanel

All Implemented Interfaces:
  HasHandlers, EventListener, HasWidgets, java.lang.Iterable<Widget>

    public final class VerticalSplitPanel

extends Panel

A panel that arranges two widgets in a single vertical column and allows the user to interactively change the proportion of the height dedicated to each of the two widgets. Widgets contained within a `VerticalSplitterPanel` will be automatically decorated with scrollbars when necessary.

### CSS Style Rules

- .gwt-VerticalSplitPanel { the panel itself }
- .gwt-VerticalSplitPanel vsplitter { the splitter }

Nested Class Summary

Nested classes/interfaces inherited from class com.google.gwt.user.client.ui.UIObject
`UIObject.DebugIdImpl, UIObject.DebugIdImplEnabled`

Field Summary

Fields inherited from class com.google.gwt.user.client.ui.UIObject
`DEBUG_ID_PREFIX`

Constructor Summary
`VerticalSplitPanel()`
`VerticalSplitPanel(VerticalSplitPanelImages images)` Creates an empty vertical split panel.

Method Summary
`void` | `add(Widget w)` Adds a child widget.
`Widget` | `getBottomWidget()` Gets the widget in the bottom of the panel.
`protected Element` | `getElement(int index)` Gets the content element for the given index.
`protected Element` | `getSplitElement()` Gets the element that is acting as the splitter.
`Widget` | `getTopWidget()` Gets the widget in the top of the panel.
`protected Widget` | `getWidget(int index)` Gets one of the contained widgets.
`boolean` | `isResizing()` Indicates whether the split panel is being resized.
`java.util.Iterator<Widget>` | `iterator()` Gets an iterator for the contained widgets.
`void` | `onBrowserEvent(Event event)` Fired whenever a browser event is received.
`protected void` | `onEnsureDebugId(java.lang.String baseID)` Affected Elements: -splitter = the container containing the splitter element. -top = the container above the splitter. -bottom = the container below the splitter.
`protected void` | `onLoad()` A Panel's onLoad method will be called after all of its children are attached.
`protected void` | `onUnload()` A Panel's onUnload method will be called before its children become detached themselves.
`boolean` | `remove(Widget widget)` Removes a child widget.
`void` | `setBottomWidget(Widget w)` Sets the widget in the bottom of the panel.
`void` | `setHeight(java.lang.String height)` Sets the object's height.
`void` | `setSplitPosition(java.lang.String pos)` Moves the position of the splitter.
`void` | `setTopWidget(Widget w)` Sets the widget in the top of the panel.
`protected void` | `setWidget(int index, Widget w)` Sets one of the contained widgets.

Methods inherited from class com.google.gwt.user.client.ui.Panel
`adopt, adopt, clear, disown, doAttachChildren, doDetachChildren, orphan`

Methods inherited from class com.google.gwt.user.client.ui.Widget
`addDomHandler, addHandler, delegateEvent, fireEvent, getHandlerCount, getParent, isAttached, isOrWasAttached, onAttach, onDetach, removeFromParent, sinkEvents`

Methods inherited from class com.google.gwt.user.client.ui.UIObject

`addStyleDependentName, addStyleName, ensureDebugId, ensureDebugId, ensureDebugId, getAbsoluteLeft, getAbsoluteTop, getElement, getOffsetHeight, getOffsetWidth, getStyleElement, getStyleName, getStyleName, getStylePrimaryName, getStylePrimaryName, getTitle, isVisible, isVisible, removeStyleDependentName, removeStyleName, setElement, setElement, setPixelSize, setSize, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setTitle, setVisible, setVisible, setWidth, toString, unsinkEvents`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### VerticalSplitPanel

    public VerticalSplitPanel()

### VerticalSplitPanel

    public VerticalSplitPanel(VerticalSplitPanelImages images)

  Creates an empty vertical split panel.

Method Detail

### getBottomWidget

    public final Widget getBottomWidget()

  Gets the widget in the bottom of the panel.

  Returns:
    the widget, `null` if there is not one

### getTopWidget

    public final Widget getTopWidget()

  Gets the widget in the top of the panel.

  Returns:
    the widget, `null` if there is not one

### setBottomWidget

    public final void setBottomWidget(Widget w)

  Sets the widget in the bottom of the panel.

  Parameters:
    `w` - the widget

### setHeight

    public void setHeight(java.lang.String height)

  Description copied from class: `UIObject`
  Sets the object's height. This height does not include decorations such as border, margin, and padding.

  Overrides:
    `setHeight` in class `UIObject`
  Parameters:
    `height` - the object's new height, in CSS units (e.g. "10px", "1em")

### setSplitPosition

    public final void setSplitPosition(java.lang.String pos)

  Moves the position of the splitter.

  Parameters:
    `pos` - the new size of the left region in CSS units (e.g. "10px", "1em")

### setTopWidget

    public final void setTopWidget(Widget w)

  Sets the widget in the top of the panel.

  Parameters:
    `w` - the widget

### onEnsureDebugId

    protected void onEnsureDebugId(java.lang.String baseID)

  Affected Elements:
  - -splitter = the container containing the splitter element.
  - -top = the container above the splitter.
  - -bottom = the container below the splitter.

  Parameters:
    `baseID` - the base ID used by the main element
  See Also:
    `UIObject.onEnsureDebugId(String)`

### onLoad

    protected void onLoad()

  Description copied from class: `Panel`
  A Panel's onLoad method will be called after all of its children are attached.

  Overrides:
    `onLoad` in class `Panel`
  See Also:
    `Widget.onLoad()`

### onUnload

    protected void onUnload()

  Description copied from class: `Panel`
  A Panel's onUnload method will be called before its children become detached themselves.

  Overrides:
    `onUnload` in class `Panel`
  See Also:
    `Widget.onLoad()`

### add

    public void add(Widget w)

  Description copied from class: `Panel`
  Adds a child widget.

  How to Override this Method

  There are several important things that must take place in the correct order to properly add or insert a Widget to a Panel. Not all of these steps will be relevant to every Panel, but all of the steps must be considered.

  1. Validate: Perform any sanity checks to ensure the Panel can accept a new Widget. Examples: checking for a valid index on insertion; checking that the Panel is not full if there is a max capacity.
  2. Adjust for Reinsertion: Some Panels need to handle the case where the Widget is already a child of this Panel. Example: when performing a reinsert, the index might need to be adjusted to account for the Widget's removal. See `ComplexPanel.adjustIndex(Widget, int)`.
  3. Detach Child: Remove the Widget from its existing parent, if any. Most Panels will simply call `Widget.removeFromParent()` on the Widget.
  4. Logical Attach: Any state variables of the Panel should be updated to reflect the addition of the new Widget. Example: the Widget is added to the Panel's `WidgetCollection` at the appropriate index.
  5. Physical Attach: The Widget's Element must be physically attached to the Panel's Element, either directly or indirectly.
  6. Adopt: Call `Panel.adopt(Widget)` to finalize the add as the very last step.

  Specified by:
    `add` in interface `HasWidgets`
  Overrides:
    `add` in class `Panel`
  Parameters:
    `w` - the widget to be added
  See Also:
    `HasWidgets.add(Widget)`

### isResizing

    public boolean isResizing()

  Indicates whether the split panel is being resized.

  Returns:
    `true` if the user is dragging the splitter, `false` otherwise

### iterator

    public java.util.Iterator<Widget> iterator()

  Description copied from interface: `HasWidgets`
  Gets an iterator for the contained widgets. This iterator is required to implement `Iterator.remove()`.

### onBrowserEvent

    public void onBrowserEvent(Event event)

  Description copied from interface: `EventListener`
  Fired whenever a browser event is received.

  Specified by:
    `onBrowserEvent` in interface `EventListener`
  Overrides:
    `onBrowserEvent` in class `Widget`
  Parameters:
    `event` - the event received

### remove

    public boolean remove(Widget widget)

  Description copied from class: `Panel`
  Removes a child widget.

  How to Override this Method

  There are several important things that must take place in the correct order to properly remove a Widget from a Panel. Not all of these steps will be relevant to every Panel, but all of the steps must be considered.

  1. Validate: Make sure this Panel is actually the parent of the child Widget; return `false` if it is not.
  2. Orphan: Call `Panel.orphan(Widget)` first while the child Widget is still attached.
  3. Physical Detach: Adjust the DOM to account for the removal of the child Widget. The Widget's Element must be physically removed from the DOM.
  4. Logical Detach: Update the Panel's state variables to reflect the removal of the child Widget. Example: the Widget is removed from the Panel's `WidgetCollection`.

  Specified by:
    `remove` in interface `HasWidgets`
  Specified by:
    `remove` in class `Panel`
  Parameters:
    `widget` - the widget to be removed
  Returns:
    `true` if the child was present

### getElement

    protected Element getElement(int index)

  Gets the content element for the given index.

  Parameters:
    `index` - the index of the element, only 0 and 1 are valid.
  Returns:
    the element

### getSplitElement

    protected Element getSplitElement()

  Gets the element that is acting as the splitter.

  Returns:
    the element

### getWidget

    protected Widget getWidget(int index)

  Gets one of the contained widgets.

  Parameters:
    `index` - the index of the widget, only 0 and 1 are valid.
  Returns:
    the widget

### setWidget

    protected final void setWidget(int index,
                                   Widget w)

  Sets one of the contained widgets.

  Parameters:
    `index` - the index, only 0 and 1 are valid
    `w` - the widget