eu.webtoolkit.jwt
Class WWidget

java.lang.Object
  extended by eu.webtoolkit.jwt.WObject
      extended by eu.webtoolkit.jwt.WWidget
Direct Known Subclasses:
WCompositeWidget, WWebWidget

public abstract class WWidget
extends WObject

The abstract base class for a user-interface component.

The user-interface is organized in a tree structure, in which each nodes is a widgets. All widgets, except for the application's root widget and dialogs, have a parent which is usually a WContainerWidget.

This is an abstract base class. Implementations derive either from the abstract WWebWidget (for basic widgets with a direct HTML counter-part) or from the abstract WCompositeWidget (for anything else). To add a WWebWidget directly to a parent container, either specify the parent in the constructor (which is conventionally the last constructor argument), or add the widget to the parent using WContainerWidget#addWidget(). Alternatively, you may add the widget to a layout manager set for a WContainerWidget.

A widget provides methods to manage its decorative style base on CSS. It also provides access to CSS-based layout, which you may not use when the widget is not inserted into a layout manager.


Constructor Summary
protected WWidget()
          Creates a widget.
protected WWidget(WContainerWidget parent)
          Creates a widget.
 
Method Summary
 void acceptDrops(java.lang.String mimeType)
          Sets a mime type to be accepted for dropping.
 void acceptDrops(java.lang.String mimeType, java.lang.String hoverStyleClass)
          Sets a mime type to be accepted for dropping.
protected  WCssTextRule addCssRule(java.lang.String selector, java.lang.String declarations)
           
protected  WCssTextRule addCssRule(java.lang.String selector, java.lang.String declarations, java.lang.String ruleName)
           
 void addStyleClass(java.lang.String styleClass)
          Adds a CSS style class.
abstract  void addStyleClass(java.lang.String styleClass, boolean force)
          Adds a CSS style class.
 void animateHide(WAnimation animation)
          Hides the widget using an animation.
 void animateShow(WAnimation animation)
          Shows the widget using an animation.
protected  int boxBorder(Orientation orientation)
          Returns the widget's built-in border width.
protected  int boxPadding(Orientation orientation)
          Returns the widget's built-in padding.
abstract  void callJavaScriptMember(java.lang.String name, java.lang.String args)
          Calls a JavaScript member.
protected  boolean containsExposed(WWidget w)
           
 void disable()
          Disable thes widget.
abstract  void doJavaScript(java.lang.String js)
          Executes the given JavaScript statements when the widget is rendered or updated.
protected  void dropEvent(WDropEvent event)
          Handles a drop event.
 void enable()
          Enables the widget.
protected abstract  void enableAjax()
          Progresses to an Ajax-enabled widget.
abstract  WWidget find(java.lang.String name)
          Finds a descendent widget by name.
abstract  java.lang.String getAttributeValue(java.lang.String name)
          Returns an attribute value.
abstract  java.util.EnumSet<Side> getClearSides()
          Returns the sides that should remain empty.
abstract  WCssDecorationStyle getDecorationStyle()
          Returns the decoration style of this widget.
protected  void getDrop(java.lang.String sourceId, java.lang.String mimeType, WMouseEvent event)
           
abstract  Side getFloatSide()
          Returns the CSS float side.
abstract  WLength getHeight()
          Returns the height.
abstract  java.lang.String getJavaScriptMember(java.lang.String name)
          Returns the value of a JavaScript member.
 java.lang.String getJsRef()
          Returns a JavaScript expression to the corresponding DOM node.
abstract  WLength getLineHeight()
          Returns the CSS line height for contained text.
abstract  WLength getMargin(Side side)
          Returns a CSS margin set.
abstract  WLength getMaximumHeight()
          Returns the maximum height.
abstract  WLength getMaximumWidth()
          Returns the maximum width.
abstract  WLength getMinimumHeight()
          Returns the minimum height.
abstract  WLength getMinimumWidth()
          Returns the minimum width.
abstract  WLength getOffset(Side side)
          Returns a CSS offset.
 WWidget getParent()
          Returns the parent widget.
abstract  PositionScheme getPositionScheme()
          Returns the CSS position scheme.
abstract  java.lang.String getStyleClass()
          Returns the CSS style class.
abstract  int getTabIndex()
          Returns the tab index.
abstract  WString getToolTip()
          Returns the tooltip.
abstract  AlignmentFlag getVerticalAlignment()
          Returns the vertical alignment.
abstract  WLength getVerticalAlignmentLength()
          Returns the fixed vertical alignment that was set.
abstract  WLength getWidth()
          Returns the width.
 void hide()
          Hides the widget.
 void htmlText(java.io.Writer out)
          Streams the (X)HTML representation.
abstract  boolean isDisabled()
          Returns whether the widget is set disabled.
abstract  boolean isEnabled()
          Returns whether the widget is enabled.
abstract  boolean isHidden()
          Returns whether the widget is set hidden.
