com.smartgwt.client.widgets
Class HTMLFlow

java.lang.Object
  extended by com.google.gwt.user.client.ui.UIObject
      extended by com.google.gwt.user.client.ui.Widget
          extended by com.smartgwt.client.widgets.BaseWidget
              extended by com.smartgwt.client.widgets.Canvas
                  extended by com.smartgwt.client.widgets.HTMLFlow
All Implemented Interfaces:
HasAttachHandlers, HasHandlers, EventListener, HasVisibility, IsWidget, LogicalStructure, HasClickHandlers, HasContentLoadedHandlers, HasDoubleClickHandlers, HasDragMoveHandlers, HasDragRepositionMoveHandlers, HasDragRepositionStartHandlers, HasDragRepositionStopHandlers, HasDragResizeMoveHandlers, HasDragResizeStartHandlers, HasDragResizeStopHandlers, HasDragStartHandlers, HasDragStopHandlers, HasDropHandlers, HasDropMoveHandlers, HasDropOutHandlers, HasDropOverHandlers, HasFocusChangedHandlers, HasHoverHandlers, HasHoverHiddenHandlers, HasKeyDownHandlers, HasKeyPressHandlers, HasMouseDownHandlers, HasMouseMoveHandlers, HasMouseOutHandlers, HasMouseOverHandlers, HasMouseStillDownHandlers, HasMouseUpHandlers, HasMouseWheelHandlers, HasMovedHandlers, HasParentMovedHandlers, HasResizedHandlers, HasRightMouseDownHandlers, HasScrolledHandlers, HasShowContextMenuHandlers, HasVisibilityChangedHandlers
Direct Known Subclasses:
HTMLPane

public class HTMLFlow
extends Canvas
implements HasContentLoadedHandlers

Use the HTMLFlow component to display HTML content that should expand to its natural size without scrolling.

HTML content can be loaded and reloaded from a URL via the property contentsURL. This method of loading is for simple HTML content only; Smart GWT components should be loaded via the ViewLoader class.

NOTE: Since the size of an HTMLFlow component is determined by its HTML contents, this component will draw at varying sizes if given content of varying size. When using HTMLFlow components within a Layout, consider what will happen if the HTMLFlow renders at various sizes. An HTMLFlow which can expand should be placed in a container where other components can render smaller, where the container is allowed to scroll, or where there is padding to expand into.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.google.gwt.user.client.ui.UIObject
UIObject.DebugIdImpl, UIObject.DebugIdImplEnabled
 
Field Summary
 
Fields inherited from class com.smartgwt.client.widgets.BaseWidget
config, configOnly, id, nativeObject, scClassName
 
Fields inherited from class com.google.gwt.user.client.ui.UIObject
DEBUG_ID_PREFIX
 
Constructor Summary
HTMLFlow()
           
HTMLFlow(JavaScriptObject jsObj)
           
HTMLFlow(String contents)
           
 
Method Summary
 HandlerRegistration addContentLoadedHandler(ContentLoadedHandler handler)
          Add a contentLoaded handler.
static void changeAutoChildDefaults(String autoChildName, Canvas defaults)
          Changes the defaults for Canvas AutoChildren named autoChildName.
static void changeAutoChildDefaults(String autoChildName, FormItem defaults)
          Changes the defaults for FormItem AutoChildren named autoChildName.
protected  JavaScriptObject create()
           
 Boolean getAllowCaching()
          By default an HTMLFlow will explicitly prevent browser caching.
 Boolean getCaptureSCComponents()
          If true, Smart GWT components created while executing the loaded HTML are captured for rendering inside the HTMLFlow.
 String getContents()
          The contents of a canvas or label widget.
 ContentsType getContentsType()
          The default setting of 'null' or 'fragment' indicates that HTML loaded from contentsURL is assumed to be an HTML fragment rather than a complete page.
 String getContentsURL()
          URL to load content from.
 Boolean getDynamicContents()
          Dynamic contents allows the contents string to be treated as a simple, but powerful template.
 Boolean getEvalScriptBlocks()
          If evalScriptBlocks is true, HTMLFlow will pre-process the loaded HTML in order to mimic how the HTML would execute if it were loaded as an independent page or loaded via an IFRAME.
 SendMethod getHttpMethod()
          Selects the HTTP method that will be used when fetching content.
 String getLoadingMessage()
          HTML to show while content is being fetched, active only if the contentsURL property has been set.
 com.smartgwt.logicalstructure.core.LogicalStructureObject getLogicalStructure()
           
