Package com.smartgwt.client.widgets.layout

# Class PortalLayout

java.lang.Object
com.google.gwt.user.client.ui.UIObject
com.google.gwt.user.client.ui.Widget
com.smartgwt.client.widgets.BaseWidget
com.smartgwt.client.widgets.Canvas
com.smartgwt.client.widgets.layout.Layout
com.smartgwt.client.widgets.layout.PortalLayout

All Implemented Interfaces:
  `HasAttachHandlers`, `HasHandlers`, `EventListener`, `HasVisibility`, `IsWidget`, `LogicalStructure`, `HasClearHandlers`, `HasClickHandlers`, `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`, `HasRuleContextChangedHandlers`, `HasScrolledHandlers`, `HasShowContextMenuHandlers`, `HasVisibilityChangedHandlers`, `HasMembersChangedHandlers`

public class PortalLayout extends Layout
A PortalLayout is a special subclass of Layout designed to display `Portlet` windows. A PortalLayout displays Portlets in columns and supports drag-drop interaction for moving Portlets around within the PortalLayout. Portlets may be drag-reordered within columns, dragged into other columns, or dragged next to other Portlets to sit next to them horizontally within a column. See `PortalLayoutDrop` for a discussion of drag and drop behavior within PortalLayouts.

See Also:
  - `Drag and Drop behavior within PortalLayouts`