abstract  boolean isHiddenKeepsGeometry()
          Returns whether the widget keeps its geometry when hidden.
abstract  boolean isInline()
          Returns whether the widget is displayed inline or as block.
 boolean isLayoutSizeAware()
          Returns whether the widget is layout size aware.
abstract  boolean isLoaded()
          Returns whether this widget has been loaded.
abstract  boolean isPopup()
          Returns whether the widget is overlayed.
 boolean isRendered()
          Returns whether the widget is rendered.
abstract  boolean isVisible()
          Returns whether the widget is visible.
protected  void layoutSizeChanged(int width, int height)
          Virtual method that indicates a size change.
abstract  void load()
          Loads content just before the widget is used.
 void positionAt(WWidget widget)
          Positions a widget next to another widget.
 void positionAt(WWidget widget, Orientation orientation)
          Positions a widget next to another widget.
protected abstract  void propagateSetEnabled(boolean enabled)
          Propagates that a widget was enabled or disabled through children.
 void refresh()
          Refresh the widget.
 void remove()
          Destructor.
 void removeStyleClass(java.lang.String styleClass)
          Removes a CSS style class.
abstract  void removeStyleClass(java.lang.String styleClass, boolean force)
          Removes a CSS style class.
 void resize(int widthPixels, int heightPixels)
          Resizes the widget.
 void resize(WLength width, WLength height)
          Resizes the widget.
abstract  void setAttributeValue(java.lang.String name, java.lang.String value)
          Sets an attribute value.
abstract  void setClearSides(java.util.EnumSet<Side> sides)
          Sets the sides that should be cleared of floats.
 void setClearSides(Side side, Side... sides)
          Sets the sides that should be cleared of floats.
abstract  void setDecorationStyle(WCssDecorationStyle style)
          Sets a CSS decoration style.
abstract  void setDisabled(boolean disabled)
          Sets whether the widget is disabled.
abstract  void setFloatSide(Side s)
          Specifies a CSS float side.
 void setHeight(WLength height)
          Sets the height.
 void setHidden(boolean hidden)
          Hides or shows the widget.
abstract  void setHidden(boolean hidden, WAnimation animation)
          Hides or shows the widget.
abstract  void setHiddenKeepsGeometry(boolean enabled)
          Sets whether the widget keeps its geometry when hidden.
abstract  void setId(java.lang.String id)
          Sets the CSS Id.
abstract  void setInline(boolean inlined)
          Sets whether the widget is displayed inline or as a block.
abstract  void setJavaScriptMember(java.lang.String name, java.lang.String value)
          Sets a JavaScript member.
protected  void setLayoutSizeAware(boolean aware)
          Sets the widget to be aware of its size set by a layout manager.
abstract  void setLineHeight(WLength height)
          Sets the CSS line height for contained text.
 void setMargin(int pixels)
          Sets CSS margins around the widget.
 void setMargin(int pixels, java.util.EnumSet<Side> sides)
          Sets CSS margins around the widget.
 void setMargin(int pixels, Side side, Side... sides)
          Sets CSS margins around the widget.
 void setMargin(WLength margin)
          Sets CSS margins around the widget.
abstract  void setMargin(WLength margin, java.util.EnumSet<Side> sides)
          Sets CSS margins around the widget.
 void setMargin(WLength margin, Side side, Side... sides)
          Sets CSS margins around the widget.
abstract  void setMaximumSize(WLength width, WLength height)
          Sets a maximum size.
abstract  void setMinimumSize(WLength width, WLength height)
          Sets a minimum size.
 void setOffsets(int pixels)
          Sets CSS offsets for a non-statically positioned widget.
 void setOffsets(int pixels, java.util.EnumSet<Side> sides)
          Sets CSS offsets for a non-statically positioned widget.
 void setOffsets(int pixels, Side side, Side... sides)
          Sets CSS offsets for a non-statically positioned widget.
 void setOffsets(WLength offset)
          Sets CSS offsets for a non-statically positioned widget.
abstract  void setOffsets(WLength offset, java.util.EnumSet<Side> sides)
          Sets CSS offsets for a non-statically positioned widget.
 void setOffsets(WLength offset, Side side, Side... sides)
          Sets CSS offsets for a non-statically positioned widget.
abstract  void setPopup(boolean popup)
          Lets the widget overlay over other sibling widgets.
abstract  void setPositionScheme(PositionScheme scheme)
          Sets the CSS position scheme.
abstract  void setSelectable(boolean selectable)
          Sets as selectable.
abstract  void setStyleClass(java.lang.String styleClass)
          Sets (one or more) CSS style classes.
abstract  void setTabIndex(int index)
          Sets the tab index.
 void setToolTip(java.lang.CharSequence text)
          Sets a tooltip.
abstract  void setToolTip(java.lang.CharSequence text, TextFormat textFormat)
          Sets a tooltip.
 void setVerticalAlignment(AlignmentFlag alignment)
          Sets the vertical alignment.