static HTMLFlow getOrCreateRef(JavaScriptObject jsObj)
           
 Boolean loadingContent()
          Returns true if this htmlFlow is currently loading content from the server.
Note: Does not apply to htmlFlows with contentsType set to "page"
 void setAllowCaching(Boolean allowCaching)
          By default an HTMLFlow will explicitly prevent browser caching.
 void setCaptureSCComponents(Boolean captureSCComponents)
          If true, Smart GWT components created while executing the loaded HTML are captured for rendering inside the HTMLFlow.
 void setContents(String contents)
          The contents of a canvas or label widget.
 void setContentsType(ContentsType contentsType)
          The default setting of 'null' or 'fragment' indicates that HTML loaded from contentsURL is assumed to be an HTML fragment rather than a complete page.
 void setContentsURL(String contentsURL)
          URL to load content from.
 void setContentsURLParams(Map contentsURLParams)
          Parameters to be sent to the contentsURL when fetching content.
static void setDefaultProperties(HTMLFlow hTMLFlowProperties)
          Class level method to set the default properties of this class.
 void setDynamicContents(Boolean dynamicContents)
          Dynamic contents allows the contents string to be treated as a simple, but powerful template.
 void setEvalScriptBlocks(Boolean evalScriptBlocks)
          If evalScriptBlocks is true, HTMLFlow will pre-process the loaded HTML in order to mimic how the HTML would execute if it were loaded as an independent page or loaded via an IFRAME.
 void setHttpMethod(SendMethod httpMethod)
          Selects the HTTP method that will be used when fetching content.
 void setLoadingMessage(String loadingMessage)
          HTML to show while content is being fetched, active only if the contentsURL property has been set.
 com.smartgwt.logicalstructure.core.LogicalStructureObject setLogicalStructure(com.smartgwt.logicalstructure.widgets.HTMLFlowLogicalStructure s)
           
 void transformHTML(String html)
          Override to modify the loaded HTML before it is rendered.
 
