Class DockPanel
- All Implemented Interfaces:
HasAttachHandlers
,HasHandlers
,EventListener
,HasAlignment
,HasHorizontalAlignment
,HasVerticalAlignment
,HasVisibility
,HasWidgets
,HasWidgets.ForIsWidget
,IndexedPanel
,IndexedPanel.ForIsWidget
,IsWidget
,Iterable<Widget>
This widget has limitations in standards mode that did not exist in quirks
mode. The child Widgets contained within a DockPanel cannot be sized using
percentages. Setting a child widget's height to 100%
will
NOT cause the child to fill the available height.
If you need to work around these limitations, use DockLayoutPanel
instead, but understand that it is not a drop in replacement for this class.
It requires standards mode, and is most easily used under a
RootLayoutPanel
(as opposed to a RootPanel
).
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
DockPanel layout constant, used inadd(Widget, DockPanel.DockLayoutConstant)
.(package private) static class
Nested classes/interfaces inherited from class com.google.gwt.user.client.ui.UIObject
UIObject.DebugIdImpl, UIObject.DebugIdImplEnabled
Nested classes/interfaces inherited from interface com.google.gwt.user.client.ui.HasHorizontalAlignment
HasHorizontalAlignment.AutoHorizontalAlignmentConstant, HasHorizontalAlignment.HorizontalAlignmentConstant
Nested classes/interfaces inherited from interface com.google.gwt.user.client.ui.HasVerticalAlignment
HasVerticalAlignment.VerticalAlignmentConstant
Nested classes/interfaces inherited from interface com.google.gwt.user.client.ui.HasWidgets
HasWidgets.ForIsWidget
Nested classes/interfaces inherited from interface com.google.gwt.user.client.ui.IndexedPanel
IndexedPanel.ForIsWidget
-
Field Summary
Modifier and TypeFieldDescriptionstatic final DockPanel.DockLayoutConstant
Specifies that a widget be added at the center of the dock.static final DockPanel.DockLayoutConstant
Specifies that a widget be added at the east edge of the dock.static final DockPanel.DockLayoutConstant
Specifies that a widget be added at the end of the line direction for the layout.static final DockPanel.DockLayoutConstant
Specifies that a widget be added at the beginning of the line direction for the layout.static final DockPanel.DockLayoutConstant
Specifies that a widget be added at the north edge of the dock.static final DockPanel.DockLayoutConstant
Specifies that a widget be added at the south edge of the dock.static final DockPanel.DockLayoutConstant
Specifies that a widget be added at the west edge of the dock.Fields inherited from class com.google.gwt.user.client.ui.Widget
eventsToSink
Fields inherited from class com.google.gwt.user.client.ui.UIObject
DEBUG_ID_PREFIX, MISSING_ELEMENT_ERROR, SETELEMENT_TWICE_ERROR
Fields inherited from interface com.google.gwt.user.client.ui.HasHorizontalAlignment
ALIGN_CENTER, ALIGN_DEFAULT, ALIGN_JUSTIFY, ALIGN_LEFT, ALIGN_LOCALE_END, ALIGN_LOCALE_START, ALIGN_RIGHT
Fields inherited from interface com.google.gwt.user.client.ui.HasVerticalAlignment
ALIGN_BOTTOM, ALIGN_MIDDLE, ALIGN_TOP
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
add
(IsWidget widget, DockPanel.DockLayoutConstant direction) Overloaded version for IsWidget.void
add
(Widget widget, DockPanel.DockLayoutConstant direction) Adds a widget to the specified edge of the dock.Gets the horizontal alignment.Gets the vertical alignment.Gets the layout direction of the given child widget.protected void
onEnsureDebugId
(String baseID) DockPanel
supports adding more than one cell in a direction, so an integer will be appended to the end of the debug id.boolean
Removes a child widget.void
setCellHeight
(Widget w, String height) Sets the height of the cell associated with the given widget, related to the panel as a whole.void
Sets the horizontal alignment of the given widget within its cell.void
Sets the vertical alignment of the given widget within its cell.void
setCellWidth
(Widget w, String width) Sets the width of the cell associated with the given widget, related to the panel as a whole.void
Sets the default horizontal alignment to be used for widgets added to this panel.void
Sets the default vertical alignment to be used for widgets added to this panel.Methods inherited from class com.google.gwt.user.client.ui.CellPanel
getBody, getSpacing, getTable, getWidgetTd, setBorderWidth, setCellHeight, setCellHorizontalAlignment, setCellHorizontalAlignment, setCellHorizontalAlignment, setCellVerticalAlignment, setCellVerticalAlignment, setCellVerticalAlignment, setCellWidth, setSpacing
Methods inherited from class com.google.gwt.user.client.ui.ComplexPanel
add, add, adjustIndex, checkIndexBoundsForAccess, checkIndexBoundsForInsertion, doLogicalClear, getChildren, getWidget, getWidgetCount, getWidgetIndex, getWidgetIndex, insert, insert, iterator, remove
Methods inherited from class com.google.gwt.user.client.ui.Panel
add, add, adopt, clear, doAttachChildren, doDetachChildren, orphan, remove
Methods inherited from class com.google.gwt.user.client.ui.Widget
addAttachHandler, addBitlessDomHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, ensureHandlers, fireEvent, getHandlerCount, getHandlerManager, getLayoutData, getParent, isAttached, isOrWasAttached, onAttach, onBrowserEvent, onDetach, onLoad, onUnload, removeFromParent, replaceElement, setLayoutData, setParent, sinkEvents, unsinkEvents
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, resolvePotentialElement, setElement, setElement, setHeight, setPixelSize, setSize, setStyleDependentName, setStyleName, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setTitle, setVisible, setVisible, setWidth, sinkBitlessEvent, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
CENTER
Specifies that a widget be added at the center of the dock. -
LINE_START
Specifies that a widget be added at the beginning of the line direction for the layout. -
LINE_END
Specifies that a widget be added at the end of the line direction for the layout. -
EAST
Specifies that a widget be added at the east edge of the dock. -
NORTH
Specifies that a widget be added at the north edge of the dock. -
SOUTH
Specifies that a widget be added at the south edge of the dock. -
WEST
Specifies that a widget be added at the west edge of the dock.
-
-
Constructor Details
-
DockPanel
public DockPanel()Creates an empty dock panel.
-
-
Method Details
-
add
Adds a widget to the specified edge of the dock. If the widget is already a child of this panel, this method behaves as thoughremove(Widget)
had already been called.- Parameters:
widget
- the widget to be addeddirection
- the widget's direction in the dock- Throws:
IllegalArgumentException
- when adding to theCENTER
and there is already a different widget there
-
add
Overloaded version for IsWidget.- See Also:
-
getHorizontalAlignment
Description copied from interface:HasHorizontalAlignment
Gets the horizontal alignment.- Specified by:
getHorizontalAlignment
in interfaceHasHorizontalAlignment
- Returns:
- the current horizontal alignment (
HasHorizontalAlignment.ALIGN_LEFT
,HasHorizontalAlignment.ALIGN_CENTER
,HasHorizontalAlignment.ALIGN_RIGHT
,HasHorizontalAlignment.ALIGN_JUSTIFY
, or null).
-
getVerticalAlignment
Description copied from interface:HasVerticalAlignment
Gets the vertical alignment.- Specified by:
getVerticalAlignment
in interfaceHasVerticalAlignment
- Returns:
- the current vertical alignment.
-
getWidgetDirection
Gets the layout direction of the given child widget.- Parameters:
w
- the widget to be queried- Returns:
- the widget's layout direction, or
null
if it is not a child of this panel
-
remove
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.
- Validate: Make sure this Panel is actually the parent of the
child Widget; return
false
if it is not. - Orphan: Call
Panel.orphan(Widget)
first while the child Widget is still attached. - 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.
- 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 interfaceHasWidgets
- Overrides:
remove
in classComplexPanel
- Parameters:
w
- the widget to be removed- Returns:
true
if the child was present
- Validate: Make sure this Panel is actually the parent of the
child Widget; return
-
setCellHeight
Description copied from class:CellPanel
Sets the height of the cell associated with the given widget, related to the panel as a whole.- Overrides:
setCellHeight
in classCellPanel
- Parameters:
w
- the widget whose cell height is to be setheight
- the cell's height, in CSS units
-
setCellHorizontalAlignment
public void setCellHorizontalAlignment(Widget w, HasHorizontalAlignment.HorizontalAlignmentConstant align) Description copied from class:CellPanel
Sets the horizontal alignment of the given widget within its cell.- Overrides:
setCellHorizontalAlignment
in classCellPanel
- Parameters:
w
- the widget whose horizontal alignment is to be setalign
- the widget's horizontal alignment, as defined inHasHorizontalAlignment
.
-
setCellVerticalAlignment
public void setCellVerticalAlignment(Widget w, HasVerticalAlignment.VerticalAlignmentConstant align) Description copied from class:CellPanel
Sets the vertical alignment of the given widget within its cell.- Overrides:
setCellVerticalAlignment
in classCellPanel
- Parameters:
w
- the widget whose vertical alignment is to be setalign
- the widget's vertical alignment, as defined inHasVerticalAlignment
.
-
setCellWidth
Description copied from class:CellPanel
Sets the width of the cell associated with the given widget, related to the panel as a whole.- Overrides:
setCellWidth
in classCellPanel
- Parameters:
w
- the widget whose cell width is to be setwidth
- the cell's width, in CSS units
-
setHorizontalAlignment
Sets the default horizontal alignment to be used for widgets added to this panel. It only applies to widgets added after this property is set.- Specified by:
setHorizontalAlignment
in interfaceHasHorizontalAlignment
- Parameters:
align
- the horizontal alignment (HasHorizontalAlignment.ALIGN_LEFT
,HasHorizontalAlignment.ALIGN_CENTER
,HasHorizontalAlignment.ALIGN_RIGHT
,HasHorizontalAlignment.ALIGN_JUSTIFY
,HasHorizontalAlignment.ALIGN_LOCALE_START
, orHasHorizontalAlignment.ALIGN_LOCALE_END
).- See Also:
-
setVerticalAlignment
Sets the default vertical alignment to be used for widgets added to this panel. It only applies to widgets added after this property is set.- Specified by:
setVerticalAlignment
in interfaceHasVerticalAlignment
- Parameters:
align
- the vertical alignment (HasVerticalAlignment.ALIGN_TOP
,HasVerticalAlignment.ALIGN_MIDDLE
, orHasVerticalAlignment.ALIGN_BOTTOM
).- See Also:
-
onEnsureDebugId
DockPanel
supports adding more than one cell in a direction, so an integer will be appended to the end of the debug id. For example, the first north cell is labeled "north1", the second is "north2", and the third is "north3". This widget recreates its structure every time aWidget
is added, so you must call this method after adding a newWidget
or all debug IDs will be lost.Affected Elements:
- -center = the center cell.
- -north# = the northern cell.
- -south# = the southern cell.
- -east# = the eastern cell.
- -west# = the western cell.
- Overrides:
onEnsureDebugId
in classUIObject
- Parameters:
baseID
- the base ID used by the main element- See Also:
-