abstract  void setVerticalAlignment(AlignmentFlag alignment, WLength length)
          Sets the vertical alignment.
 void setWidth(WLength width)
          Sets the width.
 void show()
          Shows the widget.
 void stopAcceptDrops(java.lang.String mimeType)
          Indicates that a mime type is no longer accepted for dropping.
 void toggleStyleClass(java.lang.String styleClass, boolean add)
           
 void toggleStyleClass(java.lang.String styleClass, boolean add, boolean force)
           
static WString tr(java.lang.String key)
          Short hand for WString#tr().
 
Methods inherited from class eu.webtoolkit.jwt.WObject
getId, getObjectName, setObjectName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WWidget

protected WWidget(WContainerWidget parent)
Creates a widget.

When a parent container is specified, the widget is added to the container, using WContainerWidget#addWidget().


WWidget

protected WWidget()
Creates a widget.

Calls this((WContainerWidget)null)

Method Detail

remove

public void remove()
Destructor.

Deletes a widget and all children (recursively). If the widget is contained in another widget, it is removed first.

Overrides:
remove in class WObject
See Also:
WContainerWidget.removeWidget(WWidget widget)

getParent

public WWidget getParent()
Returns the parent widget.

With a few exceptions, the parent is a WContainerWidget, and has been set implicitly when adding the widget to a container using WContainerWidget#addWidget(), by passing a container as a parent to the constructor, or by inserting the widget into a layout manager.


setPositionScheme

public abstract void setPositionScheme(PositionScheme scheme)
Sets the CSS position scheme.

Establishes how the widget must be layed-out relative to its siblings. The default position scheme is Static.

This applies to CSS-based layout.

See Also:
PositionScheme, getPositionScheme()

getPositionScheme

public abstract PositionScheme getPositionScheme()
Returns the CSS position scheme.

This applies to CSS-based layout.

See Also:
PositionScheme, setPositionScheme(PositionScheme scheme)

setOffsets

public abstract void setOffsets(WLength offset,
                                java.util.EnumSet<Side> sides)
Sets CSS offsets for a non-statically positioned widget.

The argument sides may be a combination of Side.Left, Side.Right, Side.Top, and Side.Bottom.

This applies only to widgets that have a position scheme that is PositionScheme.Relative, PositionScheme.Absolute, or PositionScheme.Fixed, and has a slightly different meaning for these three cases.

For a relatively positioned widget, an offset applies relative to the position the widget would have when layed-out using a static position scheme. The widget may be shifted to the left or right by specifying an offset for the left or right) side. The widget may be shifted vertically, by specifying an offset for the top or bottom side.

For an absolutely positioned widget, an offset specifies a distance of the corresponding side of the widget with respect to the corresponding side of the reference parent widget. Thus, setting all offsets to 0 result in a widget that spans the entire reference widget. The reference parent widget is the first ancestor widget that is a table cell, or a widget with a relative, absolute or fixed position scheme.

For an fixed positioned widget, an offset specifies a distance of the corresponding side of the widget with respect to the browser window, regardless of scrolling. Thus, setting all offsets to 0 result in a widget that spans the entire browser window.

This applies to CSS-based layout.

See Also:
getOffset(Side side)

setOffsets

public final void setOffsets(WLength offset,
                             Side side,
                             Side... sides)
Sets CSS offsets for a non-statically positioned widget.

Calls setOffsets(offset, EnumSet.of(side, sides))


setOffsets

public final void setOffsets(WLength offset)
Sets CSS offsets for a non-statically positioned widget.

Calls setOffsets(offset, Side.All)


setOffsets

public void setOffsets(int pixels,
                       java.util.EnumSet<Side> sides)
Sets CSS offsets for a non-statically positioned widget.

This is a convenience method for applying offsets in pixel units.

See Also:
setOffsets(WLength offset, EnumSet sides)

setOffsets

public final void setOffsets(int pixels,
                             Side side,
                             Side... sides)
Sets CSS offsets for a non-statically positioned widget.

Calls setOffsets(pixels, EnumSet.of(side, sides))


setOffsets

public final void setOffsets(int pixels)
Sets CSS offsets for a non-statically positioned widget.

Calls setOffsets(pixels, Side.All)


getOffset

public abstract WLength getOffset(Side side)
Returns a CSS offset.

This applies to CSS-based layout.

See Also:
setOffsets(WLength offset, EnumSet sides)

resize

public void resize(WLength width,
                   WLength height)
Resizes the widget.

Specify a new size for this widget, by specifying width and height. By default a widget has automatic width and height, see WLength#isAuto().

This applies to CSS-based layout, and only block widgets can be given a size reliably.

When inserted in a layout manager, the widget may be informed about its current size using setLayoutSizeAware(). If you have defined a "wtResize()" JavaScript method for the widget, then this method will also be called. operation.

See Also:
getWidth(), getHeight()

resize

public void resize(int widthPixels,
                   int heightPixels)
Resizes the widget.