Methods inherited from class com.smartgwt.client.widgets.Canvas
addChild, addChild, addChild, addChild, addChild, addClickHandler, addDoubleClickHandler, addDragMoveHandler, addDragRepositionMoveHandler, addDragRepositionStartHandler, addDragRepositionStopHandler, addDragResizeMoveHandler, addDragResizeStartHandler, addDragResizeStopHandler, addDragStartHandler, addDragStopHandler, addDropHandler, addDropMoveHandler, addDropOutHandler, addDropOverHandler, addFocusChangedHandler, addHoverHandler, addHoverHiddenHandler, addKeyDownHandler, addKeyPressHandler, addMouseDownHandler, addMouseMoveHandler, addMouseOutHandler, addMouseOverHandler, addMouseStillDownHandler, addMouseUpHandler, addMouseWheelHandler, addMovedHandler, addParentMovedHandler, addPeer, addPeer, addPeer, addPeer, addResizedHandler, addRightMouseDownHandler, addScrolledHandler, addShowContextMenuHandler, addStyleName, addVisibilityChangedHandler, adjustForContent, animateFade, animateFade, animateFade, animateFade, animateFade, animateFade, animateFade, animateFade, animateHide, animateHide, animateHide, animateMove, animateMove, animateMove, animateMove, animateRect, animateRect, animateRect, animateRect, animateResize, animateResize, animateResize, animateResize, animateScroll, animateScroll, animateScroll, animateScroll, animateScroll, animateScroll, animateShow, animateShow, animateShow, animateShow, animateShow, animateShow, asSGWTComponent, blur, bringToFront, clear, clickMaskUp, clickMaskUp, contains, contains, containsEvent, containsFocus, containsPoint, containsPoint, deparent, depeer, disable, enable, focus, focusInNextTabElement, focusInPreviousTabElement, getAbsoluteLeft, getAbsoluteTop, getAccessKey, getAnimateAcceleration, getAnimateFadeTime, getAnimateHideAcceleration, getAnimateHideTime, getAnimateMoveAcceleration, getAnimateMoveTime, getAnimateRectAcceleration, getAnimateRectTime, getAnimateResizeAcceleration, getAnimateResizeTime, getAnimateScrollAcceleration, getAnimateScrollTime, getAnimateShowAcceleration, getAnimateShowEffect, getAnimateShowTime, getAnimateTime, getAppImgDir, getAriaRole, getAutoDraw, getAutoShowParent, getBackgroundColor, getBackgroundImage, getBackgroundPosition, getBackgroundRepeat, getBorder, getBottom, getById, getByJSObject, getByLocalId, getCanAcceptDrop, getCanDrag, getCanDragReposition, getCanDragResize, getCanDragScroll, getCanDrop, getCanDropBefore, getCanFocus, getCanHover, getCanSelectText, getCanvasAutoChild, getCanvasItem, getChildren, getChildrenSnapResizeToGrid, getChildrenSnapToGrid, getClassName, getContentElement, getContextMenu, getCursor, getDataPath, getDefaultHeight, getDefaultWidth, getDestroyed, getDestroying, getDisabled, getDisabledCursor, getDoubleClickDelay, getDragAppearance, getDragIntersectStyle, getDragMaskType, getDragOpacity, getDragRepositionAppearance, getDragRepositionCursor, getDragResizeAppearance, getDragScrollDelay, getDragStartDistance, getDragTarget, getDragType, getDropTypes, getDropTypesAsString, getEdgeBackgroundColor, getEdgeCenterBackgroundColor, getEdgeImage, getEdgeMarginSize, getEdgeOffset, getEdgeOpacity, getEdgeShowCenter, getEdgeSize, getElement, getElement, getEventEdge, getEventEdge, getExtraSpace, getFacetId, getFormItemAutoChild, getFullDataPath, getGroupBorderCSS, getGroupLabelBackgroundColor, getGroupLabelStyleName, getGroupTitle, getHeight, getHeightAsString, getHideUsingDisplayNone, getHoverAlign, getHoverAutoDestroy, getHoverComponent, getHoverDelay, getHoverHeight, getHoverHTML, getHoverMoveWithMouse, getHoverOpacity, getHoverStyle, getHoverVAlign, getHoverWidth, getHoverWrap, getHSnapOrigin, getHSnapOrigin, getHSnapPosition, getHSnapPosition, getHtmlElement, getHtmlPosition, getImage, getImgURL, getImgURL, getInnerContentHeight, getInnerContentWidth, getInnerHeight, getInnerWidth, getIsGroup, getKeepInParentRect, getLayoutAlign, getLeft, getLeftAsString, getLocateChildrenBy, getLocateChildrenType, getLocatePeersBy, getLocatePeersType, getMargin, getMasterCanvas, getMasterElement, getMatchElement, getMaxHeight, getMaxWidth, getMenuConstructor, getMinHeight, getMinWidth, getMomentumScrollMinSpeed, getMouseStillDownDelay, getMouseStillDownInitialDelay, getNextZIndex, getNoDoubleClicks, getOffsetHeight, getOffsetWidth, getOffsetX, getOffsetY, getOpacity, getOuterElement, getOverflow, getPadding, getPageBottom, getPageLeft, getPageRect, getPageRight, getPageTop, getParentCanvas, getParentElement, getPeers, getPercentBox, getPercentSource, getPosition, getPrefix, getPrintChildrenAbsolutelyPositioned, getPrintHTML, getPrintHTML, getPrompt, getRect, getRedrawOnResize, getResizeBarTarget, getResizeFrom, getRight, getScrollbarSize, getScrollBottom, getScrollHeight, getScrollLeft, getScrollRight, getScrollTop, getScrollWidth, getShadowDepth, getShadowImage, getShadowOffset, getShadowSoftness, getShouldPrint, getShowCustomScrollbars, getShowDragShadow, getShowEdges, getShowHover, getShowHoverComponents, getShowResizeBar, getShowShadow, getShrinkElementOnHide, getSkinImgDir, getSnapAxis, getSnapEdge, getSnapHDirection, getSnapHGap, getSnapOffsetLeft, getSnapOffsetTop, getSnapOnDrop, getSnapResizeToGrid, getSnapTo, getSnapToGrid, getSnapVDirection, getSnapVGap, getStyleName, getTabIndex, getTestInstance, getTitle, getTooltip, getTop, getTopAsString, getTopElement, getUseBackMask, getUseDragMask, getUseNativeDrag, getUseOpacityFilter, getValuesManager, getViewportHeight, getViewportWidth, getVisibility, getVisibleHeight, getVisibleWidth, getVSnapOrigin, getVSnapOrigin, getVSnapPosition, getVSnapPosition, getWidth, getWidthAsString, getZIndex, getZIndex, handleHover, hide, hideClickMask, hideClickMask, hideContextMenu, imgHTML, imgHTML, imgHTML, intersects, isDirty, isDisabled, isDrawn, isVisible, keyUp, layoutChildren, linkHTML, linkHTML, linkHTML, linkHTML, linkHTML, linkHTML, markForDestroy, markForRedraw, markForRedraw, moveAbove, moveBelow, moveBy, moveTo, onAttach, onDetach, onInit, parentResized, printComponents, redraw, redraw, removeChild, removeChild, removePeer, removePeer, resizeBy, resizeTo, resizeTo, scrollBy, scrollByPercent, scrollTo, scrollTo, scrollTo, scrollToBottom, scrollToLeft, scrollToPercent, scrollToRight, scrollToTop, sendToBack, setAccessKey, setAlign, setAllowExternalFilters, setAnimateAcceleration, setAnimateFadeTime, setAnimateHideAcceleration, setAnimateHideTime, setAnimateMoveAcceleration, setAnimateMoveTime, setAnimateRectAcceleration, setAnimateRectTime, setAnimateResizeAcceleration, setAnimateResizeTime, setAnimateScrollAcceleration, setAnimateScrollTime, setAnimateShowAcceleration, setAnimateShowEffect, setAnimateShowTime, setAnimateTime, setAppImgDir, setAriaRole, setAriaState, setAutoChildConstructor, setAutoChildProperties, setAutoChildProperties, setAutoChildVisibility, setAutoDraw, setAutoHeight, setAutoShowParent, setAutoWidth, setBackgroundColor, setBackgroundImage, setBackgroundPosition, setBackgroundRepeat, setBorder, setBottom, setCanAcceptDrop, setCanDrag, setCanDragReposition, setCanDragResize, setCanDragScroll, setCanDrop, setCanDropBefore, setCanFocus, setCanHover, setCanSelectText, setChildren, setChildrenSnapResizeToGrid, setChildrenSnapToGrid, setContextMenu, setCursor, setDataPath, setDefaultHeight, setDefaultProperties, setDefaultWidth, setDisabled, setDisabledCursor, setDoubleClickDelay, setDragAppearance, setDragIntersectStyle, setDragMaskType, setDragOpacity, setDragRepositionAppearance, setDragRepositionCursor, setDragResizeAppearance, setDragScrollDelay, setDragStartDistance, setDragTarget, setDragType, setDropTypes, setDropTypes, setEdgeBackgroundColor, setEdgeCenterBackgroundColor, setEdgeImage, setEdgeMarginSize, setEdgeOffset, setEdgeOpacity, setEdgeShowCenter, setEdgeSize, setElement, setExtraSpace, setFacetId, setGroupBorderCSS, setGroupLabelBackgroundColor, setGroupLabelStyleName, setGroupTitle, setHeight, setHeight, setHeight, setHeight100, setHideUsingDisplayNone, setHoverAlign, setHoverAutoDestroy, setHoverDelay, setHoverHeight, setHoverMoveWithMouse, setHoverOpacity, setHoverStyle, setHoverVAlign, setHoverWidth, setHoverWrap, setHtmlElement, setHtmlPosition, setImage, setImage, setInitHandler, setIsGroup, setKeepInParentRect, setKeepInParentRect, setKeepInParentRect, setLayoutAlign, setLayoutAlign, setLeft, setLeft, setLocateChildrenBy, setLocateChildrenType, setLocatePeersBy, setLocatePeersType, setLogicalStructure, setMargin, setMatchElement, setMaxHeight, setMaxWidth, setMenuConstructor, setMinHeight, setMinWidth, setMomentumScrollMinSpeed, setMouseStillDownDelay, setMouseStillDownInitialDelay, setNeverUseFilters, setNoDoubleClicks, setOpacity, setOverflow, setPadding, setPageLeft, setPageTop, setParentCanvas, setParentElement, setPeers, setPercentBox, setPercentSource, setPosition, setPrefix, setPrintChildrenAbsolutelyPositioned, setPrompt, setRect, setRect, setRedrawOnResize, setResizeBarTarget, setResizeFrom, setResizeFrom, setRight, setScrollbarConstructor, setScrollbarSize, setShadowDepth, setShadowImage, setShadowOffset, setShadowSoftness, setShouldPrint, setShowCustomScrollbars, setShowDragShadow, setShowEdges, setShowHover, setShowHoverComponents, setShowResizeBar, setShowShadow, setShrinkElementOnHide, setSkinImgDir, setSmoothFade, setSnapAxis, setSnapEdge, setSnapHDirection, setSnapHGap, setSnapOffsetLeft, setSnapOffsetTop, setSnapOnDrop, setSnapResizeToGrid, setSnapTo, setSnapToGrid, setSnapVDirection, setSnapVGap, setStyleName, setTabIndex, setTitle, setTooltip, setTop, setTop, setUseBackMask, setUseDragMask, setUseNativeDrag, setUseOpacityFilter, setValuesManager, setVisibility, setVisible, setWidth, setWidth, setWidth, setWidth100, setZIndex, shouldDragScroll, show, showClickMask, showNextTo, showNextTo, showNextTo, showNextTo, showPrintPreview, showPrintPreview, showPrintPreview, showPrintPreview, showRecursively, updateEditNode, updateHover, updateHover, updateShadow, visibleAtPoint, willAcceptDrop
 
