com.google.gwt.user.client.ui
Class HorizontalSplitPanel

java.lang.Object
  extended by com.google.gwt.user.client.ui.UIObject
      extended by com.google.gwt.user.client.ui.Widget
          extended by com.google.gwt.user.client.ui.Panel
              extended by com.google.gwt.user.client.ui.HorizontalSplitPanel
All Implemented Interfaces:
EventListener, HasWidgets

public final class HorizontalSplitPanel
extends Panel

A panel that arranges two widgets in a single horizontal row and allows the user to interactively change the proportion of the width dedicated to each of the two widgets. Widgets contained within a HorizontalSplitPanel will be automatically decorated with scrollbars when necessary.

CSS Style Rules


Constructor Summary
HorizontalSplitPanel()
           
HorizontalSplitPanel(HorizontalSplitPanelImages images)
          Creates an empty horizontal split panel.
 
Method Summary
 void add(Widget w)
          Adds a child widget.
protected  Element getElement(int index)
          Gets the content element for the given index.
 Widget getLeftWidget()
          Gets the widget in the left side of the panel.
 Widget getRightWidget()
          Gets the widget in the right side of the panel.
protected  Element getSplitElement()
          Gets the element that is acting as the splitter.
protected  Widget getWidget(int index)
          Gets one of the contained widgets.
 boolean isResizing()
          Indicates whether the split panel is being resized.
 java.util.Iterator iterator()
          Gets an iterator for the contained widgets.
 void onBrowserEvent(Event event)
          Fired whenever a browser event is received.
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 setLeftWidget(Widget w)
          Sets the widget in the left side of the panel.
 void setRightWidget(Widget w)
          Sets the widget in the right side of the panel.
 void setSplitPosition(java.lang.String pos)
          Moves the position of the splitter.
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
getParent, isAttached, onAttach, onDetach, removeFromParent, setElement
 
Methods inherited from class com.google.gwt.user.client.ui.UIObject
addStyleDependentName, addStyleName, getAbsoluteLeft, getAbsoluteTop, getElement, getOffsetHeight, getOffsetWidth, getStyleElement, getStyleName, getStyleName, getStylePrimaryName, getStylePrimaryName, getTitle, isVisible, isVisible, removeStyleDependentName, removeStyleName, setHeight, setPixelSize, setSize, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setTitle, setVisible, setVisible, setWidth, sinkEvents, toString, unsinkEvents
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

HorizontalSplitPanel

public HorizontalSplitPanel()

HorizontalSplitPanel

public HorizontalSplitPanel(HorizontalSplitPanelImages images)
Creates an empty horizontal split panel.

Method Detail

getLeftWidget

public final Widget getLeftWidget()
Gets the widget in the left side of the panel.

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

getRightWidget

public final Widget getRightWidget()
Gets the widget in the right side of the panel.

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

setLeftWidget

public final void setLeftWidget(Widget w)
Sets the widget in the left side of the panel.

Parameters:
w - the widget

setRightWidget

public final void setRightWidget(Widget w)
Sets the widget in the right side of the panel.

Parameters:
w - the widget

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")

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 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