This is a convenience method for resizing a widget using pixel units.

See Also:
resize(WLength width, WLength height)

getWidth

public abstract WLength getWidth()
Returns the width.

Returns the width set for this widget. This is not a calculated width, based on layout, but the width as specified with resize().

This applies to CSS-based layout.

See Also:
resize(WLength width, WLength height), getHeight()

setWidth

public void setWidth(WLength width)
Sets the width.

This is a convenience method to change only the width of a widget, and is implemented as:

 resize(width, height())
 

See Also:
resize(WLength width, WLength height), setHeight(WLength height)

getHeight

public abstract WLength getHeight()
Returns the height.

Returns the height set for this widget. This is not a calculated height, based on layout, but the height as specified previously with resize().

This applies to CSS-based layout.

See Also:
resize(WLength width, WLength height), getWidth()

setHeight

public void setHeight(WLength height)
Sets the height.

This is a convenience method to change only the width of a widget, and is implemented as:

 resize(width(), height)
 

This applies to CSS-based layout.

See Also:
resize(WLength width, WLength height), setWidth(WLength width)

setMinimumSize

public abstract void setMinimumSize(WLength width,
                                    WLength height)
Sets a minimum size.

Specify a minimum size for this widget.

The default minimum width and height is 0. The special value WLength.Auto indicates that the initial width is used as minimum size.

When the widget size is actively managed (using e.g. a layout manager), these sizes are taken into account.

See Also:
resize(WLength width, WLength height), getMinimumWidth(), getMinimumHeight()

getMinimumWidth

public abstract WLength getMinimumWidth()
Returns the minimum width.

Returns the minimum width set for this widget with setMinimumSize().

See Also:
setMinimumSize(WLength width, WLength height), getMinimumHeight()

getMinimumHeight

public abstract WLength getMinimumHeight()
Returns the minimum height.

Returns the minmum height set for this widget with setMinimumSize().

See Also:
setMinimumSize(WLength width, WLength height), getMinimumWidth()

setMaximumSize

public abstract void setMaximumSize(WLength width,
                                    WLength height)
Sets a maximum size.

Specifies a maximum size for this widget.

The default maximum width and height are WLength.Auto, indicating no maximum size.

See Also:
resize(WLength width, WLength height), setMinimumSize(WLength width, WLength height)

getMaximumWidth

public abstract WLength getMaximumWidth()
Returns the maximum width.

Returns the maximum width set for this widget with setMaximumSize().

See Also:
setMaximumSize(WLength width, WLength height), getMaximumHeight()

getMaximumHeight

public abstract WLength getMaximumHeight()
Returns the maximum height.

Returns the minmum height set for this widget with setMaximumSize().

See Also:
setMaximumSize(WLength width, WLength height), getMaximumWidth()

positionAt

public void positionAt(WWidget widget,
                       Orientation orientation)
Positions a widget next to another widget.

Positions this absolutely positioned widget next to another widget. Both widgets must be visible.

When orientation = Orientation.Vertical, the widget is displayed below the other widget (or above in case there is not enough room below). It is aligned so that the left edges align (or the right edges if there is not enough room to the right).

Conversely, when orientation = Orientation.Horizontal, the widget is displayed to the right of the other widget (or to the left in case there is not enough room to the right). It is aligned so that the top edges align (or the bottom edges if there is not enough room below).

Note: This only works if JavaScript is available.


positionAt

public final void positionAt(WWidget widget)
Positions a widget next to another widget.

Calls positionAt(widget, Orientation.Vertical)


setLineHeight

public abstract void setLineHeight(WLength height)
Sets the CSS line height for contained text.


getLineHeight

public abstract WLength getLineHeight()
Returns the CSS line height for contained text.

sa setLineHeight()


setFloatSide

public abstract void setFloatSide(Side s)
Specifies a CSS float side.

This only applies to widgets with a PositionScheme.Static getPositionScheme().

This lets the widget float to one of the sides of the parent widget, at the current line. A typical use is to position images within text. Valid values for Side or java None , Side.Left or Side.Right.

This applies to CSS-based layout.


getFloatSide

public abstract Side getFloatSide()
Returns the CSS float side.

See Also:
setFloatSide(Side s)

setClearSides

public abstract void setClearSides(java.util.EnumSet<Side> sides)
Sets the sides that should be cleared of floats.

This pushes the widget down until it is not surrounded by floats at the sides (which may be a combination of Side.Left and Side.Right).

This applies to CSS-based layout.

See Also:
setFloatSide(Side s)

setClearSides

public final void setClearSides(Side side,
                                Side... sides)
Sets the sides that should be cleared of floats.

Calls setClearSides(EnumSet.of(side, sides))


getClearSides

public abstract java.util.EnumSet<Side> getClearSides()
Returns the sides that should remain empty.

See Also:
setClearSides(EnumSet sides)

setMargin

public abstract void setMargin(WLength margin,
                               java.util.EnumSet<Side> sides)