- ## 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, factoryCreated, factoryProperties, id, nativeObject, scClassName`

  ### Fields inherited from class com.google.gwt.user.client.ui.UIObject

  `DEBUG_ID_PREFIX`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PortalLayout()`
  `PortalLayout(int numColumns)`
  `PortalLayout(JavaScriptObject jsObj)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addColumn(int index)`
  Adds a new portal column to this layout at the specified position
  `void`
  `addPortlet(Portlet portlet)`
  Adds a `Portlet` instance to this portalLayout in the specified position.
  `void`
  `addPortlet(Portlet portlet, int colNum, int rowNum)`
  Adds a `Portlet` instance to this portalLayout in the specified position.
  `void`
  `addPortlet(Portlet portlet, int colNum, int rowNum, int rowOffset)`
  Adds a `Portlet` instance to this portalLayout in the specified position.
  `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`
  `getCanAcceptDrop()`
  Drop is enabled for PortalLayouts by default.
  `Boolean`
  `getCanAddColumns()`
  Can the user add columns to this PortalLayout?
  `Boolean`
  `getCanResizeColumns()`
  Are columns in this PortalLayout drag-resizeable?
  `Boolean`
  `getCanResizePortlets()`
  Should the height and width of `Portlets` be drag-resizable?
  `Boolean`
  `getCanResizeRows()`
  Deprecated.
  Use `canResizePortlets` instead.
  `Boolean`
  `getCanShrinkColumnWidths()`
  Controls whether the PortalLayout will shrink column widths to avoid overflowing the PortalLayout horizontally.
  `Boolean`
  `getCanStretchColumnWidths()`
  Controls whether the PortalLayout will stretch column widths, if needed to accommodate the width of `Portlets`.
  `Layout`
  `getColumn()`
  Note : This API is non-functional (always returns null) and exists only to make you aware that this MultiAutoChild exists.
  `String`
  `getColumnBorder()`
  Border to show around columns in this PortalLayout
  `Overflow`
  `getColumnOverflow()`
  Controls the `overflow` setting for each column.
  `Integer`
  `getColumnSpacing()`
  The space between portal columns.
  `int`
  `getColumnWidth(int colNumber)`
  Gets the width of a column in the PortalLayout.
  `Canvas`
  `getDropPortlet(Canvas dragTarget, Integer colNum, Integer rowNum, Integer dropPosition)`
  This method is called when the user drops components into the rows or columns of this PortalLayout.
  `String[]`
  `getDropTypes()`
  This property may be explicitly specified to restrict which `target dragTypes` may be dropped directly onto the PortalLayout.
  `LogicalStructureObject`
  `getLogicalStructure()`
  Getter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.
  `int`
  `getNumColumns()`
  Initial number of columns to show in this PortalLayout.
  `static PortalLayout`
  `getOrCreateRef(JavaScriptObject jsObj)`
  `Overflow`
  `getOverflow()`
  Controls how the PortalLayout reacts when column widths or `Portlet` widths overflow the width of the PortalLayout.
  `PortalPosition`
  `getPortalPosition(Portlet portlet)`
  Gets the position of the `Portlet` within this PortalLayout.
  `Portlet`
  `getPortlet()`
  Note : This API is non-functional (always returns null) and exists only to make you aware that this MultiAutoChild exists.
  `Portlet[][][]`
  `getPortletArray()`
  Returns a multi-level array of the `Portlets` in this PortalLayout, where the first level corresponds to columns, the second to rows, and the third to Portlets within rows.
  `String[]`
  `getPortletDropTypes()`
  The `dropTypes` to be applied when dropping `Portlets` on this `PortalLayout`, or when dropping other components to be auto-wrapped in a `Portlet`.
  `Integer`
  `getPortletHDropOffset()`
  This property is used to determine the appropriate drop target for a component being dropped within this PortalLayout.
  `Integer`
  `getPortletHSpacing()`
  The horizontal space between portlets placed into the same row.
  `Portlet[]`
  `getPortlets()`
  Returns a flat array of all the `Portlets` in this PortalLayout.
  `Integer`
  `getPortletVSpacing()`
  The vertical space between portal rows.
  `Boolean`
  `getPreventColumnUnderflow()`
  Controls whether the last `Portlet` in a column will be stretched to fill the column's height, or left at its specified height.
  `Boolean`
  `getPreventRowUnderflow()`
  Controls whether the last `Portlet` in a row will be stretched to fill the row's width, or left at its specified width.
  `Boolean`
  `getPreventUnderflow()`
  Controls whether the last column will be stretched to fill the PortalLayout's width, or left at its specified width.
  `Boolean`
  `getRemoveEmptyColumns()`
  Should empty columns automatically be removed when all portlets are removed from a column?
  `Layout`
  `getRow()`
  Note : This API is non-functional (always returns null) and exists only to make you aware that this MultiAutoChild exists.
  `Layout`
  `getRowLayout()`
  Note : This API is non-functional (always returns null) and exists only to make you aware that this MultiAutoChild exists.
  `Boolean`
  `getShowColumnMenus()`
  Should a menu be shown within each column with options to add / remove columns?
  `Boolean`
  `getStretchColumnWidthsProportionally()`
  When `stretching column widths`, should we stretch all column widths proportionally, or just stretch the columns that need extra width?
  `void`
  `onInit()`
  `protected void`
  `onInit_PortalLayout()`
  `void`
  `portletMaximized(Portlet portlet)`
  Notification method called after a `Portlet` has been maximized (whether by user action or programmatically).
  `void`
  `portletMinimized(Portlet portlet)`
  Notification method called after a `Portlet` has been minimized (whether by user action or programmatically).
  `void`
  `portletRestored(Portlet portlet)`
  Notification method called after a `Portlet` has been restored to its normal place (after having been maximized).
  `void`
  `portletsChanged()`
  Fires at initialization if the PortalLayout has any initial `portlets`, and then fires whenever portlets are added, removed or reordered.
  `void`
  `portletsResized()`
  Fires when `portlets` or columns in this PortalLayout are resized.
  `void`
  `removeColumn(int index)`
  Removes the specified column from this layout.
  `void`
  `removePortlet(Portlet portlet)`
  Removes a `Portlet` which is currently rendered in this PortalLayout.
  `PortalLayout`
  `setCanAcceptDrop(Boolean canAcceptDrop)`
  Drop is enabled for PortalLayouts by default.
  `PortalLayout`
  `setCanAddColumns(Boolean canAddColumns)`
  Can the user add columns to this PortalLayout?
  `PortalLayout`
  `setCanResizeColumns(Boolean canResizeColumns)`
  Are columns in this PortalLayout drag-resizeable?
  `PortalLayout`
  `setCanResizePortlets(Boolean canResizePortlets)`
  Should the height and width of `Portlets` be drag-resizable?
  `PortalLayout`
  `setCanResizeRows(Boolean canResizeRows)`
  Deprecated.
  Use `canResizePortlets` instead.
  `PortalLayout`
  `setCanShrinkColumnWidths(Boolean canShrinkColumnWidths)`
  Controls whether the PortalLayout will shrink column widths to avoid overflowing the PortalLayout horizontally.
  `PortalLayout`
  `setCanStretchColumnWidths(Boolean canStretchColumnWidths)`
  Controls whether the PortalLayout will stretch column widths, if needed to accommodate the width of `Portlets`.
  `PortalLayout`
  `setColumnBorder(String columnBorder)`
  Border to show around columns in this PortalLayout
  If this method is called after the component has been drawn/initialized: Sets the columnBorder for to the specified value and updates any drawn columns to reflect this.
  `PortalLayout`
  `setColumnOverflow(Overflow columnOverflow)`
  Controls the `overflow` setting for each column.
  `PortalLayout`
  `setColumnSpacing(Integer columnSpacing)`
  The space between portal columns.
  `void`
  `setColumnWidth(int colNumber, int width)`
  Sets the width of a column in the PortalLayout.
  `void`
  `setColumnWidth(int colNumber, String width)`
  Sets the width of a column in the PortalLayout.
  `static void`
  `setDefaultProperties(PortalLayout portalLayoutProperties)`
  Class level method to set the default properties of this class.
  `PortalLayout`
  `setDropTypes(String... dropTypes)`
  This property may be explicitly specified to restrict which `target dragTypes` may be dropped directly onto the PortalLayout.
  `LogicalStructureObject`
  `setLogicalStructure(PortalLayoutLogicalStructure s)`
  Setter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.
  `PortalLayout`
  `setNumColumns(int numColumns)`
  Initial number of columns to show in this PortalLayout.
  `PortalLayout`
  `setOverflow(Overflow overflow)`
  Controls how the PortalLayout reacts when column widths or `Portlet` widths overflow the width of the PortalLayout.
  `PortalLayout`
  `setPortletDropTypes(String... portletDropTypes)`
  The `dropTypes` to be applied when dropping `Portlets` on this `PortalLayout`, or when dropping other components to be auto-wrapped in a `Portlet`.
  `PortalLayout`
  `setPortletHDropOffset(Integer portletHDropOffset)`
  This property is used to determine the appropriate drop target for a component being dropped within this PortalLayout.
  `PortalLayout`
  `setPortletHSpacing(Integer portletHSpacing)`
  The horizontal space between portlets placed into the same row.
  `PortalLayout`
  `setPortlets(Portlet... portlets)`
  A convenience attribute which you can use to populate a PortalLayout with `Portlets` on initialization.
  `PortalLayout`
  `setPortletVSpacing(Integer portletVSpacing)`
  The vertical space between portal rows.
  `PortalLayout`
  `setPreventColumnUnderflow(Boolean preventColumnUnderflow)`
  Controls whether the last `Portlet` in a column will be stretched to fill the column's height, or left at its specified height.
  `PortalLayout`
  `setPreventRowUnderflow(Boolean preventRowUnderflow)`
  Controls whether the last `Portlet` in a row will be stretched to fill the row's width, or left at its specified width.
  `PortalLayout`
  `setPreventUnderflow(Boolean preventUnderflow)`
  Controls whether the last column will be stretched to fill the PortalLayout's width, or left at its specified width.
  `PortalLayout`
  `setRemoveEmptyColumns(Boolean removeEmptyColumns)`
  Should empty columns automatically be removed when all portlets are removed from a column?
  `PortalLayout`
  `setShowColumnMenus(Boolean showColumnMenus)`
  Should a menu be shown within each column with options to add / remove columns?
  If this method is called after the component has been drawn/initialized: Sets `showColumnMenus` and updates existing columns to reflect the new setting.
  `PortalLayout`
  `setStretchColumnWidthsProportionally(Boolean stretchColumnWidthsProportionally)`
  When `stretching column widths`, should we stretch all column widths proportionally, or just stretch the columns that need extra width?
  `Boolean`
  `willAcceptDrop()`
  This method has been overridden to support drag-reorder of PortalColumns, and adding of new rows by dropping directly on the PortalLayout, as described in `dropTypes`
  `Boolean`
  `willAcceptPortletDrop(Canvas dragTarget, Integer colNum, Integer rowNum, Integer dropPosition)`
  Returns true if the dragged `Portlet`, or other component, can be dropped onto this `PortalLayout` (other components would be auto-wrapped in a `Portlet`).
  `boolean`
  `willClosePortlet(Portlet portlet)`
  Method called when a `Portlet` in this PortalLayout is about to be closed.
  `boolean`
  `willMaximizePortlet(Portlet portlet)`
  Method called when a `Portlet` in this PortalLayout is about to be maximized.
  `boolean`
  `willMinimizePortlet(Portlet portlet)`
  Method called when a `Portlet` in this PortalLayout is about to be minimized.
  `boolean`
  `willRestorePortlet(Portlet portlet)`
  Method called when a `Portlet` in this PortalLayout is about to be restored to its normal place (after having been `maximized`.

  ### Methods inherited from class com.smartgwt.client.widgets.layout.Layout

  `addMember, addMember, addMember, addMember, addMemberPostCreate, addMemberPostCreate, addMemberPreCreate, addMemberPreCreate, addMembers, addMembers, addMembersChangedHandler, getAnimateMembers, getAnimateMemberTime, getCanDropComponents, getChildTabPosition, getDefaultResizeBars, getDropComponent, getDropLine, getDropLineThickness, getDropPosition, getEditProxyConstructor, getEnforcePolicy, getHPolicy, getLayoutBottomMargin, getLayoutEndMargin, getLayoutLeftMargin, getLayoutMargin, getLayoutRightMargin, getLayoutStartMargin, getLayoutTopMargin, getLeaveScrollbarGap, getLocateMembersBy, getLocateMembersType, getManagePercentBreadth, getMember, getMember, getMemberDefaultBreadth, getMemberNumber, getMemberNumber, getMemberOverlap, getMembers, getMembersAsStringArray, getMembersLength, getMembersMargin, getMinMemberLength, getMinMemberSize, getPaddingAsLayoutMargin, getResizeBar, getResizeBarClass, getResizeBarSize, getReverseOrder, getShowDragPlaceHolder, getShowDropLines, getStackZIndex, getVertical, getVPolicy, hasMember, hideDropLine, hideMember, hideMember, layoutIsDirty, onInit_Layout, reflow, reflow, reflowNow, removeMember, removeMembers, removeMembers, reorderMember, reorderMembers, replaceMember, revealChild, revealChild, setAlign, setAlign, setAnimateMembers, setAnimateMemberTime, setCanDropComponents, setDefaultLayoutAlign, setDefaultLayoutAlign, setDefaultProperties, setDefaultResizeBars, setDropLineProperties, setDropLineThickness, setEditProxyConstructor, setEnforcePolicy, setHPolicy, setLayoutBottomMargin, setLayoutEndMargin, setLayoutLeftMargin, setLayoutMargin, setLayoutRightMargin, setLayoutStartMargin, setLayoutTopMargin, setLeaveScrollbarGap, setLocateMembersBy, setLocateMembersType, setLogicalStructure, setManagePercentBreadth, setMemberOverlap, setMembers, setMembers, setMembersMargin, setMinBreadthMember, setMinBreadthMember, setMinBreadthMember, setMinMemberLength, setMinMemberSize, setPaddingAsLayoutMargin, setPlaceHolderDefaults, setPlaceHolderProperties, setResizeBarClass, setResizeBarSize, setReverseOrder, setShowDragPlaceHolder, setShowDropLines, setStackZIndex, setVertical, setVisibleMember, setVPolicy, showMember, showMember`

  ### Methods inherited from class com.smartgwt.client.widgets.Canvas

  `addChild, addChild, addChild, addChild, addChild, addClearHandler, 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, addRuleContextChangedHandler, addScrolledHandler, addShowContextMenuHandler, addSnapAlignCandidate, addStyleName, addVisibilityChangedHandler, adjustForContent, animateFade, animateFade, animateFade, animateFade, animateFade, animateFade, animateFade, animateFade, animateHide, animateHide, animateHide, animateHide, 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, animateShow, asSGWTComponent, blur, bringToFront, clear, clearExplicitTabIndex, clickMaskUp, clickMaskUp, contains, contains, containsEvent, containsEventTarget, containsFocus, containsPoint, containsPoint, contentsComponentConnected, dataContextChanged, deparent, depeer, disable, doValueDictation, doVoiceCommand, enable, encloses, endBatchCreation, focus, focusAfterGroup, focusAtEnd, focusInNextTabElement, focusInPreviousTabElement, getAbsoluteLeft, getAbsoluteTop, getAccessKey, getAdaptiveHeightPriority, getAdaptiveWidthPriority, getAllCanvases, getAllCanvases, getAllCanvases, getAlwaysManageFocusNavigation, getAlwaysShowScrollbars, getAnimateAcceleration, getAnimateFadeTime, getAnimateHideAcceleration, getAnimateHideEffect, getAnimateHideTime, getAnimateMoveAcceleration, getAnimateMoveTime, getAnimateRectAcceleration, getAnimateRectTime, getAnimateResizeAcceleration, getAnimateResizeLayoutMode, getAnimateResizeTime, getAnimateScrollAcceleration, getAnimateScrollTime, getAnimateShowAcceleration, getAnimateShowEffect, getAnimateShowTime, getAnimateTime, getAppImgDir, getAriaHandleID, getAriaRole, getAriaStateDefaults, getAutoMaskComponents, getAutoParent, getAutoPopulateData, getAutoRevertStyles, getAutoShowParent, getBackgroundColor, getBackgroundImage, getBackgroundPosition, getBackgroundRepeat, getBorder, getBorderRadius, getBottom, getById, getByJSObject, getByLocalId, getCanAdaptHeight, getCanAdaptWidth, getCanDrag, getCanDragReposition, getCanDragResize, getCanDragScroll, getCanDrop, getCanDropBefore, getCanDropContent, getCanDropFiles, getCanFocus, getCanHover, getCanSelectText, getCanvasAutoChild, getCanvasItem, getChildren, getChildrenAsStringArray, getChildrenResizeSnapAlign, getChildrenSnapAlign, getChildrenSnapCenterAlign, getChildrenSnapEdgeAlign, getChildrenSnapResizeToGrid, getChildrenSnapToGrid, getClassName, getComponentMask, getComponentMaskDefaults, getContentElement, getContents, getContentsComponentDefaults, getContextMenu, getControlHeight, getCorrectZoomOverflow, getCursor, getDataContext, getDataPath, getDefaultHeight, getDefaultWidth, getDeferActionConversion, getDefiningProperty, getDefiningPropertyName, getDefiningPropertyNameOptions, getDestroyed, getDestroying, getDisabled, getDisabledCursor, getDisableTouchScrollingForDrag, getDoubleClickDelay, getDragAppearance, getDragIntersectStyle, getDragMaskType, getDragMaxHeight, getDragMaxWidth, getDragMinHeight, getDragMinWidth, getDragOpacity, getDragRepositionAppearance, getDragRepositionCursor, getDragResizeAppearance, getDragScrollDelay, getDragStartDistance, getDragTarget, getDragTargetAsString, getDragType, getDropTarget, getDropTargetAsString, getDropTypesAsString, getDynamicContents, getEdgeBackgroundColor, getEdgeCenterBackgroundColor, getEdgeImage, getEdgeMarginSize, getEdgeOffset, getEdgeOpacity, getEdgeShowCenter, getEdgeSize, getEditNode, getEditProxy, getElement, getElement, getEnableWhen, getEndLine, getEventEdge, getEventEdge, getEvents, getExtraSpace, getFacetId, getFloatingScrollbars, getFormItemAutoChild, getForwardSVGeventsToObject, getFullDataPath, getGroupBorderCSS, getGroupLabelBackgroundColor, getGroupLabelStyleName, getGroupPadding, getGroupTitle, getHeight, getHeightAsString, getHideUsingDisplayNone, getHoverAlign, getHoverAutoDestroy, getHoverAutoFitMaxWidth, getHoverAutoFitMaxWidthAsString, getHoverAutoFitWidth, getHoverComponent, getHoverDelay, getHoverFocusKey, getHoverHeight, getHoverHTML, getHoverMoveWithMouse, getHoverOpacity, getHoverPersist, getHoverScreen, getHoverStyle, getHoverVAlign, getHoverWidth, getHoverWrap, getHSnapPosition, getHSnapPosition, getHtmlElement, getHtmlElementAsString, getHtmlPosition, getImage, getImgURL, getImgURL, getInnerContentHeight, getInnerContentWidth, getInnerHeight, getInnerWidth, getIsGroup, getIsPrinting, getIsRuleScope, getIsSnapAlignCandidate, getKeepInParentRect, getLayoutAlign, getLeaveGroupLabelSpace, getLeavePageSpace, getLeft, getLeftAsString, getLocalId, getLocateByIDOnly, getLocateChildrenBy, getLocateChildrenType, getLocatePeersBy, getLocatePeersType, getLocatorName, getMargin, getMasterCanvas, getMasterElement, getMatchElement, getMatchElementHeight, getMatchElementWidth, getMaxHeight, getMaxWidth, getMaxZoomOverflowError, getMenuConstructor, getMinHeight, getMinNonEdgeSize, getMinWidth, getMomentumScrollMinSpeed, getMouseStillDownDelay, getMouseStillDownInitialDelay, getName, getNativeAutoHideScrollbars, getNextZIndex, getNoDoubleClicks, getNoDropCursor, getOffsetHeight, getOffsetWidth, getOffsetX, getOffsetY, getOpacity, getOuterElement, getPadding, getPageBottom, getPageLeft, getPageRect, getPageRight, getPageTop, getPaletteDefaults, getPanelContainer, getParentCanvas, getParentCanvasAsString, getParentElement, getParentElementAsString, getPeers, getPendingMarkerStyle, getPendingMarkerVisible, getPercentBox, getPercentSource, getPersistentMatchElement, getPointerSettings, getPointerTarget, getPointerTargetAsString, getPosition, getPrefix, getPrintChildrenAbsolutelyPositioned, getPrintHTML, getPrintHTML, getPrintStyleName, getPrompt, getProportionalResizeModifiers, getProportionalResizing, getReceiveScrollbarEvents, getRect, getRedrawOnResize, getResizeBarTarget, getResizeFrom, getRight, getRuleContext, getRuleContext, getRuleScope, getScrollbarSize, getScrollBottom, getScrollHeight, getScrollLeft, getScrollRight, getScrollTop, getScrollWidth, getShadowColor, getShadowDepth, getShadowHOffset, getShadowImage, getShadowOffset, getShadowSoftness, getShadowSpread, getShadowVOffset, getShouldPrint, getShowCustomScrollbars, getShowDragShadow, getShowEdges, getShowFocusOutline, getShowHover, getShowHoverComponents, getShowPointer, getShowResizeBar, getShowShadow, getShowSnapGrid, getShrinkElementOnHide, getSingleDiv, getSizeMayChangeOnRedraw, getSkinImgDir, getSnapAlignCandidates, getSnapAlignCenterLineStyle, getSnapAlignEdgeLineStyle, getSnapAxis, getSnapEdge, getSnapGridLineProperties, getSnapGridStyle, getSnapHDirection, getSnapHGap, getSnapOffsetLeft, getSnapOffsetTop, getSnapOnDrop, getSnapPosition, getSnapPosition, getSnapResizeToAlign, getSnapResizeToGrid, getSnapTo, getSnapToAlign, getSnapToCenterAlign, getSnapToEdgeAlign, getSnapToGrid, getSnapVDirection, getSnapVGap, getStartLine, getStyleName, getSuppressRedraw, getTabIndex, getTestDataContext, getTestInstance, getTitle, getTooltip, getTop, getTopAsString, getTopElement, getTopLevelComponents, getUpdateTabPositionOnDraw, getUpdateTabPositionOnReparent, getUseBackMask, getUseCSSShadow, getUseDragMask, getUseGeneratedStyles, getUseImageForSVG, getUseNativeDrag, getUseOpacityFilter, getUseTouchScrolling, getValuesManager, getValuesManagerAsString, getViewportHeight, getViewportWidth, getVisibility, getVisibleHeight, getVisibleWhen, getVisibleWidth, getVSnapPosition, getVSnapPosition, getWidth, getWidthAsString, getWorkflows, getZIndex, getZIndex, handleHover, hide, hideClickMask, hideClickMask, hideComponentMask, hideComponentMask, hideContextMenu, imgHTML, imgHTML, imgHTML, initComplete, intersects, isDirty, isDisabled, isFocused, isVisible, keyUp, layoutChildren, linkHTML, linkHTML, linkHTML, linkHTML, linkHTML, linkHTML, markForDestroy, markForRedraw, markForRedraw, moveAbove, moveBelow, moveBy, moveTo, onAttach, onDetach, pageScrollDown, pageScrollUp, parentResized, placeNear, placeNear, placeNear, print, print, print, print, printComponents, provideRuleContext, provideRuleContext, redraw, redraw, registerAIService, registerFontScaledPaddingStyles, removeChild, removeChild, removePeer, removePeer, removeRuleContext, removeSnapAlignCandidate, resizeAutoChildAttributes, resizeBy, resizeControls, resizeControlsTo, resizeFonts, resizeFonts, resizeFonts, resizeFontsTo, resizeIcons, resizePadding, resizePadding, resizeTo, resizeTo, resolveContentsComponent, scrollBy, scrollByPercent, scrollTo, scrollTo, scrollTo, scrollTo, scrollTo, scrollToBottom, scrollToLeft, scrollToPercent, scrollToRight, scrollToTop, sendToBack, setAccessKey, setAdaptHeightByCustomizer, setAdaptiveHeightPriority, setAdaptiveWidthPriority, setAdaptWidthByCustomizer, setAllowExternalFilters, setAlwaysManageFocusNavigation, setAlwaysShowScrollbars, setAnimateAcceleration, setAnimateFadeTime, setAnimateHideAcceleration, setAnimateHideEffect, setAnimateHideTime, setAnimateMoveAcceleration, setAnimateMoveTime, setAnimateRectAcceleration, setAnimateRectTime, setAnimateResizeAcceleration, setAnimateResizeLayoutMode, setAnimateResizeTime, setAnimateScrollAcceleration, setAnimateScrollTime, setAnimateShowAcceleration, setAnimateShowEffect, setAnimateShowTime, setAnimateTime, setAppImgDir, setAriaRole, setAriaState, setAutoChildConstructor, setAutoChildProperties, setAutoChildProperties, setAutoChildProperties, setAutoChildProperties, setAutoChildVisibility, setAutoHeight, setAutoMaskComponents, setAutoParent, setAutoPopulateData, setAutoResizeAutoChildAttributes, setAutoResizeIcons, setAutoRevertStyles, setAutoShowParent, setAutoWidth, setBackgroundColor, setBackgroundImage, setBackgroundPosition, setBackgroundRepeat, setBorder, setBorderRadius, setBottom, setCanAdaptHeight, setCanAdaptWidth, setCanDrag, setCanDragReposition, setCanDragResize, setCanDragScroll, setCanDrop, setCanDropBefore, setCanDropContent, setCanDropFiles, setCanFocus, setCanHover, setCanSelectText, setChildren, setChildrenResizeSnapAlign, setChildrenSnapAlign, setChildrenSnapCenterAlign, setChildrenSnapEdgeAlign, setChildrenSnapResizeToGrid, setChildrenSnapToGrid, setComponentMaskDefaults, setContents, setContentsComponentDefaults, setContextMenu, setCorrectZoomOverflow, setCursor, setDataContext, setDataPath, setDefaultHeight, setDefaultNativeAutoHideScrollbars, setDefaultPageSpace, setDefaultProperties, setDefaultShowCustomScrollbars, setDefaultWidth, setDeferActionConversion, setDefiningProperty, setDefiningPropertyNameOptions, setDisabled, setDisabledCursor, setDisableTouchScrollingForDrag, setDoubleClickDelay, setDragAppearance, setDragIntersectStyle, setDragMaskType, setDragMaxHeight, setDragMaxWidth, setDragMinHeight, setDragMinWidth, setDragOpacity, setDragRepositionAppearance, setDragRepositionCursor, setDragResizeAppearance, setDragScrollDelay, setDragStartDistance, setDragTarget, setDragTarget, setDragType, setDropTarget, setDropTarget, setDropTypes, setDynamicContents, setEdgeBackgroundColor, setEdgeCenterBackgroundColor, setEdgeImage, setEdgeMarginSize, setEdgeOffset, setEdgeOpacity, setEdgeShowCenter, setEdgeSize, setEditMode, setEditMode, setEditMode, setElement, setEnableWhen, setEndLine, setExtraSpace, setFacetId, setFloatingScrollbars, setForwardSVGeventsToObject, setGroupBorderCSS, setGroupLabelBackgroundColor, setGroupLabelStyleName, setGroupPadding, setGroupTitle, setHeight, setHeight, setHeight, setHeight100, setHideUsingDisplayNone, setHoverAlign, setHoverAutoDestroy, setHoverAutoFitMaxWidth, setHoverAutoFitMaxWidth, setHoverAutoFitWidth, setHoverDelay, setHoverFocusKey, setHoverHeight, setHoverMoveWithMouse, setHoverOpacity, setHoverPersist, setHoverScreen, setHoverStyle, setHoverVAlign, setHoverWidth, setHoverWrap, setHtmlElement, setHtmlElement, setHtmlPosition, setImage, setImage, setInitHandler, setIsGroup, setIsRuleScope, setIsSnapAlignCandidate, setKeepInParentRect, setKeepInParentRect, setKeepInParentRect, setLayoutAlign, setLayoutAlign, setLeaveGroupLabelSpace, setLeavePageSpace, setLeft, setLeft, setLocateByIDOnly, setLocateChildrenBy, setLocateChildrenType, setLocatePeersBy, setLocatePeersType, setLocatorName, setLocatorParent, setLocatorParent, setLogicalStructure, setMargin, setMatchElement, setMatchElementHeight, setMatchElementWidth, setMaxHeight, setMaxWidth, setMaxZoomOverflowError, setMenuConstructor, setMinHeight, setMinNonEdgeSize, setMinWidth, setMomentumScrollMinSpeed, setMouseStillDownDelay, setMouseStillDownInitialDelay, setName, setNativeAutoHideScrollbars, setNeverUseFilters, setNoDoubleClicks, setNoDropCursor, setOpacity, setPadding, setPageLeft, setPageTop, setPanelContainer, setParentCanvas, setParentCanvas, setParentElement, setParentElement, setPeers, setPendingMarkerStyle, setPendingMarkerVisible, setPercentBox, setPercentSource, setPersistentMatchElement, setPointerSettings, setPointerTarget, setPosition, setPrefix, setPrintChildrenAbsolutelyPositioned, setPrintStyleName, setPrompt, setProportionalResizeModifiers, setProportionalResizing, setReceiveScrollbarEvents, setRect, setRect, setRedrawOnResize, setRelativeTabPosition, setResizeBarTarget, setResizeFrom, setResizeFrom, setRight, setRuleScope, setScrollbarConstructor, setScrollbarSize, setShadowColor, setShadowDepth, setShadowHOffset, setShadowImage, setShadowOffset, setShadowSoftness, setShadowSpread, setShadowVOffset, setShouldPrint, setShowCustomScrollbars, setShowDragShadow, setShowEdges, setShowFocusOutline, setShowHover, setShowHoverComponents, setShowPointer, setShowResizeBar, setShowShadow, setShowSnapGrid, setShrinkElementOnHide, setSingleDiv, setSizeMayChangeOnRedraw, setSkinImgDir, setSmoothFade, setSnapAlignCandidates, setSnapAlignCenterLineStyle, setSnapAlignEdgeLineStyle, setSnapAxis, setSnapEdge, setSnapGridLineProperties, setSnapGridStyle, setSnapHDirection, setSnapHGap, setSnapOffsetLeft, setSnapOffsetTop, setSnapOnDrop, setSnapResizeToAlign, setSnapResizeToGrid, setSnapTo, setSnapToAlign, setSnapToCenterAlign, setSnapToEdgeAlign, setSnapToGrid, setSnapVDirection, setSnapVGap, setStartLine, setStyleName, setSuppressRedraw, setTabIndex, setTestDataContext, setTitle, setTooltip, setTop, setTop, setUpdateTabPositionOnDraw, setUpdateTabPositionOnReparent, setUseBackMask, setUseCSSShadow, setUseDragMask, setUseGeneratedStyles, setUseImageForSVG, setUseNativeDrag, setUseOpacityFilter, setUseTouchScrolling, setValuesManager, setValuesManager, setVisibility, setVisible, setVisibleWhen, setWidth, setWidth, setWidth, setWidth100, setWorkflows, setZIndex, shouldDragScroll, show, showClickMask, showComponentMask, showComponentMask, showNextTo, showNextTo, showNextTo, showNextTo, showPendingMarker, showPrintPreview, showPrintPreview, showPrintPreview, showPrintPreview, showRecursively, startBatchCreation, startDebuggingOverflow, stopDebuggingOverflow, subtractRects, supportsValueDictation, supportsVoiceCommands, unregisterAIService, updateChildTabPosition, updateChildTabPositions, updateEditNode, updateHover, updateHover, updateShadow, updateTabPositionForDraw, visibleAtPoint`

  ### Methods inherited from class com.smartgwt.client.widgets.BaseWidget

  `addDrawHandler, addDynamicProperty, addDynamicProperty, addDynamicProperty, addDynamicProperty, applyFactoryProperties, clearDynamicProperty, completeCreation, destroy, doAddHandler, doInit, doOnRender, draw, equals, error, errorIfNotCreated, getAttribute, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDateArray, getAttributeAsDouble, getAttributeAsElement, getAttributeAsFloat, getAttributeAsFloatArray, getAttributeAsInt, getAttributeAsIntArray, getAttributeAsJavaScriptObject, getAttributeAsMap, getAttributeAsObject, getAttributeAsRecord, getAttributeAsString, getAttributeAsStringArray, getAutoDraw, getConfig, getDOM, getHandlerCount, getID, getInnerHTML, getJsObj, getOrCreateJsObj, getRef, getScClassName, hasAutoAssignedID, hasDynamicProperty, hashCode, initNativeObject, internalSetID, internalSetID, isConfigOnly, isCreated, isDrawn, isFactoryCreated, 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, setAutoDraw, setConfig, setConfigOnly, setDefaultProperties, setDragTracker, setFactoryCreated, setID, setJavaScriptObject, setLogicalStructure, 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, unsinkEvents`

  ### 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`

  ### 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 Details

  - ### PortalLayout

    public PortalLayout()

  - ### PortalLayout

    public PortalLayout(JavaScriptObject jsObj)

  - ### PortalLayout

    public PortalLayout(int numColumns)

