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
DockLayoutPanelinstead, 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 classDockPanel.DockLayoutConstantDockPanel layout constant, used inadd(Widget, DockPanel.DockLayoutConstant).(package private) static classDockPanel.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.DockLayoutConstantCENTERSpecifies that a widget be added at the center of the dock.static DockPanel.DockLayoutConstantEASTSpecifies that a widget be added at the east edge of the dock.static DockPanel.DockLayoutConstantLINE_ENDSpecifies that a widget be added at the end of the line direction for the layout.static DockPanel.DockLayoutConstantLINE_STARTSpecifies that a widget be added at the beginning of the line direction for the layout.static DockPanel.DockLayoutConstantNORTHSpecifies that a widget be added at the north edge of the dock.static DockPanel.DockLayoutConstantSOUTHSpecifies that a widget be added at the south edge of the dock.static DockPanel.DockLayoutConstantWESTSpecifies 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 voidadd(IsWidget widget, DockPanel.DockLayoutConstant direction)Overloaded version for IsWidget.voidadd(Widget widget, DockPanel.DockLayoutConstant direction)Adds a widget to the specified edge of the dock.HasHorizontalAlignment.HorizontalAlignmentConstantgetHorizontalAlignment()Gets the horizontal alignment.HasVerticalAlignment.VerticalAlignmentConstantgetVerticalAlignment()Gets the vertical alignment.DockPanel.DockLayoutConstantgetWidgetDirection(Widget w)Gets the layout direction of the given child widget.protected voidonEnsureDebugId(java.lang.String baseID)DockPanelsupports adding more than one cell in a direction, so an integer will be appended to the end of the debug id.booleanremove(Widget w)Removes a child widget.voidsetCellHeight(Widget w, java.lang.String height)Sets the height of the cell associated with the given widget, related to the panel as a whole.voidsetCellHorizontalAlignment(Widget w, HasHorizontalAlignment.HorizontalAlignmentConstant align)Sets the horizontal alignment of the given widget within its cell.voidsetCellVerticalAlignment(Widget w, HasVerticalAlignment.VerticalAlignmentConstant align)Sets the vertical alignment of the given widget within its cell.voidsetCellWidth(Widget w, java.lang.String width)Sets the width of the cell associated with the given widget, related to the panel as a whole.voidsetHorizontalAlignment(HasHorizontalAlignment.HorizontalAlignmentConstant align)Sets the default horizontal alignment to be used for widgets added to this panel.voidsetVerticalAlignment(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 theCENTERand 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:HasHorizontalAlignmentGets the horizontal alignment.- Specified by:
getHorizontalAlignmentin 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:HasVerticalAlignmentGets the vertical alignment.- Specified by:
getVerticalAlignmentin 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
nullif it is not a child of this panel
-
remove
public boolean remove(Widget w)
Description copied from class:PanelRemoves 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
falseif 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:
removein interfaceHasWidgets- Overrides:
removein classComplexPanel- Parameters:
w- the widget to be removed- Returns:
trueif 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:CellPanelSets the height of the cell associated with the given widget, related to the panel as a whole.- Overrides:
setCellHeightin 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:CellPanelSets the horizontal alignment of the given widget within its cell.- Overrides:
setCellHorizontalAlignmentin 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:CellPanelSets the vertical alignment of the given widget within its cell.- Overrides:
setCellVerticalAlignmentin 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:CellPanelSets the width of the cell associated with the given widget, related to the panel as a whole.- Overrides:
setCellWidthin 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:
setHorizontalAlignmentin 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:
setVerticalAlignmentin 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)
DockPanelsupports 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 aWidgetis added, so you must call this method after adding a newWidgetor 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:
onEnsureDebugIdin classUIObject- Parameters:
baseID- the base ID used by the main element- See Also:
UIObject.onEnsureDebugId(String)
-
-