Sets CSS margins around the widget.

Setting margin has the effect of adding a distance between the widget and surrounding widgets. The default margin (with an automatic length) is zero.

Use any combination of Side.Left, Side.Right, Side.Bottom, or Side.Top.

This applies to CSS-based layout.

See Also:
getMargin(Side side)

setMargin

public final void setMargin(WLength margin,
                            Side side,
                            Side... sides)
Sets CSS margins around the widget.

Calls setMargin(margin, EnumSet.of(side, sides))


setMargin

public final void setMargin(WLength margin)
Sets CSS margins around the widget.

Calls setMargin(margin, Side.All)


setMargin

public void setMargin(int pixels,
                      java.util.EnumSet<Side> sides)
Sets CSS margins around the widget.

This is a convenience method for setting margins in pixel units.

See Also:
setMargin(WLength margin, EnumSet sides)

setMargin

public final void setMargin(int pixels,
                            Side side,
                            Side... sides)
Sets CSS margins around the widget.

Calls setMargin(pixels, EnumSet.of(side, sides))


setMargin

public final void setMargin(int pixels)
Sets CSS margins around the widget.

Calls setMargin(pixels, Side.All)


getMargin

public abstract WLength getMargin(Side side)
Returns a CSS margin set.

This applies to CSS-based layout.

See Also:
setMargin(WLength margin, EnumSet sides)

setHiddenKeepsGeometry

public abstract void setHiddenKeepsGeometry(boolean enabled)
Sets whether the widget keeps its geometry when hidden.

Normally, a widget that is hidden will no longer occupy space, causing a reflow of sibling widgets. Using this method you may change this behavior to keep an (open) space when hidden.

Note: Currently you can only set this before initial rendering.

See Also:
setHidden(boolean hidden, WAnimation animation)

isHiddenKeepsGeometry

public abstract boolean isHiddenKeepsGeometry()
Returns whether the widget keeps its geometry when hidden.

See Also:
setHiddenKeepsGeometry(boolean enabled)

setHidden

public abstract void setHidden(boolean hidden,
                               WAnimation animation)
Hides or shows the widget.

Hides or show the widget (including all its descendant widgets). When setting hidden = false, this widget and all descendant widgets that are not hidden will be shown. A widget is only visible if it and all its ancestors in the widget tree are visible, which may be checked using isVisible().


setHidden

public final void setHidden(boolean hidden)
Hides or shows the widget.

Calls setHidden(hidden, new WAnimation())


isHidden

public abstract boolean isHidden()
Returns whether the widget is set hidden.

A widget that is not hidden may still be not visible when one of its ancestor widgets is hidden. Use isVisible() to check the visibility of a widget.

See Also:
setHidden(boolean hidden, WAnimation animation), isVisible()

isVisible

public abstract boolean isVisible()
Returns whether the widget is visible.

A widget is visible if it is not hidden, and none of its ancestors are hidden. This method returns the true visibility, while isHidden() returns whether a widget has been explicitly hidden.

Note that a widget may be at the same time not hidden, and not visible, in case one of its ancestors was hidden.

See Also:
isHidden()

setDisabled

public abstract void setDisabled(boolean disabled)
Sets whether the widget is disabled.

Enables or disables the widget (including all its descendant widgets). setDisabled(false) will enable this widget and all descendant widgets that are not disabled. A widget is only enabled if it and all its ancestors in the widget tree are disabled.

Typically, a disabled form widget will not allow changing the value, and disabled widgets will not react to mouse click events.

See Also:
disable(), enable()

isDisabled

public abstract boolean isDisabled()
Returns whether the widget is set disabled.

A widget that is not set disabled may still be disabled when one of its ancestor widgets is set disabled. Use isEnabled() to find out whether a widget is enabled.

See Also:
setDisabled(boolean disabled), isEnabled()

isEnabled

public abstract boolean isEnabled()
Returns whether the widget is enabled.

A widget is enabled if it is not disabled, and none of its ancestors are disabled. This method returns whether the widget is rendered as enabled, while isDisabled() returns whether a widget has been explicitly disabled.

Note that a widget may be at the same time not enabled, and not disabled, in case one of its ancestors was disabled.

See Also:
isDisabled()

setPopup

public abstract void setPopup(boolean popup)
Lets the widget overlay over other sibling widgets.

A widget that isPopup() will be rendered on top of any other sibling widget contained within the same parent (including other popup widgets previously added to the container).

This will only have an effect when the widgetis either PositionScheme.Absolute or PositionScheme.Fixed getPositionScheme().

This applies to CSS-based layout, and configures the z-index property.


isPopup

public abstract boolean isPopup()
Returns whether the widget is overlayed.

This applies to CSS-based layout.

See Also:
setPopup(boolean popup)

setInline

public abstract void setInline(boolean inlined)
Sets whether the widget is displayed inline or as a block.