- ## Method Details

  - ### getOrCreateRef

    public static PortalLayout 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. For usage tips on this param, see `SGWTProperties`.
    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. For usage tips on this param, see `SGWTProperties`.
    See Also:
      - `AutoChildUsage`

  - ### create

    protected JavaScriptObject create()
    Overrides:
      `create` in class `Layout`

  - ### setCanAcceptDrop

    public PortalLayout setCanAcceptDrop(Boolean canAcceptDrop)
    Drop is enabled for PortalLayouts by default. See `dropTypes` and `PortalLayoutDrop` for more information about PortalLayout drop behavior.
    Overrides:
      `setCanAcceptDrop` in class `Canvas`
    Parameters:
      `canAcceptDrop` - New canAcceptDrop value. Default value is true
    Returns:
      `PortalLayout` instance, for chaining setter calls
    See Also:
      - `Drag and Drop behavior within PortalLayouts`

  - ### getCanAcceptDrop

    public Boolean getCanAcceptDrop()
    Drop is enabled for PortalLayouts by default. See `dropTypes` and `PortalLayoutDrop` for more information about PortalLayout drop behavior.
    Overrides:
      `getCanAcceptDrop` in class `Canvas`
    Returns:
      Current canAcceptDrop value. Default value is true
    See Also:
      - `Drag and Drop behavior within PortalLayouts`

  - ### setCanAddColumns

    public PortalLayout setCanAddColumns(Boolean canAddColumns)
    Can the user add columns to this PortalLayout?

    Columns may be added via the `column menu`, or by dragging a portlet and dropping next to an existing column, if `dropTypes` includes the drop type for the portlet.

    Note that if `removeEmptyColumns` is true, when the user drags every portlet out of a portalLayout column, the column will be removed automatically.
    If this method is called after the component has been drawn/initialized: Sets `canAddColumns`.

    Parameters:
      `canAddColumns` - The new value for `canAddColumns`. Default value is true
    Returns:
      `PortalLayout` instance, for chaining setter calls

  - ### getCanAddColumns

    public Boolean getCanAddColumns()
    Can the user add columns to this PortalLayout?

    Columns may be added via the `column menu`, or by dragging a portlet and dropping next to an existing column, if `dropTypes` includes the drop type for the portlet.

    Note that if `removeEmptyColumns` is true, when the user drags every portlet out of a portalLayout column, the column will be removed automatically.

    Returns:
      Current canAddColumns value. Default value is true

  - ### setCanResizeColumns

    public PortalLayout setCanResizeColumns(Boolean canResizeColumns)
    Are columns in this PortalLayout drag-resizeable?

    Note that the displayed width of a column will automatically shrink and stretch to accommodate the width of `Portlets` -- see `canStretchColumnWidths` and `canShrinkColumnWidths` for an explanation. This setting affects the intrinsic width of a column -- that is, the width it will try to return to when not necessary to stretch or shrink to accommodate Portlet widths.
    If this method is called after the component has been drawn/initialized: Set whether columns in this portalLayout are drag-resizable, and update any drawn columns to reflect this.

    Parameters:
      `canResizeColumns` - Whether columns are drag-resizable. Default value is true
    Returns:
      `PortalLayout` instance, for chaining setter calls
    See Also:
      - `setCanStretchColumnWidths(java.lang.Boolean)`
      - `setCanShrinkColumnWidths(java.lang.Boolean)`
      - `Sizing overview and related methods`

  - ### getCanResizeColumns

    public Boolean getCanResizeColumns()
    Are columns in this PortalLayout drag-resizeable?

    Note that the displayed width of a column will automatically shrink and stretch to accommodate the width of `Portlets` -- see `canStretchColumnWidths` and `canShrinkColumnWidths` for an explanation. This setting affects the intrinsic width of a column -- that is, the width it will try to return to when not necessary to stretch or shrink to accommodate Portlet widths.

    Returns:
      Current canResizeColumns value. Default value is true
    See Also:
      - `getCanStretchColumnWidths()`
      - `getCanShrinkColumnWidths()`
      - `Sizing overview and related methods`

  - ### setCanResizePortlets

    public PortalLayout setCanResizePortlets(Boolean canResizePortlets)
    Should the height and width of `Portlets` be drag-resizable?

    Note that changing the height of a Portlet will change the height of all the Portlets in the same row to match.

    If the height of Portlets causes a column to overflow, that column will scroll vertically (independent of other columns), depending on the `columnOverflow` setting.

    Changing the width of a Portlet will potentially cause columns to stretch and shrink their displayed widths in order to accommodate the Portlets, depending on the value of `canStretchColumnWidths` and `canShrinkColumnWidths`.

    However, the instrinsic width of the columns will remain the same, so that the columns will resume their former widths when no longer necessary to stretch or shrink to accommodate the widths of Portlets. To allow drag-resizing of the intrinsic width of columns, see `canResizeColumns`.

    The net effect is that (by default) PortalLayouts behave like layouts when Portlet sizes do not cause overflow, but behave more like stacks when overflow occurs.
    If this method is called after the component has been drawn/initialized: Set whether the height and width of `Portlets` should be drag-resizable, and update any drawn Portlets to reflect this.

    Parameters:
      `canResizePortlets` - Whether drag-resizing the height and width of portlets is allowed. Default value is false
    Returns:
      `PortalLayout` instance, for chaining setter calls
    See Also:
      - `setCanResizeColumns(java.lang.Boolean)`
      - `setCanStretchColumnWidths(java.lang.Boolean)`
      - `setCanShrinkColumnWidths(java.lang.Boolean)`
      - `setColumnOverflow(com.smartgwt.client.types.Overflow)`
      - `Sizing overview and related methods`

  - ### getCanResizePortlets

    public Boolean getCanResizePortlets()
    Should the height and width of `Portlets` be drag-resizable?

    Note that changing the height of a Portlet will change the height of all the Portlets in the same row to match.

    If the height of Portlets causes a column to overflow, that column will scroll vertically (independent of other columns), depending on the `columnOverflow` setting.

    Changing the width of a Portlet will potentially cause columns to stretch and shrink their displayed widths in order to accommodate the Portlets, depending on the value of `canStretchColumnWidths` and `canShrinkColumnWidths`.

    However, the instrinsic width of the columns will remain the same, so that the columns will resume their former widths when no longer necessary to stretch or shrink to accommodate the widths of Portlets. To allow drag-resizing of the intrinsic width of columns, see `canResizeColumns`.

    The net effect is that (by default) PortalLayouts behave like layouts when Portlet sizes do not cause overflow, but behave more like stacks when overflow occurs.

    Returns:
      Current canResizePortlets value. Default value is false
    See Also:
      - `getCanResizeColumns()`
      - `getCanStretchColumnWidths()`
      - `getCanShrinkColumnWidths()`
      - `getColumnOverflow()`
      - `Sizing overview and related methods`

  - ### setCanResizeRows

    public PortalLayout setCanResizeRows(Boolean canResizeRows)
    Deprecated.
    Use `canResizePortlets` instead.
    Should vertical drag-resize of portlets within columns be allowed?
    If this method is called after the component has been drawn/initialized: Set whether vertical drag-resize of portlets within columns is allowed, and update any drawn columns to reflect this.
    Parameters:
      `canResizeRows` - Whether drag-resize of portlets within columns is allowed. Default value is false
    Returns:
      `PortalLayout` instance, for chaining setter calls

  - ### getCanResizeRows

    public Boolean getCanResizeRows()
    Deprecated.
    Use `canResizePortlets` instead.
    Should vertical drag-resize of portlets within columns be allowed?
    Returns:
      Current canResizeRows value. Default value is false

  - ### setCanShrinkColumnWidths

    public PortalLayout setCanShrinkColumnWidths(Boolean canShrinkColumnWidths)
    Controls whether the PortalLayout will shrink column widths to avoid overflowing the PortalLayout horizontally. If the PortalLayout would otherwise overflow its width, it will check each column to see whether it is wider than necessary to accommodate its `Portlets`. If so, the column may shrink to avoid having to scroll the PortalLayout.
    If this method is called after the component has been drawn/initialized: Sets `canShrinkColumnWidths` and reflows to reflect the new setting.

    Note : This is an advanced setting

    Parameters:
      `canShrinkColumnWidths` - Whether columns can shrink to avoid overflowing the PortalLayout's width. Default value is true
    Returns:
      `PortalLayout` instance, for chaining setter calls
    See Also:
      - `setCanStretchColumnWidths(java.lang.Boolean)`
      - `Sizing overview and related methods`

  - ### getCanShrinkColumnWidths

    public Boolean getCanShrinkColumnWidths()
    Controls whether the PortalLayout will shrink column widths to avoid overflowing the PortalLayout horizontally. If the PortalLayout would otherwise overflow its width, it will check each column to see whether it is wider than necessary to accommodate its `Portlets`. If so, the column may shrink to avoid having to scroll the PortalLayout.
    Returns:
      Current canShrinkColumnWidths value. Default value is true
    See Also:
      - `getCanStretchColumnWidths()`
      - `Sizing overview and related methods`

  - ### setCanStretchColumnWidths

    public PortalLayout setCanStretchColumnWidths(Boolean canStretchColumnWidths)
    Controls whether the PortalLayout will stretch column widths, if needed to accommodate the width of `Portlets`. If set, columns will overflow their widths in order to accommodate the widths of their Portlets.

    With the default setting of `Overflow`: auto, the PortalLayout as a whole will scroll horizontally if needed. Depending on the setting of `canShrinkColumnWidths`, other columns may shrink to avoid overflow on the PortalLayout as a whole.

    If `canStretchColumnWidths` is turned off, then individual rows will scroll horizontally in order to accommodate Portlets that are wider than their column width allows.
    If this method is called after the component has been drawn/initialized: Sets `canStretchColumnWidths` and reflows to reflect the new setting.

    Note : This is an advanced setting

    Parameters:
      `canStretchColumnWidths` - Whether columns can stretch to accommodate `Portlet` widths. Default value is true
    Returns:
      `PortalLayout` instance, for chaining setter calls
    See Also:
      - `setCanShrinkColumnWidths(java.lang.Boolean)`
      - `setCanResizePortlets(java.lang.Boolean)`
      - `Overflow`
      - `Sizing overview and related methods`

  - ### getCanStretchColumnWidths

    public Boolean getCanStretchColumnWidths()
    Controls whether the PortalLayout will stretch column widths, if needed to accommodate the width of `Portlets`. If set, columns will overflow their widths in order to accommodate the widths of their Portlets.

    With the default setting of `Overflow`: auto, the PortalLayout as a whole will scroll horizontally if needed. Depending on the setting of `canShrinkColumnWidths`, other columns may shrink to avoid overflow on the PortalLayout as a whole.

    If `canStretchColumnWidths` is turned off, then individual rows will scroll horizontally in order to accommodate Portlets that are wider than their column width allows.

    Returns:
      Current canStretchColumnWidths value. Default value is true
    See Also:
      - `getCanShrinkColumnWidths()`
      - `getCanResizePortlets()`
      - `Overflow`
      - `Sizing overview and related methods`

  - ### getColumn

    public Layout getColumn()
    Note : This API is non-functional (always returns null) and exists only to make you aware that this MultiAutoChild exists. See `Using AutoChildren` for details.

    Automatically generated vertical `Layout` used to create columns of `Portlets` via createAutoChild(). Since this is an `com.smartgwt.client.types.AutoChild`, you can use columnDefaults and columnProperties to customize the columns.

    The column includes a menu, if `showColumnMenus` is true, and a `rowLayout` which actually contains the `rows`. Therefore, if you want to style the columns as a whole, use columnDefaults or columnProperties, but if you want to style the layout that contains the rows, use rowLayoutDefaults or rowLayoutProperties.

    Returns:
      null
    See Also:
      - `getRowLayout()`
      - `getRow()`

  - ### setColumnBorder

    public PortalLayout setColumnBorder(String columnBorder)
    Border to show around columns in this PortalLayout
    If this method is called after the component has been drawn/initialized: Sets the columnBorder for to the specified value and updates any drawn columns to reflect this.
    Parameters:
      `columnBorder` - New border to show around columns. Default value is "1px solid gray"
    Returns:
      `PortalLayout` instance, for chaining setter calls

  - ### getColumnBorder

    public String getColumnBorder()
    Border to show around columns in this PortalLayout
    Returns:
      Current columnBorder value. Default value is "1px solid gray"

  - ### setColumnOverflow

    public PortalLayout setColumnOverflow(Overflow columnOverflow)
    Controls the `overflow` setting for each column. If set to "auto" (the default) then each column will scroll individually (if its `Portlets` overflow the column height). You can also use "hidden" to clip overflowing heights, or "visible" to show the overflow. The effect of "visible" will depend on the setting for `overflow` -- by default, the PortalLayout as a whole will scroll when necessary.
    If this method is called after the component has been drawn/initialized: Sets `columnOverflow` and updates existing columns to reflect the new setting.

    Note : This is an advanced setting

    Parameters:
      `columnOverflow` - Overflow setting for columns. Default value is "auto"
    Returns:
      `PortalLayout` instance, for chaining setter calls
    See Also:
      - `Overflow`
      - `Canvas.setOverflow(com.smartgwt.client.types.Overflow)`
      - `Sizing overview and related methods`

  - ### getColumnOverflow

    public Overflow getColumnOverflow()
    Controls the `overflow` setting for each column. If set to "auto" (the default) then each column will scroll individually (if its `Portlets` overflow the column height). You can also use "hidden" to clip overflowing heights, or "visible" to show the overflow. The effect of "visible" will depend on the setting for `overflow` -- by default, the PortalLayout as a whole will scroll when necessary.
    Returns:
      Current columnOverflow value. Default value is "auto"
    See Also:
      - `Overflow`
      - `Canvas.getOverflow()`
      - `Sizing overview and related methods`

  - ### setColumnSpacing

    public PortalLayout setColumnSpacing(Integer columnSpacing)
    The space between portal columns.

    To set spacing between portlets on a row in the same column, see `portletHSpacing`.
    If this method is called after the component has been drawn/initialized: Sets `columnSpacing` and reflows the layout to implement it.

    Parameters:
      `columnSpacing` - The amount of space to apply between columns. Default value is 0
    Returns:
      `PortalLayout` instance, for chaining setter calls
    See Also:
      - `setPortletHSpacing(java.lang.Integer)`
      - `setPortletVSpacing(java.lang.Integer)`
      - `Sizing overview and related methods`

  - ### getColumnSpacing

    public Integer getColumnSpacing()
    The space between portal columns.

    To set spacing between portlets on a row in the same column, see `portletHSpacing`.

    Returns:
      Current columnSpacing value. Default value is 0
    See Also:
      - `getPortletHSpacing()`
      - `getPortletVSpacing()`
      - `Sizing overview and related methods`

  - ### setDropTypes

    public PortalLayout setDropTypes(String... dropTypes) throws IllegalStateException
    This property may be explicitly specified to restrict which `target dragTypes` may be dropped directly onto the PortalLayout. See the related `portletDropTypes` property for how to restrict dropping portlets into a portalLayout and its sub-components (rows and columns).

    If this property is not explicitly specified, drop behavior will be as follows when the user drops directly on the portalLayout outside any PortalColumns, or within the `portletHDropOffset` of an existing column.

    - Drop will be allowed for targets with `dragType:"PortalColumn"`. This allows the user to reorder portal columns by dragging using the column header.
    - If `canAddColumns` is true, drop will also be allowed for other components that match the `portletDropTypes` for the PortalLayout, if specified. If `portletDropTypes` is unspecified, all other components may be dropped.
      This allows the user to add columns to the portal layout by dropping components outside of any existing columns. If the dropped components are not instances of `Portlet`, a Portlet will be automatically created to contain them.
      Note that if `portletDropTypes` is specified, drop will be disallowed for any component whose dragType is not included in the portletDropTypes list, and is not `"PortalColumn"`
    Developers may further restrict this behavior by specifying explicit dropTypes for the portalLayout. If you want to disallow adding new columns by dropping, but still have the user be able to add new columns with the `column menus`, set `canAddColumns` to true and specify portalLayout.dropTypes as simply `["PortalColumn"]`.
    Overrides:
      `setDropTypes` in class `Canvas`
    Parameters:
      `dropTypes` - New dropTypes value. Default value is null
    Returns:
      `PortalLayout` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created
    See Also:
      - `setPortletDropTypes(java.lang.String...)`
      - `Drag and Drop behavior within PortalLayouts`

  - ### getDropTypes

    public String[] getDropTypes()
    This property may be explicitly specified to restrict which `target dragTypes` may be dropped directly onto the PortalLayout. See the related `portletDropTypes` property for how to restrict dropping portlets into a portalLayout and its sub-components (rows and columns).

    If this property is not explicitly specified, drop behavior will be as follows when the user drops directly on the portalLayout outside any PortalColumns, or within the `portletHDropOffset` of an existing column.

    - Drop will be allowed for targets with `dragType:"PortalColumn"`. This allows the user to reorder portal columns by dragging using the column header.
    - If `canAddColumns` is true, drop will also be allowed for other components that match the `portletDropTypes` for the PortalLayout, if specified. If `portletDropTypes` is unspecified, all other components may be dropped.
      This allows the user to add columns to the portal layout by dropping components outside of any existing columns. If the dropped components are not instances of `Portlet`, a Portlet will be automatically created to contain them.
      Note that if `portletDropTypes` is specified, drop will be disallowed for any component whose dragType is not included in the portletDropTypes list, and is not `"PortalColumn"`
    Developers may further restrict this behavior by specifying explicit dropTypes for the portalLayout. If you want to disallow adding new columns by dropping, but still have the user be able to add new columns with the `column menus`, set `canAddColumns` to true and specify portalLayout.dropTypes as simply `["PortalColumn"]`.
    Overrides:
      `getDropTypes` in class `Canvas`
    Returns:
      Current dropTypes value. Default value is null
    See Also:
      - `getPortletDropTypes()`
      - `Drag and Drop behavior within PortalLayouts`

  - ### setNumColumns

    public PortalLayout setNumColumns(int numColumns) throws IllegalStateException
    Initial number of columns to show in this PortalLayout. Note that after initialization columns should be added / removed via `addColumn()` and `removeColumn()`. numColumns is ignored if you initialize the `portlets` attribute, since the portlets attribute will imply how many columns to create.
    Parameters:
      `numColumns` - New numColumns value. Default value is 2
    Returns:
      `PortalLayout` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created
    See Also:
      - `setPortlets(com.smartgwt.client.widgets.layout.Portlet...)`

  - ### getNumColumns

    public int getNumColumns()
    Initial number of columns to show in this PortalLayout. Note that after initialization columns should be added / removed via `addColumn()` and `removeColumn()`. numColumns is ignored if you initialize the `portlets` attribute, since the portlets attribute will imply how many columns to create.
    Returns:
      Returns the current number of columns displayed in this PortalLayout. Default value is 2
    See Also:
      - `getPortlets()`

  - ### setOverflow

    public PortalLayout setOverflow(Overflow overflow)
    Controls how the PortalLayout reacts when column widths or `Portlet` widths overflow the width of the PortalLayout. By default, the PortalLayout scrolls when necessary. You can also use overflow: visible or overflow: hidden, with the usual results -- see `canResizePortlets` for a further explanation of column widths.

    Note that overflowing height is also affected by `columnOverflow`. By default, each column will scroll individually -- you can change columnOverflow to "auto" to scroll the whole PortalLayout instead.

    Overrides:
      `setOverflow` in class `Layout`
    Parameters:
      `overflow` - New overflow value. Default value is "auto"
    Returns:
      `PortalLayout` instance, for chaining setter calls
    See Also:
      - `setCanResizePortlets(java.lang.Boolean)`
      - `setColumnOverflow(com.smartgwt.client.types.Overflow)`
      - `Canvas.setOverflow(com.smartgwt.client.types.Overflow)`
      - `Sizing overview and related methods`

  - ### getOverflow

    public Overflow getOverflow()
    Controls how the PortalLayout reacts when column widths or `Portlet` widths overflow the width of the PortalLayout. By default, the PortalLayout scrolls when necessary. You can also use overflow: visible or overflow: hidden, with the usual results -- see `canResizePortlets` for a further explanation of column widths.

    Note that overflowing height is also affected by `columnOverflow`. By default, each column will scroll individually -- you can change columnOverflow to "auto" to scroll the whole PortalLayout instead.

    Overrides:
      `getOverflow` in class `Layout`
    Returns:
      Current overflow value. Default value is "auto"
    See Also:
      - `getCanResizePortlets()`
      - `getColumnOverflow()`
      - `Canvas.getOverflow()`
      - `Sizing overview and related methods`

  - ### getPortlet

    public Portlet getPortlet()
    Note : This API is non-functional (always returns null) and exists only to make you aware that this MultiAutoChild exists. See `Using AutoChildren` for details.

    MultiAutoChild configuration for Portlets that will be automatically generated when the user drops a non-Portlet component into a PortalLayout.

    Use standard autoChild pattern to customize the appearance and behavior of these standard generated portlet instances.

    Returns:
      null

  - ### setPortletDropTypes

    public PortalLayout setPortletDropTypes(String... portletDropTypes)

    The `dropTypes` to be applied when dropping `Portlets` on this `PortalLayout`, or when dropping other components to be auto-wrapped in a `Portlet`. If you set this, then you will need to set an equivalent `Canvas.dragType` on anything to be dragged into this `PortalLayout` (including `Portlets`).

    As a convenience, `Portlet.dragType` defaults to `"Portlet"`. Thus, if you want to allow `Portlets` to be dropped on this `PortalLayout`, but disable auto-wrapping of other components, you can set `portletDropTypes` to `["Portlet"]`.

    If you want to allow some `Portlets` to be dropped on this `PortalLayout` but not others, then set a custom `dragType` for the `Portlets`, and set `portletDropTypes` to match.

    If you want to have different `dropTypes` for `rows` and `rowLayouts`, you can specify `dropType` on the `row` or `rowLayout` autochildren instead.

    For more control over what can be dropped, you can also implement `willAcceptPortletDrop()`.
    If this method is called after the component has been drawn/initialized:

    Sets the `portletDropTypes` to be applied when dropping `Portlets` on this `PortalLayout`, or when dropping other components to be auto-wrapped in a `Portlet`.

    Parameters:
      `portletDropTypes` - dropTypes to apply when dropping `Portlets`. Default value is null
    Returns:
      `PortalLayout` instance, for chaining setter calls
    See Also:
      - `Canvas.setDropTypes(java.lang.String...)`
      - `Drag and Drop`

  - ### getPortletDropTypes

    public String[] getPortletDropTypes()

    The `dropTypes` to be applied when dropping `Portlets` on this `PortalLayout`, or when dropping other components to be auto-wrapped in a `Portlet`. If you set this, then you will need to set an equivalent `Canvas.dragType` on anything to be dragged into this `PortalLayout` (including `Portlets`).

    As a convenience, `Portlet.dragType` defaults to `"Portlet"`. Thus, if you want to allow `Portlets` to be dropped on this `PortalLayout`, but disable auto-wrapping of other components, you can set `portletDropTypes` to `["Portlet"]`.

    If you want to allow some `Portlets` to be dropped on this `PortalLayout` but not others, then set a custom `dragType` for the `Portlets`, and set `portletDropTypes` to match.

    If you want to have different `dropTypes` for `rows` and `rowLayouts`, you can specify `dropType` on the `row` or `rowLayout` autochildren instead.

    For more control over what can be dropped, you can also implement `willAcceptPortletDrop()`.

    Returns:
      Current portletDropTypes value. Default value is null
    See Also:
      - `Canvas.getDropTypes()`
      - `Drag and Drop`

  - ### setPortletHDropOffset

    public PortalLayout setPortletHDropOffset(Integer portletHDropOffset)
    This property is used to determine the appropriate drop target for a component being dropped within this PortalLayout.

    If `canAddColumns` is true and the user hovers within `portletHDropOffset` pixels of the left or right edge of a column, the drop will be interpreted as a request to add a new column adjacent to that column.

    If the user instead hovers within `portletHDropOffset` pixels of the left or right edge of a Portlet within an existing row, the drop will be interpreted as an attempt to insert the new Portlet into that row, next to the targeted Portlet.

    When a Portlet is at the edge of a column (i.e., the first or last Portlet in a row), these horizontal drop zones overlap. In this case, the column-level drop zone is evaluated first: if the pointer is within the outermost offset, the drop will add a new column. If the pointer is within the next offset (further inside the Portlet), the drop will add the new Portlet to the existing row.

    Finally, if the user drops outside both horizontal offsets (i.e., farther away from the edge), the drop will be interpreted as an attempt to add a new row?either above or below the current row, depending on the vertical position of the pointer.

    Parameters:
      `portletHDropOffset` - New portletHDropOffset value. Default value is 15
    Returns:
      `PortalLayout` instance, for chaining setter calls

  - ### getPortletHDropOffset

    public Integer getPortletHDropOffset()
    This property is used to determine the appropriate drop target for a component being dropped within this PortalLayout.

    If `canAddColumns` is true and the user hovers within `portletHDropOffset` pixels of the left or right edge of a column, the drop will be interpreted as a request to add a new column adjacent to that column.

    If the user instead hovers within `portletHDropOffset` pixels of the left or right edge of a Portlet within an existing row, the drop will be interpreted as an attempt to insert the new Portlet into that row, next to the targeted Portlet.

    When a Portlet is at the edge of a column (i.e., the first or last Portlet in a row), these horizontal drop zones overlap. In this case, the column-level drop zone is evaluated first: if the pointer is within the outermost offset, the drop will add a new column. If the pointer is within the next offset (further inside the Portlet), the drop will add the new Portlet to the existing row.

    Finally, if the user drops outside both horizontal offsets (i.e., farther away from the edge), the drop will be interpreted as an attempt to add a new row?either above or below the current row, depending on the vertical position of the pointer.

    Returns:
      Current portletHDropOffset value. Default value is 15

  - ### setPortletHSpacing

    public PortalLayout setPortletHSpacing(Integer portletHSpacing)
    The horizontal space between portlets placed into the same row.

    To set the spacing between portal columns, use `columnSpacing`.
    If this method is called after the component has been drawn/initialized: Sets `portletHSpacing` and reflows the layout to implement it.

    Parameters:
      `portletHSpacing` - The amount of space to apply between portlets in a row. Default value is 3
    Returns:
      `PortalLayout` instance, for chaining setter calls
    See Also:
      - `setPortletVSpacing(java.lang.Integer)`
      - `setColumnSpacing(java.lang.Integer)`
      - `Sizing overview and related methods`

  - ### getPortletHSpacing

    public Integer getPortletHSpacing()
    The horizontal space between portlets placed into the same row.

    To set the spacing between portal columns, use `columnSpacing`.

    Returns:
      Current portletHSpacing value. Default value is 3
    See Also:
      - `getPortletVSpacing()`
      - `getColumnSpacing()`
      - `Sizing overview and related methods`

  - ### setPortlets

    public PortalLayout setPortlets(Portlet... portlets) throws IllegalStateException
    A convenience attribute which you can use to populate a PortalLayout with `Portlets` on initialization. After initialization, use `addPortlet()` or drag-and-drop to add Portlets, and `getPortlets()` or `getPortletArray()` to get Portlets.

    To create one column, you can provide an array of Portlets.

    To create multiple columns, provide an array of arrays (where the first level represents columns, and the second represents Portlets).

    To put multiple portlets in the same row, provide a third level to the array.

    Note that `numColumns` is ignored if you provide the portlets attribute, since the array will indicate how many columns to create. You can provide an empty second-level array to create a blank column, if needed.

    Parameters:
      `portlets` - New portlets value. Default value is null
    Returns:
      `PortalLayout` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created
    See Also:
      - `getPortlets()`
      - `getPortletArray()`
      - `addPortlet(com.smartgwt.client.widgets.layout.Portlet)`
      - `setNumColumns(int)`
      - Repositioning Example

  - ### setPortletVSpacing

    public PortalLayout setPortletVSpacing(Integer portletVSpacing)
    The vertical space between portal rows.
    If this method is called after the component has been drawn/initialized: Sets `portletVSpacing` and reflows the layout to implement it.
    Parameters:
      `portletVSpacing` - The amount of space to apply between rows. Default value is 3
    Returns:
      `PortalLayout` instance, for chaining setter calls
    See Also:
      - `setPortletHSpacing(java.lang.Integer)`
      - `Sizing overview and related methods`

  - ### getPortletVSpacing

    public Integer getPortletVSpacing()
    The vertical space between portal rows.
    Returns:
      Current portletVSpacing value. Default value is 3
    See Also:
      - `getPortletHSpacing()`
      - `Sizing overview and related methods`

  - ### setPreventColumnUnderflow

    public PortalLayout setPreventColumnUnderflow(Boolean preventColumnUnderflow)
    Controls whether the last `Portlet` in a column will be stretched to fill the column's height, or left at its specified height.
    If this method is called after the component has been drawn/initialized: Sets `preventColumnUnderflow` and reflows the layout to implement it.
    Parameters:
      `preventColumnUnderflow` - Whether to stretch the last `Portlet` in a column to fill the column's height. Default value is true
    Returns:
      `PortalLayout` instance, for chaining setter calls
    See Also:
      - `Sizing overview and related methods`

  - ### getPreventColumnUnderflow

    public Boolean getPreventColumnUnderflow()
    Controls whether the last `Portlet` in a column will be stretched to fill the column's height, or left at its specified height.
    Returns:
      Current preventColumnUnderflow value. Default value is true
    See Also:
      - `Sizing overview and related methods`

  - ### setPreventRowUnderflow

    public PortalLayout setPreventRowUnderflow(Boolean preventRowUnderflow)
    Controls whether the last `Portlet` in a row will be stretched to fill the row's width, or left at its specified width.
    If this method is called after the component has been drawn/initialized: Sets `preventRowUnderflow` and reflows the layout to implement it.
    Parameters:
      `preventRowUnderflow` - Whether to stretch the last `Portlet` in a row to to fill the row's width. Default value is true
    Returns:
      `PortalLayout` instance, for chaining setter calls
    See Also:
      - `Sizing overview and related methods`

  - ### getPreventRowUnderflow

    public Boolean getPreventRowUnderflow()
    Controls whether the last `Portlet` in a row will be stretched to fill the row's width, or left at its specified width.
    Returns:
      Current preventRowUnderflow value. Default value is true
    See Also:
      - `Sizing overview and related methods`

  - ### setPreventUnderflow

    public PortalLayout setPreventUnderflow(Boolean preventUnderflow)
    Controls whether the last column will be stretched to fill the PortalLayout's width, or left at its specified width.
    If this method is called after the component has been drawn/initialized: Sets `preventUnderflow` and reflows the layout to implement it.
    Parameters:
      `preventUnderflow` - Whether to stretch the last column to fill the PortalLayout's width. Default value is true
    Returns:
      `PortalLayout` instance, for chaining setter calls
    See Also:
      - `Sizing overview and related methods`

  - ### getPreventUnderflow

    public Boolean getPreventUnderflow()
    Controls whether the last column will be stretched to fill the PortalLayout's width, or left at its specified width.
    Returns:
      Current preventUnderflow value. Default value is true
    See Also:
      - `Sizing overview and related methods`

  - ### setRemoveEmptyColumns

    public PortalLayout setRemoveEmptyColumns(Boolean removeEmptyColumns)
    Should empty columns automatically be removed when all portlets are removed from a column?

    If true, when a portlet is removed from a column that didn't contain any other portlets, the column will be removed from the portalLayout. This is true if the portlet was removed via user action such as dragging the portlet into a different column, or if it was removed programatically, for example via a call to `addPortlet()` which specified a different column.

    Parameters:
      `removeEmptyColumns` - New removeEmptyColumns value. Default value is true
    Returns:
      `PortalLayout` instance, for chaining setter calls

  - ### getRemoveEmptyColumns

    public Boolean getRemoveEmptyColumns()
    Should empty columns automatically be removed when all portlets are removed from a column?

    If true, when a portlet is removed from a column that didn't contain any other portlets, the column will be removed from the portalLayout. This is true if the portlet was removed via user action such as dragging the portlet into a different column, or if it was removed programatically, for example via a call to `addPortlet()` which specified a different column.

    Returns:
      Current removeEmptyColumns value. Default value is true

  - ### getRow

    public Layout getRow()
    Note : This API is non-functional (always returns null) and exists only to make you aware that this MultiAutoChild exists. See `Using AutoChildren` for details.

    Automatically generated horizontal `Layout` used to create rows of `Portlets` via createAutoChild(). Since this is an `com.smartgwt.client.types.AutoChild`, you can use rowDefaults and rowProperties to customize the rows.

    Rows are created inside `rowLayouts`, which in turn are inside `columns`.

    Returns:
      null
    See Also:
      - `getColumn()`
      - `getRowLayout()`

  - ### getRowLayout

    public Layout getRowLayout()
    Note : This API is non-functional (always returns null) and exists only to make you aware that this MultiAutoChild exists. See `Using AutoChildren` for details.

    Automatically generated vertical `Layout` used to create columns of `Portlets` via createAutoChild(). Since this is an `com.smartgwt.client.types.AutoChild`, you can use rowLayoutDefaults and rowLayoutProperties to customize the layout used to contain the rows.

    The rowLayout is the actual container for `rows` of `Portlets`. See `column` for the column as a whole, which may include a menu as well (depending on `showColumnMenus`). If you want to style the columns as a whole, use columnDefaults or columnProperties, but if you want to style the layout that actually contains the rows, use rowLayoutDefaults or rowLayoutProperties.

    Returns:
      null
    See Also:
      - `getRowLayout()`
      - `getRow()`

  - ### setShowColumnMenus

    public PortalLayout setShowColumnMenus(Boolean showColumnMenus)
    Should a menu be shown within each column with options to add / remove columns?
    If this method is called after the component has been drawn/initialized: Sets `showColumnMenus` and updates existing columns to reflect the new setting.
    Parameters:
      `showColumnMenus` - Whether to show column menus. Default value is true
    Returns:
      `PortalLayout` instance, for chaining setter calls
    See Also:
      - Add/Remove Columns Example

  - ### getShowColumnMenus

    public Boolean getShowColumnMenus()
    Should a menu be shown within each column with options to add / remove columns?
    Returns:
      Current showColumnMenus value. Default value is true
    See Also:
      - Add/Remove Columns Example

  - ### setStretchColumnWidthsProportionally

    public PortalLayout setStretchColumnWidthsProportionally(Boolean stretchColumnWidthsProportionally)
    When `stretching column widths`, should we stretch all column widths proportionally, or just stretch the columns that need extra width?

    Note that this implies turning off `canShrinkColumnWidths`.
    If this method is called after the component has been drawn/initialized: Sets `stretchColumnWidthsProportionally` and reflows to reflect the new setting.

    Note : This is an advanced setting

    Parameters:
      `stretchColumnWidthsProportionally` - Whether to stretch column widths proportionally. Default value is false
    Returns:
      `PortalLayout` instance, for chaining setter calls
    See Also:
      - `setCanStretchColumnWidths(java.lang.Boolean)`
      - `setCanShrinkColumnWidths(java.lang.Boolean)`
      - `Sizing overview and related methods`

  - ### getStretchColumnWidthsProportionally

    public Boolean getStretchColumnWidthsProportionally()
    When `stretching column widths`, should we stretch all column widths proportionally, or just stretch the columns that need extra width?

    Note that this implies turning off `canShrinkColumnWidths`.

    Returns:
      Current stretchColumnWidthsProportionally value. Default value is false
    See Also:
      - `getCanStretchColumnWidths()`
      - `getCanShrinkColumnWidths()`
      - `Sizing overview and related methods`

  - ### addColumn

    public void addColumn(int index)
    Adds a new portal column to this layout at the specified position
    Parameters:
      `index` - target position for the new column

  - ### getColumnWidth

    public int getColumnWidth(int colNumber)
    Gets the width of a column in the PortalLayout.
    Parameters:
      `colNumber` - Which column's width to get
    Returns:
      width
    See Also:
      - `Canvas.getWidth()`

  - ### getPortalPosition

    public PortalPosition getPortalPosition(Portlet portlet)
    Gets the position of the `Portlet` within this PortalLayout. Returns null if the Portlet is not in this PortalLayout.
    Parameters:
      `portlet` - the Portlet for which to get the position
    Returns:
      the position of the Portlet

  - ### removeColumn

    public void removeColumn(int index)
    Removes the specified column from this layout. All portlets displayed within this column will be destroyed when the column is removed.
    Parameters:
      `index` - column number to remove

  - ### removePortlet

    public void removePortlet(Portlet portlet)
    Removes a `Portlet` which is currently rendered in this PortalLayout. Portlet will not be destroyed by default - if this is desired the calling code should do this explicitly.
    Parameters:
      `portlet` - portlet to remove

  - ### setDefaultProperties

    public static void setDefaultProperties(PortalLayout portalLayoutProperties)
    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:
      `portalLayoutProperties` - properties that should be used as new defaults when instances of this class are created
    See Also:
      - `SGWTProperties`

  - ### onInit

    public void onInit()
    Overrides:
      `onInit` in class `Layout`

  - ### onInit_PortalLayout

    protected void onInit_PortalLayout()

  - ### willAcceptPortletDrop

    public Boolean willAcceptPortletDrop(Canvas dragTarget, Integer colNum, Integer rowNum, Integer dropPosition)

    Returns true if the dragged `Portlet`, or other component, can be dropped onto this `PortalLayout` (other components would be auto-wrapped in a `Portlet`).

    The default implementation acts like `Canvas.willAcceptDrop()`, except applying `portletDropTypes` rather than `dropTypes`. You can subclass to apply other (or additional) criteria

    Note: This is an override point

    Parameters:
      `dragTarget` - The `Portlet`, or other component, being dragged
      `colNum` - indicates which column the portlet would be dropped on.
      `rowNum` - indicates the row number being dropped on.
      `dropPosition` - Drop position within an existing row. If the dropPosition is null, then that means that a new row will be created.
    Returns:
      true if the `Portlet` or other component being dragged can be dropped on this PortalLayout, false otherwise

  - ### getDropPortlet

    public Canvas getDropPortlet(Canvas dragTarget, Integer colNum, Integer rowNum, Integer dropPosition)
    This method is called when the user drops components into the rows or columns of this PortalLayout.

    Overriding this method allows you to modify drop behaviour when creating or reordering portlets via drag & drop. You can return the dragTarget for the standard behavior, or null to cancel the drop.

    Otherwise, return the component you want to be dropped (as for `Layout.getDropComponent`).

    Note: this is an override point.

    Parameters:
      `dragTarget` - the component being dragged
      `colNum` - indicates which column the portlet is being dropped on.
      `rowNum` - indicates the row number being dropped on.
      `dropPosition` - Drop position within an existing row. If the dropPosition is null, then that means that a new row will be created.
    Returns:
      drop-component or custom Portlet to embed in the portalLayout. Returning null will cancel the drop.

  - ### getPortlets

    public Portlet[] getPortlets()
    Returns a flat array of all the `Portlets` in this PortalLayout.
    Returns:
      portlets
    See Also:
      - `getPortletArray()`

  - ### getPortletArray

    public Portlet[][][] getPortletArray()
    Returns a multi-level array of the `Portlets` in this PortalLayout, where the first level corresponds to columns, the second to rows, and the third to Portlets within rows.
    Returns:
      portlets

  - ### addPortlet

    public void addPortlet(Portlet portlet)
    Adds a `Portlet` instance to this portalLayout in the specified position.
    Parameters:
      `portlet` - Portlet to add to this layout.

  - ### addPortlet

    public void addPortlet(Portlet portlet, int colNum, int rowNum)
    Adds a `Portlet` instance to this portalLayout in the specified position.
    Parameters:
      `portlet` - Portlet to add to this layout.
      `colNum` - Column in which the Portlet should be added. If unspecified, defaults to zero.
      `rowNum` - Position within the column for the Portlet.

  - ### addPortlet

    public void addPortlet(Portlet portlet, int colNum, int rowNum, int rowOffset)
    Adds a `Portlet` instance to this portalLayout in the specified position.
    Parameters:
      `portlet` - Portlet to add to this layout.
      `colNum` - Column in which the Portlet should be added. If unspecified, defaults to zero.
      `rowNum` - Position within the column for the Portlet
      `rowOffset` - Position for the portlet within an existing row. If the row specified by rowNum already exists, the portlet will be added to that row at this position. If rowNum does not already exist, this parameter is ignored

  - ### setColumnWidth

    public void setColumnWidth(int colNumber, int width)
    Sets the width of a column in the PortalLayout.
    Parameters:
      `colNumber` - Which column's width to set.
      `width` - How wide to make the column

  - ### setColumnWidth

    public void setColumnWidth(int colNumber, String width)
    Sets the width of a column in the PortalLayout.
    Parameters:
      `colNumber` - Which column's width to set.
      `width` - How wide to make the column

  - ### willMaximizePortlet

    public boolean willMaximizePortlet(Portlet portlet)
    Method called when a `Portlet` in this PortalLayout is about to be maximized. Note that this method is only called when the user explicitly clicks on the portlet's `maximize button` -- it is not called when programmatically maximizing a portlet via `Window.maximize()`.

    Return false to cancel the action.

    Note: This is an override point

    Parameters:
      `portlet` - the Portlet which will be maximized
    Returns:
      whether the action should proceed

  - ### willMinimizePortlet

    public boolean willMinimizePortlet(Portlet portlet)
    Method called when a `Portlet` in this PortalLayout is about to be minimized. Note that this method is only called when the user explicitly clicks on the portlet's `minimize button` -- it is not called when programmatically minimizing a portlet via `Window.minimize()`.

    Return false to cancel the action.

    Note: This is an override point

    Parameters:
      `portlet` - the Portlet which will be minimized
    Returns:
      whether the action should proceed

  - ### willRestorePortlet

    public boolean willRestorePortlet(Portlet portlet)
    Method called when a `Portlet` in this PortalLayout is about to be restored to its normal place (after having been `maximized`. Note that this method is only called when the user explicitly clicks on the portlet's "restore" button -- it is not called when programmatically restoring a portlet via `restore()`.

    Return false to cancel the action.

    Note: This is an override point

    Parameters:
      `portlet` - the Portlet which will be restored
    Returns:
      whether the action should proceed

  - ### willClosePortlet

    public boolean willClosePortlet(Portlet portlet)
    Method called when a `Portlet` in this PortalLayout is about to be closed. Note that this method is only called when the user explicitly clicks on the portlet's "close" button -- it is not called when programmatically removing a portlet via `removePortlet()`.

    Return false to cancel the action.

    Note: This is an override point

    Parameters:
      `portlet` - the Portlet which will be closed
    Returns:
      whether the action should proceed

  - ### portletMaximized

    public void portletMaximized(Portlet portlet)
    Notification method called after a `Portlet` has been maximized (whether by user action or programmatically).

    Note: This is an override point

    Parameters:
      `portlet` - The portlet which was maximized
    See Also:
      - `willMaximizePortlet(com.smartgwt.client.widgets.layout.Portlet)`

  - ### portletMinimized

    public void portletMinimized(Portlet portlet)
    Notification method called after a `Portlet` has been minimized (whether by user action or programmatically).

    Note: This is an override point

    Parameters:
      `portlet` - The portlet which was minimized
    See Also:
      - `willMinimizePortlet(com.smartgwt.client.widgets.layout.Portlet)`

  - ### portletRestored

    public void portletRestored(Portlet portlet)
    Notification method called after a `Portlet` has been restored to its normal place (after having been maximized). The method is called whether the restore is via user action or done programmatically.

    Note: This is an override point

    Parameters:
      `portlet` - The portlet which was restored.
    See Also:
      - `willRestorePortlet(com.smartgwt.client.widgets.layout.Portlet)`

  - ### portletsChanged

    public void portletsChanged()
    Fires at initialization if the PortalLayout has any initial `portlets`, and then fires whenever portlets are added, removed or reordered.

    Note: This is an override point

    See Also:
      - `com.smartgwt.client.widgets.layout.Layout#membersChanged`

  - ### portletsResized

    public void portletsResized()
    Fires when `portlets` or columns in this PortalLayout are resized. Note that this fires on a short delay -- otherwise, it would fire multiple times for each change, since most portlet size changes will affect multiple portlets. Does not fire when a portlet is `maximized` or `restored`.

    Note: This is an override point

  - ### willAcceptDrop

    public Boolean willAcceptDrop()
    This method has been overridden to support drag-reorder of PortalColumns, and adding of new rows by dropping directly on the PortalLayout, as described in `dropTypes`
    Overrides:
      `willAcceptDrop` in class `Canvas`
    Returns:
      true if the widget object being dragged can be dropped on this widget, false if it cannot (and `drop()` should not bubble), null to permit `drop()` to bubble to parent elements

  - ### setLogicalStructure

    public LogicalStructureObject setLogicalStructure(PortalLayoutLogicalStructure s)
    Setter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.

  - ### getLogicalStructure

    public LogicalStructureObject getLogicalStructure()
    Getter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.
    Specified by:
      `getLogicalStructure` in interface `LogicalStructure`
    Overrides:
      `getLogicalStructure` in class `Layout`