Methods inherited from class com.smartgwt.client.widgets.BaseWidget
addDrawHandler, destroy, doAddHandler, doInit, doOnRender, draw, equals, error, errorIfNotCreated, getAttribute, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDateArray, getAttributeAsDouble, getAttributeAsElement, getAttributeAsFloat, getAttributeAsFloatArray, getAttributeAsInt, getAttributeAsIntArray, getAttributeAsJavaScriptObject, getAttributeAsMap, getAttributeAsRecord, getAttributeAsString, getAttributeAsStringArray, getConfig, getDOM, getHandlerCount, getID, getInnerHTML, getJsObj, getOrCreateJsObj, getRef, getScClassName, hasAutoAssignedID, hashCode, initNativeObject, internalSetID, internalSetID, isConfigOnly, isCreated, onBind, onDestroy, onDraw, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setConfig, setConfigOnly, setDragTracker, setID, setJavaScriptObject, setLogicalStructure, setNullProperty, setPosition, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setScClassName, toString
 
Methods inherited from class com.google.gwt.user.client.ui.Widget
addAttachHandler, addBitlessDomHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, doAttachChildren, doDetachChildren, fireEvent, getLayoutData, getParent, isAttached, isOrWasAttached, onBrowserEvent, onLoad, onUnload, removeFromParent, setLayoutData, sinkEvents
 
