public class StackLayoutPanel extends ResizeComposite implements HasWidgets, ProvidesResize, IndexedPanel.ForIsWidget, AnimatedLayout, HasBeforeSelectionHandlers<java.lang.Integer>, HasSelectionHandlers<java.lang.Integer>
This widget will only work in standards mode, which requires that the HTML page in which it is run have an explicit <!DOCTYPE> declaration.
public class StackLayoutPanelExample implements EntryPoint {
public void onModuleLoad() {
// Create a three-item stack, with headers sized in EMs.
StackLayoutPanel p = new StackLayoutPanel(Unit.EM);
p.add(new HTML("this"), new HTML("[this]"), 4);
p.add(new HTML("that"), new HTML("[that]"), 4);
p.add(new HTML("the other"), new HTML("[the other]"), 4);
// Attach the LayoutPanel to the RootLayoutPanel. The latter will listen for
// resize events on the window to ensure that its children are informed of
// possible size changes.
RootLayoutPanel rp = RootLayoutPanel.get();
rp.add(p);
}
}
A StackLayoutPanel element in a
UiBinder template may have a
unit attribute with a
Style.Unit value (it defaults to
PX).
The children of a StackLayoutPanel element are laid out in <g:stack>
elements. Each stack can have one widget child and one of two types of header
elements. A <g:header> element can hold html, or a <g:customHeader>
element can hold a widget. (Note that the tags of the header elements are not
capitalized. This is meant to signal that the head is not a runtime object,
and so cannot have a ui:field attribute.)
For example:
<g:StackLayoutPanel unit='PX'>
<g:stack>
<g:header size='3'><b>HTML</b> header</g:header>
<g:Label>able</g:Label>
</g:stack>
<g:stack>
<g:customHeader size='3'>
<g:Label>Custom header</g:Label>
</g:customHeader>
<g:Label>baker</g:Label>
</g:stack>
</g:StackLayoutPanel>
UIObject.DebugIdImpl, UIObject.DebugIdImplEnabledHasWidgets.ForIsWidgeteventsToSinkDEBUG_ID_PREFIX, MISSING_ELEMENT_ERROR, SETELEMENT_TWICE_ERROR| Constructor and Description |
|---|
StackLayoutPanel(Style.Unit unit)
Creates an empty stack panel.
|
| Modifier and Type | Method and Description |
|---|---|
void |
add(IsWidget widget,
IsWidget header,
double headerSize)
Overloaded version for IsWidget.
|
void |
add(IsWidget widget,
java.lang.String header,
boolean asHtml,
double headerSize)
Overloaded version for IsWidget.
|
void |
add(Widget w)
Adds a child widget.
|
void |
add(Widget widget,
SafeHtml header,
double headerSize)
Adds a child widget to this stack, along with a widget representing the
stack header.
|
void |
add(Widget widget,
java.lang.String header,
boolean asHtml,
double headerSize)
Adds a child widget to this stack, along with a widget representing the
stack header.
|
void |
add(Widget widget,
java.lang.String header,
double headerSize)
Adds a child widget to this stack, along with a widget representing the
stack header.
|
void |
add(Widget widget,
Widget header,
double headerSize)
Adds a child widget to this stack, along with a widget representing the
stack header.
|
HandlerRegistration |
addBeforeSelectionHandler(BeforeSelectionHandler<java.lang.Integer> handler)
Adds a
BeforeSelectionEvent handler. |
HandlerRegistration |
addSelectionHandler(SelectionHandler<java.lang.Integer> handler)
Adds a
SelectionEvent handler. |
void |
animate(int duration)
Layout children, animating over the specified period of time.
|
void |
animate(int duration,
Layout.AnimationCallback callback)
Layout children, animating over the specified period of time.
|
void |
clear()
Removes all child widgets.
|
void |
forceLayout()
Layout children immediately.
|
int |
getAnimationDuration()
Get the duration of the animated transition between children.
|
Widget |
getHeaderWidget(int index)
Gets the widget in the stack header at the given index.
|
Widget |
getHeaderWidget(Widget child)
Gets the widget in the stack header associated with the given child widget.
|
int |
getVisibleIndex()
Gets the currently-selected index.
|
Widget |
getVisibleWidget()
Gets the currently-selected widget.
|
Widget |
getWidget(int index)
Gets the child widget at the specified index.
|
int |
getWidgetCount()
Gets the number of child widgets in this panel.
|
int |
getWidgetIndex(IsWidget child) |
int |
getWidgetIndex(Widget child)
Gets the index of the specified child widget.
|
void |
insert(Widget child,
SafeHtml html,
double headerSize,
int beforeIndex)
Inserts a widget into the panel.
|
void |
insert(Widget child,
java.lang.String text,
boolean asHtml,
double headerSize,
int beforeIndex)
Inserts a widget into the panel.
|
void |
insert(Widget child,
java.lang.String text,
double headerSize,
int beforeIndex)
Inserts a widget into the panel.
|
void |
insert(Widget child,
Widget header,
double headerSize,
int beforeIndex)
Inserts a widget into the panel.
|
java.util.Iterator<Widget> |
iterator()
Gets an iterator for the contained widgets.
|
protected void |
onLoad()
This method is called immediately after a widget becomes attached to the
browser's document.
|
void |
onResize()
This method must be called whenever the implementor's size has been
modified.
|
boolean |
remove(int index)
Removes the widget at the specified index.
|
boolean |
remove(Widget child)
Removes a child widget.
|
void |
setAnimationDuration(int duration)
Set the duration of the animated transition between children.
|
void |
setHeaderHTML(int index,
SafeHtml html)
Sets a stack header's HTML contents.
|
void |
setHeaderHTML(int index,
java.lang.String html)
Sets a stack header's HTML contents.
|
void |
setHeaderText(int index,
java.lang.String text)
Sets a stack header's text contents.
|
void |
showWidget(int index)
Shows the widget at the specified index and fires events.
|
void |
showWidget(int index,
boolean fireEvents)
Shows the widget at the specified index.
|
void |
showWidget(Widget child)
Shows the specified widget and fires events.
|
void |
showWidget(Widget child,
boolean fireEvents)
Shows the specified widget.
|
initWidgetclaimElement, getWidget, initializeClaimedElement, isAttached, onAttach, onBrowserEvent, onDetach, render, render, resolvePotentialElement, setWidgetaddAttachHandler, addBitlessDomHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, doAttachChildren, doDetachChildren, ensureHandlers, fireEvent, getHandlerCount, getHandlerManager, getLayoutData, getParent, isOrWasAttached, onUnload, removeFromParent, replaceElement, setLayoutData, setParent, sinkEvents, unsinkEventsaddStyleDependentName, addStyleName, ensureDebugId, ensureDebugId, ensureDebugId, getAbsoluteLeft, getAbsoluteTop, getElement, getOffsetHeight, getOffsetWidth, getStyleElement, getStyleName, getStyleName, getStylePrimaryName, getStylePrimaryName, getTitle, isVisible, isVisible, onEnsureDebugId, removeStyleDependentName, removeStyleName, setElement, setElement, setHeight, setPixelSize, setSize, setStyleDependentName, setStyleName, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setTitle, setVisible, setVisible, setWidth, sinkBitlessEvent, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitfireEventpublic StackLayoutPanel(Style.Unit unit)
unit - the unit to be used for layoutpublic void add(Widget w)
HasWidgetsadd in interface HasWidgetsw - the widget to be addedpublic void add(Widget widget, SafeHtml header, double headerSize)
widget - the child widget to be addedheader - the html to be shown on its headerheaderSize - the size of the header widgetpublic void add(Widget widget, java.lang.String header, boolean asHtml, double headerSize)
widget - the child widget to be addedheader - the text to be shown on its headerasHtml - true to treat the specified text as HTMLheaderSize - the size of the header widgetpublic void add(IsWidget widget, java.lang.String header, boolean asHtml, double headerSize)
add(Widget,String,boolean,double)public void add(Widget widget, java.lang.String header, double headerSize)
widget - the child widget to be addedheader - the text to be shown on its headerheaderSize - the size of the header widgetpublic void add(Widget widget, Widget header, double headerSize)
widget - the child widget to be addedheader - the header widgetheaderSize - the size of the header widgetpublic void add(IsWidget widget, IsWidget header, double headerSize)
add(Widget,Widget,double)public HandlerRegistration addBeforeSelectionHandler(BeforeSelectionHandler<java.lang.Integer> handler)
HasBeforeSelectionHandlersBeforeSelectionEvent handler.addBeforeSelectionHandler in interface HasBeforeSelectionHandlers<java.lang.Integer>handler - the handlerpublic HandlerRegistration addSelectionHandler(SelectionHandler<java.lang.Integer> handler)
HasSelectionHandlersSelectionEvent handler.addSelectionHandler in interface HasSelectionHandlers<java.lang.Integer>handler - the handlerpublic void animate(int duration)
AnimatedLayoutanimate in interface AnimatedLayoutduration - the animation duration, in millisecondspublic void animate(int duration,
Layout.AnimationCallback callback)
AnimatedLayoutThis method provides a callback that will be informed of animation updates. This can be used to create more complex animation effects.
animate in interface AnimatedLayoutduration - the animation duration, in millisecondscallback - the animation callbackpublic void clear()
HasWidgetsclear in interface HasWidgetspublic void forceLayout()
AnimatedLayout
This is not normally necessary, unless you want to update child widgets'
positions explicitly to create a starting point for a subsequent call to
AnimatedLayout.animate(int).
forceLayout in interface AnimatedLayoutAnimatedLayout.animate(int),
AnimatedLayout.animate(int, Layout.AnimationCallback)public int getAnimationDuration()
public Widget getHeaderWidget(int index)
index - the index of the stack header to be retrievedpublic Widget getHeaderWidget(Widget child)
child - the child whose stack header is to be retrievedpublic int getVisibleIndex()
-1 if none is selectedpublic Widget getVisibleWidget()
null if none existpublic Widget getWidget(int index)
IndexedPanelgetWidget in interface IndexedPanelindex - the child widget's indexpublic int getWidgetCount()
IndexedPanelgetWidgetCount in interface IndexedPanelpublic int getWidgetIndex(IsWidget child)
getWidgetIndex in interface IndexedPanel.ForIsWidgetpublic int getWidgetIndex(Widget child)
IndexedPanelgetWidgetIndex in interface IndexedPanelchild - the widget to be found-1 if it is not a child of this
panelpublic void insert(Widget child, SafeHtml html, double headerSize, int beforeIndex)
child - the widget to be addedhtml - the safe html to be shown on its headerheaderSize - the size of the header widgetbeforeIndex - the index before which it will be insertedpublic void insert(Widget child, java.lang.String text, boolean asHtml, double headerSize, int beforeIndex)
child - the widget to be addedtext - the text to be shown on its headerasHtml - true to treat the specified text as HTMLheaderSize - the size of the header widgetbeforeIndex - the index before which it will be insertedpublic void insert(Widget child, java.lang.String text, double headerSize, int beforeIndex)
child - the widget to be addedtext - the text to be shown on its headerheaderSize - the size of the header widgetbeforeIndex - the index before which it will be insertedpublic void insert(Widget child, Widget header, double headerSize, int beforeIndex)
child - the widget to be addedheader - the widget to be placed in the associated headerheaderSize - the size of the header widgetbeforeIndex - the index before which it will be insertedpublic java.util.Iterator<Widget> iterator()
HasWidgetsIterator.remove().iterator in interface HasWidgetsiterator in interface java.lang.Iterable<Widget>public void onResize()
RequiresResizeonResize in interface RequiresResizeonResize in class ResizeCompositepublic boolean remove(int index)
IndexedPanelremove in interface IndexedPanelindex - the index of the widget to be removedfalse if the widget is not presentpublic boolean remove(Widget child)
HasWidgetsremove in interface HasWidgetschild - the widget to be removedtrue if the widget was presentpublic void setAnimationDuration(int duration)
duration - the duration in milliseconds.public void setHeaderHTML(int index,
java.lang.String html)
setHeaderHTML(int, SafeHtml) or
setHeaderText(int, String) whenever possible.index - the index of the header whose HTML is to be sethtml - the header's new HTML contentspublic void setHeaderHTML(int index,
SafeHtml html)
index - the index of the header whose HTML is to be sethtml - the header's new HTML contentspublic void setHeaderText(int index,
java.lang.String text)
index - the index of the header whose text is to be settext - the object's new textpublic void showWidget(int index)
index - the index of the child widget to be shown.public void showWidget(int index,
boolean fireEvents)
index - the index of the child widget to be shown.fireEvents - true to fire events, false not topublic void showWidget(Widget child)
child - the child widget to be shown.public void showWidget(Widget child, boolean fireEvents)
child - the child widget to be shown.fireEvents - true to fire events, false not to