This option changes whether this widget must be rendered in line with sibling widgets wrapping at the right edge of the parent container (like text), or whether this widget must be rendered as a rectangular block that stacks vertically with sibling widgets (unless a CSS float property is applied). Depending on the widget type, the default value is inline (such as for example for WText, or WPushButton), or block (such as for example for a WContainerWidget).

This applies to CSS-based layout.


isInline

public abstract boolean isInline()
Returns whether the widget is displayed inline or as block.

See Also:
setInline(boolean inlined)

setDecorationStyle

public abstract void setDecorationStyle(WCssDecorationStyle style)
Sets a CSS decoration style.

This copies the style over its current getDecorationStyle()


getDecorationStyle

public abstract WCssDecorationStyle getDecorationStyle()
Returns the decoration style of this widget.

This groups all decorative aspects of the widget, which do not affect the widget layout (except for the border properties which may behave like extra margin around the widget).

When a decoration style has not been previously set, it returns a default decoration style object.

See Also:
setDecorationStyle(WCssDecorationStyle style)

setStyleClass

public abstract void setStyleClass(java.lang.String styleClass)
Sets (one or more) CSS style classes.

You may set one or more space separated style classes. CSS style class works in conjunction with style sheet, and provides a flexible way to provide many widgets the same markup.

Setting an empty string removes the style class(es).

See Also:
WApplication.getStyleSheet()

getStyleClass

public abstract java.lang.String getStyleClass()
Returns the CSS style class.

See Also:
setStyleClass(String styleClass)

addStyleClass

public abstract void addStyleClass(java.lang.String styleClass,
                                   boolean force)
Adds a CSS style class.

When force = true, a JavaScript call will be used to add the style class to the DOM element (if JavaScript is available). This may be necessary when client-side JavaScript manipulates the same style class.


addStyleClass

public final void addStyleClass(java.lang.String styleClass)
Adds a CSS style class.

Calls addStyleClass(styleClass, false)


removeStyleClass

public abstract void removeStyleClass(java.lang.String styleClass,
                                      boolean force)
Removes a CSS style class.

When force = true, a JavaScript call will be used to remove the style class from the DOM element (if JavaScript is available). This may be necessary when client-side JavaScript manipulates the same style class.


removeStyleClass

public final void removeStyleClass(java.lang.String styleClass)
Removes a CSS style class.

Calls removeStyleClass(styleClass, false)


toggleStyleClass

public void toggleStyleClass(java.lang.String styleClass,
                             boolean add,
                             boolean force)

toggleStyleClass

public final void toggleStyleClass(java.lang.String styleClass,
                                   boolean add)

setVerticalAlignment

public abstract void setVerticalAlignment(AlignmentFlag alignment,
                                          WLength length)
Sets the vertical alignment.

This only applies to inline widgets, and determines how to position itself on the current line, with respect to sibling inline widgets.

This applies to CSS-based layout.


setVerticalAlignment

public final void setVerticalAlignment(AlignmentFlag alignment)
Sets the vertical alignment.

Calls setVerticalAlignment(alignment, WLength.Auto)


getVerticalAlignment

public abstract AlignmentFlag getVerticalAlignment()
Returns the vertical alignment.

This applies to CSS-based layout.

See Also:
setVerticalAlignment(AlignmentFlag alignment, WLength length)

getVerticalAlignmentLength

public abstract WLength getVerticalAlignmentLength()
Returns the fixed vertical alignment that was set.

This applies to CSS-based layout.

See Also:
setVerticalAlignment(AlignmentFlag alignment, WLength length)

setToolTip

public abstract void setToolTip(java.lang.CharSequence text,
                                TextFormat textFormat)
Sets a tooltip.

The tooltip is displayed when the cursor hovers over the widget.

When textFormat is XHTMLText, the tooltip may contain any valid XHTML snippet. The tooltip will then be rendered using JavaScript.


setToolTip

public final void setToolTip(java.lang.CharSequence text)
Sets a tooltip.

Calls setToolTip(text, TextFormat.PlainText)


getToolTip

public abstract WString getToolTip()
Returns the tooltip.


refresh

public void refresh()
Refresh the widget.

The refresh method is invoked when the locale is changed using WApplication#setLocale() or when the user hit the refresh button.

The widget must actualize its contents in response.


getJsRef

public java.lang.String getJsRef()
Returns a JavaScript expression to the corresponding DOM node.

You may want to use this in conjunction with JSlot or doJavaScript() in custom JavaScript code.

See Also:
isRendered()

setAttributeValue

public abstract void setAttributeValue(java.lang.String name,
                                       java.lang.String value)
Sets an attribute value.

Associate an extra attribute with this widget, with the given value. This is only useful when processing dom nodes associated with widgets in custom JavaScript code.

See Also:
JSlot, doJavaScript(String js)

getAttributeValue

public abstract java.lang.String getAttributeValue(java.lang.String name)
Returns an attribute value.

See Also:
setAttributeValue(String name, String value)

setJavaScriptMember