Methods inherited from class com.google.gwt.user.client.ui.UIObject
addStyleDependentName, ensureDebugId, ensureDebugId, ensureDebugId, getStyleElement, getStyleName, getStylePrimaryName, getStylePrimaryName, isVisible, onEnsureDebugId, removeStyleDependentName, removeStyleName, resolvePotentialElement, setElement, setPixelSize, setSize, setStyleDependentName, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setVisible, sinkBitlessEvent, unsinkEvents
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.google.gwt.event.shared.HasHandlers
fireEvent
 

Constructor Detail

HTMLFlow

public HTMLFlow()

HTMLFlow

public HTMLFlow(JavaScriptObject jsObj)

HTMLFlow

public HTMLFlow(String contents)
Method Detail

getOrCreateRef

public static HTMLFlow getOrCreateRef(JavaScriptObject jsObj)

changeAutoChildDefaults

public static void changeAutoChildDefaults(String autoChildName,
                                           Canvas defaults)
Changes the defaults for Canvas AutoChildren named autoChildName.

Parameters:
autoChildName - name of an AutoChild to customize the defaults for.
defaults - Canvas defaults to apply. These defaults override any existing properties without destroying or wiping out non-overridden properties.
See Also:
AutoChildUsage

changeAutoChildDefaults

public static void changeAutoChildDefaults(String autoChildName,
                                           FormItem defaults)
Changes the defaults for FormItem AutoChildren named autoChildName.

Parameters:
autoChildName - name of an AutoChild to customize the defaults for.
defaults - FormItem defaults to apply. These defaults override any existing properties without destroying or wiping out non-overridden properties.
See Also:
AutoChildUsage

create

protected JavaScriptObject create()
Overrides:
create in class Canvas

setAllowCaching

public void setAllowCaching(Boolean allowCaching)
                     throws IllegalStateException
By default an HTMLFlow will explicitly prevent browser caching.

Set to true to allow browser caching if the browser would normally do so, in other words, if the HTTP headers returned with the response indicate that the response can be cached.

Parameters:
allowCaching - Default value is false
Throws:
IllegalStateException - this property cannot be changed after the component has been created

getAllowCaching

