Class DockPanel
- java.lang.Object
-
- All Implemented Interfaces:
HasAttachHandlers
,HasHandlers
,EventListener
,HasAlignment
,HasHorizontalAlignment
,HasVerticalAlignment
,HasVisibility
,HasWidgets
,HasWidgets.ForIsWidget
,IndexedPanel
,IndexedPanel.ForIsWidget
,IsWidget
,java.lang.Iterable<Widget>
public class DockPanel extends CellPanel implements HasAlignment
A panel that lays its child widgets out "docked" at its outer edges, and allows its last widget to take up the remaining space in its center.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 aRootLayoutPanel
(as opposed to aRootPanel
).- See Also:
DockLayoutPanel
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DockPanel.DockLayoutConstant
DockPanel layout constant, used inadd(Widget, DockPanel.DockLayoutConstant)
.(package private) static class
DockPanel.LayoutData
-
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
Fields Modifier and Type Field Description static DockPanel.DockLayoutConstant
CENTER
Specifies that a widget be added at the center of the dock.static DockPanel.DockLayoutConstant
EAST
Specifies that a widget be added at the east edge of the dock.static DockPanel.DockLayoutConstant
LINE_END
Specifies that a widget be added at the end of the line direction for the layout.static DockPanel.DockLayoutConstant
LINE_START
Specifies that a widget be added at the beginning of the line direction for the layout.static DockPanel.DockLayoutConstant
NORTH
Specifies that a widget be added at the north edge of the dock.static DockPanel.DockLayoutConstant
SOUTH
Specifies that a widget be added at the south edge of the dock.static DockPanel.DockLayoutConstant
WEST
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
Constructors Constructor Description DockPanel()
Creates an empty dock panel.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
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.HasHorizontalAlignment.HorizontalAlignmentConstant
getHorizontalAlignment()
Gets the horizontal alignment.HasVerticalAlignment.VerticalAlignmentConstant
getVerticalAlignment()
Gets the vertical alignment.DockPanel.DockLayoutConstant
getWidgetDirection(Widget w)
Gets the layout direction of the given child widget.protected void
onEnsureDebugId(java.lang.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
remove(Widget w)
Removes a child widget.void
setCellHeight(Widget w, java.lang.String height)
Sets the height of the cell associated with the given widget, related to the panel as a whole.void
setCellHorizontalAlignment(Widget w, HasHorizontalAlignment.HorizontalAlignmentConstant align)
Sets the horizontal alignment of the given widget within its cell.void
setCellVerticalAlignment(Widget w, HasVerticalAlignment.VerticalAlignmentConstant align)
Sets the vertical alignment of the given widget within its cell.void
setCellWidth(Widget w, java.lang.String width)
Sets the width of the cell associated with the given widget, related to the panel as a whole.void
setHorizontalAlignment(HasHorizontalAlignment.HorizontalAlignmentConstant align)
Sets the default horizontal alignment to be used for widgets added to this panel.void
setVerticalAlignment(HasVerticalAlignment.VerticalAlignmentConstant align)
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
-
-
-
-
Field Detail
-
CENTER
public static final DockPanel.DockLayoutConstant CENTER
Specifies that a widget be added at the center of the dock.
-
LINE_START
public static final DockPanel.DockLayoutConstant LINE_START
Specifies that a widget be added at the beginning of the line direction for the layout.
-
LINE_END
public static final DockPanel.DockLayoutConstant LINE_END
Specifies that a widget be added at the end of the line direction for the layout.
-
EAST
public static final DockPanel.DockLayoutConstant EAST
Specifies that a widget be added at the east edge of the dock.
-
NORTH
public static final DockPanel.DockLayoutConstant NORTH
Specifies that a widget be added at the north edge of the dock.
-
SOUTH
public static final DockPanel.DockLayoutConstant SOUTH
Specifies that a widget be added at the south edge of the dock.
-
WEST
public static final DockPanel.DockLayoutConstant WEST
Specifies that a widget be added at the west edge of the dock.
-
-
Method Detail
-
add
public void add(Widget widget, DockPanel.DockLayoutConstant direction)
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:
java.lang.IllegalArgumentException
- when adding to theCENTER
and there is already a different widget there
-
add
public void add(IsWidget widget, DockPanel.DockLayoutConstant direction)
Overloaded version for IsWidget.- See Also:
add(Widget,DockLayoutConstant)
-
getHorizontalAlignment
public HasHorizontalAlignment.HorizontalAlignmentConstant 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
public HasVerticalAlignment.VerticalAlignmentConstant getVerticalAlignment()
Description copied from interface:HasVerticalAlignment
Gets the vertical alignment.- Specified by:
getVerticalAlignment
in interfaceHasVerticalAlignment
- Returns:
- the current vertical alignment.
-
getWidgetDirection
public DockPanel.DockLayoutConstant getWidgetDirection(Widget w)
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
public boolean remove(Widget w)
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
public void setCellHeight(Widget w, java.lang.String height)
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
public void setCellWidth(Widget w, java.lang.String width)
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
public void setHorizontalAlignment(HasHorizontalAlignment.HorizontalAlignmentConstant align)
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:
HasHorizontalAlignment.setHorizontalAlignment(HasHorizontalAlignment.HorizontalAlignmentConstant)
-
setVerticalAlignment
public void setVerticalAlignment(HasVerticalAlignment.VerticalAlignmentConstant align)
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:
HasVerticalAlignment.setVerticalAlignment(HasVerticalAlignment.VerticalAlignmentConstant)
-
onEnsureDebugId
protected void onEnsureDebugId(java.lang.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. 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:
UIObject.onEnsureDebugId(String)
-
-