public abstract void setJavaScriptMember(java.lang.String name,
                                         java.lang.String value)
Sets a JavaScript member.

This binds a JavaScript member, which is set as a JavaScript property to the DOM object that implements this widget. The value may be any JavaScript expression, including a function.

Members that start with "wt" are reserved for internal use. You may define a member "wtResize(self, width, height)" method if your widget needs active layout management. If defined, this method will be used by layout managers and when doing resize() to set the size of the widget, instead of setting the CSS width and height properties.


getJavaScriptMember

public abstract java.lang.String getJavaScriptMember(java.lang.String name)
Returns the value of a JavaScript member.

See Also:
setJavaScriptMember(String name, String value)

callJavaScriptMember

public abstract void callJavaScriptMember(java.lang.String name,
                                          java.lang.String args)
Calls a JavaScript member.

This calls a JavaScript member.

See Also:
setJavaScriptMember(String name, String value)

tr

public static WString tr(java.lang.String key)
Short hand for WString#tr().

Creates a localized string with the given key.


load

public abstract void load()
Loads content just before the widget is used.

When the widget is inserted in the widget hierarchy, this method is called. Widgets that get inserted in the widget hierarchy will be rendered. Visible widgets are rendered immediately, and invisible widgets in the back-ground (or not for a plain HTML session). This method is called when the widget is directly or indirectly inserted into the widget tree.

The default implementation simply propagates the load signal to its children. You may want to override this method to delay loading of resource-intensive contents.

During the life-time of a widget, this method may be called multiple times, so you should make sure that you do a deferred initializiation only once.


isLoaded

public abstract boolean isLoaded()
Returns whether this widget has been loaded.

See Also:
load()

setTabIndex

public abstract void setTabIndex(int index)
Sets the tab index.

For widgets that receive focus, focus is passed on to the next widget in the tabbing chain based on their tab index. When the user navigates through form widgets using the keyboard, widgets receive focus starting from the element with the lowest tab index to elements with the highest tab index.

A tab index only applies to widgets than can receive focus (which are WFormWidget, WAnchor, WPushButton), but setting a tab index on any other type of widget will propagate to its contained form widgets.

Widgets with a same tab index will receive focus in the same order as they are inserted in the widget tree.

The default tab index is 0.


getTabIndex

public abstract int getTabIndex()
Returns the tab index.

See Also:
setTabIndex(int index)

acceptDrops

public void acceptDrops(java.lang.String mimeType,
                        java.lang.String hoverStyleClass)
Sets a mime type to be accepted for dropping.

You may specify a style class that is applied to the widget when the specified mimetype hovers on top of it.

See Also:
dropEvent(WDropEvent event), WInteractWidget.setDraggable(String mimeType, WWidget dragWidget, boolean isDragWidgetOnly, WObject sourceObject), stopAcceptDrops(String mimeType)

acceptDrops

public final void acceptDrops(java.lang.String mimeType)
Sets a mime type to be accepted for dropping.

Calls acceptDrops(mimeType, "")


stopAcceptDrops

public void stopAcceptDrops(java.lang.String mimeType)
Indicates that a mime type is no longer accepted for dropping.

See Also:
acceptDrops(String mimeType, String hoverStyleClass)

setId

public abstract void setId(java.lang.String id)
Sets the CSS Id.

Sets a custom Id. Note that the Id must be unique across the whole widget tree, can only be set right after construction and cannot be changed. This is mostly useful for in tests using a test plan that manipulates DOM elements by Id.

By default, auto-generated id's are used.

See Also:
WObject.getId()

find

public abstract WWidget find(java.lang.String name)
Finds a descendent widget by name.

See Also:
WObject.setObjectName(String name)

htmlText

public void htmlText(java.io.Writer out)
Streams the (X)HTML representation.

Streams the widget as UTF8-encoded (HTML-compatible) XHTML.

This may be useful as a debugging tool for the web-savvy, or in other rare situations. Usually, you will not deal directly with HTML, and calling this method on a widget that is rendered may interfere with the library keeping track of changes to the widget.


setSelectable

public abstract void setSelectable(boolean selectable)
Sets as selectable.

When a widget is made unselectable, a selection of text (or images) will not be visible (but may still be possible).