public Boolean getAllowCaching()
By default an HTMLFlow will explicitly prevent browser caching.

Set to true to allow browser caching if the browser would normally do so, in other words, if the HTTP headers returned with the response indicate that the response can be cached.

Returns:
Boolean

setCaptureSCComponents

public void setCaptureSCComponents(Boolean captureSCComponents)
                            throws IllegalStateException
If true, Smart GWT components created while executing the loaded HTML are captured for rendering inside the HTMLFlow.

Only applies when contentsType is not "page".

Parameters:
captureSCComponents - Default value is true
Throws:
IllegalStateException - this property cannot be changed after the component has been created

getCaptureSCComponents

public Boolean getCaptureSCComponents()
If true, Smart GWT components created while executing the loaded HTML are captured for rendering inside the HTMLFlow.

Only applies when contentsType is not "page".

Returns:
Boolean

setContents

public void setContents(String contents)
The contents of a canvas or label widget. Any HTML string is acceptable.

If this method is called after the component has been drawn/initialized: Changes the contents of a widget to newContents, an HTML string.

Overrides:
setContents in class Canvas
Parameters:
contents - an HTML string to be set as the contents of this widget See HTMLString . Default value is " "
See Also:
setDynamicContents(java.lang.Boolean)

getContents

public String getContents()
The contents of a canvas or label widget. Any HTML string is acceptable.

Overrides:
getContents in class Canvas
Returns:
See HTMLString
See Also:
getDynamicContents()

setContentsURL

public void setContentsURL(String contentsURL)
URL to load content from.

If specified, this component will load HTML content from the specified URL when it is first drawn.

This feature relies on the XMLHttpRequest object which can be disabled by end-users in some supported browsers. See PlatformDependencies for more information.

If this method is called after the component has been drawn/initialized: Change the URL this component loads content from. Triggers a fetch for content from the new URL.

Can also be called with no arguments to reload content from the existing contentsURL.

This feature relies on the XMLHttpRequest object which can be disabled by end-users in some supported browsers. See PlatformDependencies for more information.

Parameters:
contentsURL - URL to retrieve contents from. Default value is null

getContentsURL

public String getContentsURL()
URL to load content from.

If specified, this component will load HTML content from the specified URL when it is first drawn.

This feature relies on the XMLHttpRequest object which can be disabled by end-users in some supported browsers. See PlatformDependencies for more information.

Returns:
String

setDynamicContents

public void setDynamicContents(Boolean dynamicContents)
Dynamic contents allows the contents string to be treated as a simple, but powerful template. When this attribute is set to true, expressions of the form \${arbitrary JS here} are replaced by the result of the evaluation of the JS code inside the curly brackets. This evaluation happens at draw time. If you want to trigger a re-evaluation of the expressions in the contents string you can call markForRedraw() on the canvas.

You can use this feature to build some simple custom components. For example, let's say you want to show the value of a Slider in a Canvas somewhere on the screen. You can do this by observing the valueChanged() method on the slider and calling setContents() on your canvas with the new string or you can set the contents of the canvas to something like:

"The slider value is \${sliderInstance.getValue()}."

Next you set dynamicContents: true on the canvas, observe valueChanged() on the slider and call canvas.markForRedraw() in that observation. This approach is cleaner than setContents() when the Canvas is aggregating several values or dynamic expressions. Like so:

  Slider.create({
      ID: "mySlider"
  });
 
  Canvas.create({
      ID: "myCanvas",
      dynamicContents: true,
      contents: "The slider value is \${mySlider.getValue()}."
  });
 
  myCanvas.observe(mySlider, "valueChanged",
                   "observer.markForRedraw()");
  
You can embed an arbitrary number of dynamic expressions in the contents string. The search and replace is optimized for speed.

If an error occurs during the evaluation of one of the expressions, a warning is logged to the ISC Developer Console and the error string is embedded in place of the expected value in the Canvas.

The value of a function is its return value. The value of any variable is the same as that returned by its toString() representation.

Inside the evaluation contentext, this points to the canvas instance that has the dynamicContents string as its contents - in other words the canvas instance on which the template is declared.

Note : This is an advanced setting

Overrides:
setDynamicContents in class Canvas
Parameters:
dynamicContents - Default value is false
See Also:
setContents(java.lang.String), com.smartgwt.client.widgets.Canvas#setDynamicContentsVars

getDynamicContents

