|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.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
public class PortalLayout
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.
| 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, isElementSet, scClassName |
| Fields inherited from class com.google.gwt.user.client.ui.UIObject |
|---|
DEBUG_ID_PREFIX |
| Constructor Summary | |
|---|---|
PortalLayout()
|
|
PortalLayout(int numColumns)
|
|
PortalLayout(JavaScriptObject jsObj)
|
|
| Method Summary | |
|---|---|
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. |
protected JavaScriptObject |
create()
|
Boolean |
getCanResizeColumns()
Are columns in this PortalLayout drag-resizeable? |
Boolean |
getCanResizePortlets()
Should the height and width of Portlets be drag-resizable? |
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. |
String |
getColumnBorder()
Border to show around columns in this PortalLayout |
Overflow |
getColumnOverflow()
Controls the overflow setting for each column. |
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. |
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. |
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. |
Portlet[] |
getPortlets()
Returns a flat array of all the Portlets in this PortalLayout. |
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 |
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? |
protected void |
onInit_PortalLayout()
|
void |
onInit()
|
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. |
void |
setCanResizeColumns(Boolean canResizeColumns)
Are columns in this PortalLayout drag-resizeable? |
void |
setCanResizePortlets(Boolean canResizePortlets)
Should the height and width of Portlets be drag-resizable? |
void |
setCanShrinkColumnWidths(Boolean canShrinkColumnWidths)
Controls whether the PortalLayout will shrink column widths to avoid overflowing the PortalLayout horizontally. |
void |
setCanStretchColumnWidths(Boolean canStretchColumnWidths)
Controls whether the PortalLayout will stretch column widths, if needed to accommodate the width of Portlets. |
void |
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. |
void |
setColumnOverflow(Overflow columnOverflow)
Controls the overflow setting for each column. |
void |
setColumnPreventUnderflow(boolean preventColumnUnderflow)
Sets preventColumnUnderflow and
reflows the layout to implement it. |
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. |
void |
setNumColumns(int numColumns)
Initial number of columns to show in this PortalLayout. |
void |
setOverflow(Overflow overflow)
Controls how the PortalLayout reacts when column widths or Portlet widths
overflow the width of the PortalLayout. |
void |
setPortlets(Portlet... portlets)
A convenience attribute which you can use to populate a PortalLayout with Portlets on initialization. |
void |
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. |
void |
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. |
void |
setPreventUnderflow(Boolean preventUnderflow)
Controls whether the last column will be stretched to fill the PortalLayout's width, or left at its specified width. |
void |
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. |
void |
setStretchColumnWidthsProportionally(Boolean stretchColumnWidthsProportionally)
When stretching column widths, should
we stretch all column widths proportionally, or just stretch the columns that need extra width? |
| Methods inherited from class com.google.gwt.user.client.ui.Widget |
|---|
addAttachHandler, addBitlessDomHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, doAttachChildren, doDetachChildren, getLayoutData, getParent, isAttached, isOrWasAttached, onAttach, onBrowserEvent, onDetach, 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, 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 |
|---|
public PortalLayout()
public PortalLayout(JavaScriptObject jsObj)
public PortalLayout(int numColumns)
| Method Detail |
|---|
public static PortalLayout getOrCreateRef(JavaScriptObject jsObj)
protected JavaScriptObject create()
create in class Layoutpublic void setCanResizeColumns(Boolean canResizeColumns)
Note that the displayed width of a column will
automatically shrink and stretch to accomodate the width of Portlet -- 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 accomodate 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.
canResizeColumns - Whether columns are drag-resizable. Default value is falsesetCanStretchColumnWidths(java.lang.Boolean),
setCanShrinkColumnWidths(java.lang.Boolean),
Sizing overview and related methodspublic Boolean getCanResizeColumns()
Note that the displayed width of a column will
automatically shrink and stretch to accomodate the width of Portlet -- 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 accomodate Portlet widths.
getCanStretchColumnWidths(),
getCanShrinkColumnWidths(),
Sizing overview and related methodspublic void setCanResizePortlets(Boolean canResizePortlets)
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 accomodate 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 accomodate 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.
canResizePortlets - Whether drag-resizing the height and width of portlets is allowed. Default value is falsesetCanResizeColumns(java.lang.Boolean),
setCanStretchColumnWidths(java.lang.Boolean),
setCanShrinkColumnWidths(java.lang.Boolean),
setColumnOverflow(com.smartgwt.client.types.Overflow),
Sizing overview and related methodspublic Boolean getCanResizePortlets()
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 accomodate 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 accomodate 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.
getCanResizeColumns(),
getCanStretchColumnWidths(),
getCanShrinkColumnWidths(),
getColumnOverflow(),
Sizing overview and related methodspublic void setCanShrinkColumnWidths(Boolean canShrinkColumnWidths)
Portlets. If so, the column may shrink to avoid
having to scroll the PortalLayout.
canShrinkColumnWidths and reflows to reflect the new setting.
canShrinkColumnWidths - Whether columns can shrink to avoid overflowing the PortalLayout's width.. Default value is truesetCanStretchColumnWidths(java.lang.Boolean),
Sizing overview and related methodspublic Boolean getCanShrinkColumnWidths()
Portlets. If so, the column may shrink to avoid
having to scroll the PortalLayout.
getCanStretchColumnWidths(),
Sizing overview and related methodspublic void setCanStretchColumnWidths(Boolean canStretchColumnWidths)
Portlets. If set, columns will overflow their widths in order to accomodate
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.
canStretchColumnWidths - Whether columns can stretch to accommodate Portlet widths.. Default value is truesetCanShrinkColumnWidths(java.lang.Boolean),
setCanResizePortlets(java.lang.Boolean),
Overflow,
Sizing overview and related methodspublic Boolean getCanStretchColumnWidths()
Portlets. If set, columns will overflow their widths in order to accomodate
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.
getCanShrinkColumnWidths(),
getCanResizePortlets(),
Overflow,
Sizing overview and related methodspublic void setColumnBorder(String columnBorder)
columnBorder - New border to show around columns. Default value is "1px solid gray"public String getColumnBorder()
public void setColumnOverflow(Overflow columnOverflow)
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.
columnOverflow and updates existing columns to reflect the new setting.
Note : This is an advanced setting
columnOverflow - Overflow setting for columns. Default value is "auto"Overflow,
Canvas.setOverflow(com.smartgwt.client.types.Overflow),
Sizing overview and related methodspublic Overflow getColumnOverflow()
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.
Overflow,
Canvas.getOverflow(),
Sizing overview and related methods
public void setNumColumns(int numColumns)
throws IllegalStateException
PortalLayout.addColumn and PortalLayout.removeColumn. numColumns is ignored if you
initialize the portlets attribute, since the
portlets attribute will imply how many columns to create.
numColumns - numColumns Default value is 2
IllegalStateException - this property cannot be changed after the component has been createdsetPortlets(com.smartgwt.client.widgets.layout.Portlet...)public int getNumColumns()
PortalLayout.addColumn and PortalLayout.removeColumn. numColumns is ignored if you
initialize the portlets attribute, since the
portlets attribute will imply how many columns to create.
getPortlets()public void setOverflow(Overflow overflow)
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.
setOverflow in class Layoutoverflow - overflow Default value is "auto"setCanResizePortlets(java.lang.Boolean),
setColumnOverflow(com.smartgwt.client.types.Overflow),
Canvas.setOverflow(com.smartgwt.client.types.Overflow),
Sizing overview and related methodspublic Overflow getOverflow()
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.
getOverflow in class LayoutgetCanResizePortlets(),
getColumnOverflow(),
Canvas.getOverflow(),
Sizing overview and related methodspublic void setPreventColumnUnderflow(Boolean preventColumnUnderflow)
Portlet in a column will be stretched to fill the
column's height, or left at its specified height.
preventColumnUnderflow - preventColumnUnderflow Default value is trueSizing overview and related methodspublic Boolean getPreventColumnUnderflow()
Portlet in a column will be stretched to fill the
column's height, or left at its specified height.
Sizing overview and related methodspublic void setPreventRowUnderflow(Boolean preventRowUnderflow)
Portlet in a row will be stretched to fill the
row's width, or left at its specified width.
preventRowUnderflow and reflows the layout to implement it.
preventRowUnderflow - Whether to stretch the last Portlet in a row to to fill the row's width.. Default value is trueSizing overview and related methodspublic Boolean getPreventRowUnderflow()
Portlet in a row will be stretched to fill the
row's width, or left at its specified width.
Sizing overview and related methodspublic void setPreventUnderflow(Boolean preventUnderflow)
preventUnderflow and reflows the layout to implement it.
preventUnderflow - Whether to stretch the last column to fill the PortalLayout's width.. Default value is trueSizing overview and related methodspublic Boolean getPreventUnderflow()
Sizing overview and related methodspublic void setShowColumnMenus(Boolean showColumnMenus)
showColumnMenus and updates existing columns to reflect the new setting.
showColumnMenus - Whether to show column menus. Default value is truepublic Boolean getShowColumnMenus()
public void setStretchColumnWidthsProportionally(Boolean stretchColumnWidthsProportionally)
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
stretchColumnWidthsProportionally - Whether to stretch column widths proportionally. Default value is falsesetCanStretchColumnWidths(java.lang.Boolean),
setCanShrinkColumnWidths(java.lang.Boolean),
Sizing overview and related methodspublic Boolean getStretchColumnWidthsProportionally()
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.
getCanStretchColumnWidths(),
getCanShrinkColumnWidths(),
Sizing overview and related methodspublic void addColumn(int index)
index - target position for the new columnpublic int getColumnWidth(int colNumber)
colNumber - Which column's width to get
Canvas.getWidth()public void removeColumn(int index)
index - column number to removepublic void removePortlet(Portlet portlet)
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.
portlet - portlet to removepublic void setColumnPreventUnderflow(boolean preventColumnUnderflow)
preventColumnUnderflow and
reflows the layout to implement it.
preventColumnUnderflow - Whether to stretch the last Porlet in a column to
fill the column's height.public static void setDefaultProperties(PortalLayout portalLayoutProperties)
Note: This method is intended for setting default attributes only and will effect 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.
portalLayoutProperties - properties that should be used as new defaults when instances of this class are createdpublic void onInit()
onInit in class Layoutprotected void onInit_PortalLayout()
public Canvas getDropPortlet(Canvas dragTarget,
Integer colNum,
Integer rowNum,
Integer dropPosition)
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.
dragTarget - the component being draggedcolNum - 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.
public void setPortlets(Portlet... portlets)
throws IllegalStateException
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.
portlets - portlets Default value is null
IllegalStateException - this property cannot be changed after the component has been createdgetPortlets(),
getPortletArray(),
addPortlet(com.smartgwt.client.widgets.layout.Portlet),
setNumColumns(int)public Portlet[] getPortlets()
Portlets in this PortalLayout.
public Portlet[][][] getPortletArray()
Portlets in this PortalLayout,
where the first level corresponds to columns, the second to rows, and the third to Portlets within rows.
public void addPortlet(Portlet portlet)
Portlet instance to this portalLayout in the specified position.
portlet - Portlet to add to this layout.
public void addPortlet(Portlet portlet,
int colNum,
int rowNum)
Portlet instance to this portalLayout in the specified position.
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.
public void addPortlet(Portlet portlet,
int colNum,
int rowNum,
int rowOffset)
Portlet instance to this portalLayout in the specified position.
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 PortletrowOffset - 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
public void setColumnWidth(int colNumber,
int width)
colNumber - Which column's width to set.width - How wide to make the column
public void setColumnWidth(int colNumber,
String width)
colNumber - Which column's width to set.width - How wide to make the column
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||