By default, the widget inherits this property from its parent, and this property propagates to all children. The top level container ( WApplication#getRoot()) selectable by default.


doJavaScript

public abstract void doJavaScript(java.lang.String js)
Executes the given JavaScript statements when the widget is rendered or updated.

Calling WApplication#doJavaScript() with JavaScript code that refers to a widget using getJsRef(), that is still to be rendered may cause JavaScript errors because the corresponding DOM node does not exist. This happens for example when a widget is created, but not yet inserted in the widget tree.

This method guarantees that the JavaScript code is only run when the corresponding DOM node (using getJsRef()) resolves to a valid DOM object.

See Also:
getJsRef()

isRendered

public boolean isRendered()
Returns whether the widget is rendered.

See Also:
getJsRef()

hide

public void hide()
Hides the widget.

See Also:
setHidden(boolean hidden, WAnimation animation)

animateHide

public void animateHide(WAnimation animation)
Hides the widget using an animation.

To hide the widget, the animation is replayed in reverse.

See Also:
setHidden(boolean hidden, WAnimation animation)

show

public void show()
Shows the widget.

See Also:
setHidden(boolean hidden, WAnimation animation)

animateShow

public void animateShow(WAnimation animation)
Shows the widget using an animation.

See Also:
setHidden(boolean hidden, WAnimation animation)

enable

public void enable()
Enables the widget.

This calls setDisabled(false).


disable

public void disable()
Disable thes widget.

This calls setDisabled(true).


isLayoutSizeAware

public boolean isLayoutSizeAware()
Returns whether the widget is layout size aware.

See Also:
setLayoutSizeAware(boolean aware)

setLayoutSizeAware

protected void setLayoutSizeAware(boolean aware)
Sets the widget to be aware of its size set by a layout manager.

When the widget is inserted in a layout manager, it will be resized to fit within the constraints imposed by the layout manager. By default, this done client-side only by setting the CSS height (and if needed, width) properties of the DOM element corresponding to the widget.

A widget may define a JavaScript method, "wtResize(self, width, height)", to actively manage its client-side width and height, if it wants to react to these client-side size hints in a custom way (see setJavaScriptMember()).

By setting sizeAware to true, the widget will propagate the width and height provided by the layout manager to the virtual layoutSizeChanged() method, so that you may for example change the size of contained children in a particular way (doing a custom, manual, layout).

See Also:
layoutSizeChanged(int width, int height)

layoutSizeChanged

protected void layoutSizeChanged(int width,
                                 int height)
Virtual method that indicates a size change.

This method propagates the client-side width and height of the widget when the widget is contained by a layout manager and setLayoutSizeAware(true) was called.

See Also:
setLayoutSizeAware(boolean aware)

dropEvent

protected void dropEvent(WDropEvent event)
Handles a drop event.

Reimplement this method to handle a drop events for mime types you declared to accept using acceptDrops.

The default implementation simply completes the drag and drop operation as if nothing happened.

See Also:
acceptDrops(String mimeType, String hoverStyleClass), WInteractWidget.setDraggable(String mimeType, WWidget dragWidget, boolean isDragWidgetOnly, WObject sourceObject)

enableAjax

protected abstract void enableAjax()
Progresses to an Ajax-enabled widget.

This method is called when the progressive bootstrap method is used, and support for AJAX has been detected. The default behavior will upgrade the widget's event handling to use AJAX instead of full page reloads, and propagate the call to its children.

You may want to reimplement this method if you want to make changes to widget when AJAX is enabled. You should always call the base implementation.

See Also:
WApplication.enableAjax()

boxPadding

protected int boxPadding(Orientation orientation)
Returns the widget's built-in padding.

This is used by the layout managers to correct for a built-in padding which interferes with setting a widget's width (or height) to 100%.

A layout manager needs to set the width to 100% only for form widgets ( WTextArea, WLineEdit, WComboBox, etc...). Therefore, only for those widgets this needs to return the padding (the default implementation returns 0).

For form widgets, the padding depends on the specific browser/platform combination, unless an explicit padding is set for the widget.

When setting an explicit padding for the widget using a style class, you will want to reimplement this method to return this padding in case you want to set the widget inside a layout manager.

See Also:
boxBorder(Orientation orientation)

boxBorder

protected int boxBorder(Orientation orientation)
Returns the widget's built-in border width.

This is used by the layout managers to correct for a built-in border which interferes with setting a widget's width (or height) to 100%.

A layout manager needs to set the width to 100% only for form widgets ( WTextArea, WLineEdit, WComboBox, etc...). Therefore, only for those widgets this needs to return the border width (the default implementation returns 0).

For form widgets, the border width depends on the specific browser/platform combination, unless an explicit border is set for the widget.

When setting an explicit border for the widget using a style class, you will want to reimplement this method to return this border width, in case you want to set the widget inside a layout manager.

See Also:
boxPadding(Orientation orientation)

propagateSetEnabled

protected abstract void propagateSetEnabled(boolean enabled)
Propagates that a widget was enabled or disabled through children.

When enabling or disabling a widget, you usually also want to disable contained children. This method is called by setDisabled() to propagate its state to all children.

You may want to reimplement this method if they wish to render differently when a widget is disabled. The default implementation will propagate the signal to all children.


containsExposed

protected boolean containsExposed(WWidget w)

getDrop

protected void getDrop(java.lang.String sourceId,
                       java.lang.String mimeType,
                       WMouseEvent event)

addCssRule

protected WCssTextRule addCssRule(java.lang.String selector,
                                  java.lang.String declarations,
                                  java.lang.String ruleName)

addCssRule

protected final WCssTextRule addCssRule(java.lang.String selector,
                                        java.lang.String declarations)