public Boolean getDynamicContents()
Dynamic contents allows the contents string to be treated as a simple, but powerful template. When this attribute is set to true, expressions of the form \${arbitrary JS here} are replaced by the result of the evaluation of the JS code inside the curly brackets. This evaluation happens at draw time. If you want to trigger a re-evaluation of the expressions in the contents string you can call markForRedraw() on the canvas.

You can use this feature to build some simple custom components. For example, let's say you want to show the value of a Slider in a Canvas somewhere on the screen. You can do this by observing the valueChanged() method on the slider and calling setContents() on your canvas with the new string or you can set the contents of the canvas to something like:

"The slider value is \${sliderInstance.getValue()}."

Next you set dynamicContents: true on the canvas, observe valueChanged() on the slider and call canvas.markForRedraw() in that observation. This approach is cleaner than setContents() when the Canvas is aggregating several values or dynamic expressions. Like so:

  Slider.create({
      ID: "mySlider"
  });
 
  Canvas.create({
      ID: "myCanvas",
      dynamicContents: true,
      contents: "The slider value is \${mySlider.getValue()}."
  });
 
  myCanvas.observe(mySlider, "valueChanged",
                   "observer.markForRedraw()");
  
You can embed an arbitrary number of dynamic expressions in the contents string. The search and replace is optimized for speed.

If an error occurs during the evaluation of one of the expressions, a warning is logged to the ISC Developer Console and the error string is embedded in place of the expected value in the Canvas.

The value of a function is its return value. The value of any variable is the same as that returned by its toString() representation.

Inside the evaluation contentext, this points to the canvas instance that has the dynamicContents string as its contents - in other words the canvas instance on which the template is declared.

Overrides:
getDynamicContents in class Canvas
Returns:
Boolean
See Also:
getContents(), com.smartgwt.client.widgets.Canvas#getDynamicContentsVars

setEvalScriptBlocks

public void setEvalScriptBlocks(Boolean evalScriptBlocks)
                         throws IllegalStateException
If evalScriptBlocks is true, HTMLFlow will pre-process the loaded HTML in order to mimic how the HTML would execute if it were loaded as an independent page or loaded via an IFRAME.

This feature is intended to assist with migrating existing applications to Smart GWT.

evalScriptBlocks is enabled by default when loading remote content (via contentsURL) and disabled by default for content supplied via HTMLFlow.setContents.

Note that, if evalScriptBlocks is false, <SCRIPT> blocks will still be detected and disabled to avoid the inconsistent results across different browsers.

Only applies when contentsType is not "page".

Parameters:
evalScriptBlocks - Default value is null
Throws:
IllegalStateException - this property cannot be changed after the component has been created

getEvalScriptBlocks

public Boolean getEvalScriptBlocks()
If evalScriptBlocks is true, HTMLFlow will pre-process the loaded HTML in order to mimic how the HTML would execute if it were loaded as an independent page or loaded via an IFRAME.

This feature is intended to assist with migrating existing applications to Smart GWT.

evalScriptBlocks is enabled by default when loading remote content (via contentsURL) and disabled by default for content supplied via HTMLFlow.setContents.

Note that, if evalScriptBlocks is false, <SCRIPT> blocks will still be detected and disabled to avoid the inconsistent results across different browsers.

Only applies when contentsType is not "page".

Returns:
Boolean

setHttpMethod

public void setHttpMethod(SendMethod httpMethod)
Selects the HTTP method that will be used when fetching content. Valid values are "POST" and "GET".

Parameters:
httpMethod - Default value is "GET"

getHttpMethod

public SendMethod getHttpMethod()
Selects the HTTP method that will be used when fetching content. Valid values are "POST" and "GET".

Returns:
SendMethod

setLoadingMessage

public void setLoadingMessage(String loadingMessage)
HTML to show while content is being fetched, active only if the contentsURL property has been set. Use "\${loadingImage}" to include a loading image.

The loading message will show both during the initial load of content, and during reload if the contents are reloaded or the contentsURL changed. For a first-time only loading message, initialize the contents property instead.
Note: the loadingMessage is never displayed when loading complete web pages rather than HTML fragments (see contentsType).

Parameters:
loadingMessage - Default value is "&nbsp;\${loadingImage}"

getLoadingMessage

public String getLoadingMessage()
HTML to show while content is being fetched, active only if the contentsURL property has been set. Use "\${loadingImage}" to include a loading image.

The loading message will show both during the initial load of content, and during reload if the contents are reloaded or the contentsURL changed. For a first-time only loading message, initialize the contents property instead.
Note: the loadingMessage is never displayed when loading complete web pages rather than HTML fragments (see contentsType).

Returns:
String

addContentLoadedHandler

public HandlerRegistration addContentLoadedHandler(ContentLoadedHandler handler)
Add a contentLoaded handler.

StringMethod fired when content is completely loaded in this htmlFlow. Has no default implementation. May be observed or overridden as a notification type method to fire custom logic when loading completes.

Notes:

Specified by:
addContentLoadedHandler in interface HasContentLoadedHandlers
Parameters:
handler - the contentLoaded handler
Returns:
HandlerRegistration used to remove this handler

loadingContent

public Boolean loadingContent()
Returns true if this htmlFlow is currently loading content from the server.
Note: Does not apply to htmlFlows with contentsType set to "page"

Returns:
whether content is currently being loaded
See Also:
ContentLoadedEvent

transformHTML

public void transformHTML(String html)
Override to modify the loaded HTML before it is rendered.

Parameters:
html - the html as loaded from the server return (HTML) html to be rendered

setDefaultProperties

public static void setDefaultProperties(HTMLFlow hTMLFlowProperties)
Class level method to set the default properties of this class. If set, then all existing and subsequently created instances of this class will automatically have default properties corresponding to the properties set on the SmartGWT class instance passed to this function before its underlying SmartClient JS object was created. This is a powerful feature that eliminates the need for users to create a separate hierarchy of subclasses that only alter the default properties of this class. Can also be used for skinning / styling purposes.

Note: This method is intended for setting default attributes only and will affect all instances of the underlying class (including those automatically generated in JavaScript). This method should not be used to apply standard EventHandlers or override methods for a class - use a custom subclass instead. Calling this method after instances have been created can result in undefined behavior, since it bypasses any setters and a class instance may have already examined a particular property and not be expecting any changes through this route.

Parameters:
hTMLFlowProperties - properties that should be used as new defaults when instances of this class are created

setContentsType

public void setContentsType(ContentsType contentsType)
                     throws IllegalStateException
The default setting of 'null' or 'fragment' indicates that HTML loaded from contentsURL is assumed to be an HTML fragment rather than a complete page. Set to "page" to load HTML as a standalone page, via an IFRAME.

contentsType:"page" should only be used for controlled HTML content, and only when such content cannot be delivered as an HTML fragment instead (the default). To dynamically load Smart GWT components, use ViewLoader, never this mechanism (click here for why).

Loading HTML content as a fragment is less resource intensive and avoids visual artifacts such as translucent media HTML content as a fragment is less resource intensive and avoids visual artifacts such as translucent media becoming opaque or disappearing when placed over an IFRAME.

Loading third-party, uncontrolled content could lead to the surrounding page disappearing if a user clicks on an HTML link with target=_top.

With contentsType:"page", loadingMessage is not supported, and only "GET" is supported for httpMethod.

Parameters:
contentsType - contentsType Default value is null
Throws:
IllegalStateException - this property cannot be changed after the component has been created

getContentsType

public ContentsType getContentsType()
The default setting of 'null' or 'fragment' indicates that HTML loaded from contentsURL is assumed to be an HTML fragment rather than a complete page. Set to "page" to load HTML as a standalone page, via an IFRAME.

contentsType:"page" should only be used for controlled HTML content, and only when such content cannot be delivered as an HTML fragment instead (the default). To dynamically load Smart GWT components, use ViewLoader, never this mechanism (click here for why).

Loading HTML content as a fragment is less resource intensive and avoids visual artifacts such as translucent media becoming opaque or disappearing when placed over an IFRAME.

Loading third-party, uncontrolled content could lead to the surrounding page disappearing if a user clicks on an HTML link with target=_top.

With contentsType:"page", loadingMessage is not supported, and only "GET" is supported for httpMethod.

Returns:
String

setContentsURLParams

public void setContentsURLParams(Map contentsURLParams)
Parameters to be sent to the contentsURL when fetching content.

Parameters:
contentsURLParams - parameters

setLogicalStructure

public com.smartgwt.logicalstructure.core.LogicalStructureObject setLogicalStructure(com.smartgwt.logicalstructure.widgets.HTMLFlowLogicalStructure s)

getLogicalStructure

public com.smartgwt.logicalstructure.core.LogicalStructureObject getLogicalStructure()
Specified by:
getLogicalStructure in interface LogicalStructure
Overrides:
getLogicalStructure in class Canvas