org.kuali.rice.krad.uif.layout
Class GridLayoutManager

java.lang.Object
  extended by org.kuali.rice.krad.datadictionary.DictionaryBeanBase
      extended by org.kuali.rice.krad.datadictionary.uif.UifDictionaryBeanBase
          extended by org.kuali.rice.krad.uif.layout.LayoutManagerBase
              extended by org.kuali.rice.krad.uif.layout.GridLayoutManager
All Implemented Interfaces:
Serializable, DictionaryBean, UifDictionaryBean, LayoutManager
Direct Known Subclasses:
TableLayoutManager

public class GridLayoutManager
extends LayoutManagerBase

Layout manager that organizes its components in a table based grid

Items are laid out from left to right (with each item taking up one column) until the configured number of columns is reached. If the item count is greater than the number of columns, a new row will be created to render the remaining items (and so on until all items are placed). Labels for the fields can be pulled out (default) and rendered as a separate column. The manager also supports the column span and row span options for the field items. If not specified the default is 1.

Author:
Kuali Rice Team (rice.collab@kuali.org)
See Also:
Serialized Form

Constructor Summary
GridLayoutManager()
           
 
Method Summary
protected
<T> void
copyProperties(T layoutManager)
          Copies properties for copy()
 int getNumberOfColumns()
          Indicates the number of columns that should make up one row of data
 List<String> getRowCssClasses()
          The list of styles for each row
 Class<? extends Container> getSupportedContainer()
          Default Impl
 boolean isApplyAlternatingRowStyles()
          Indicates whether alternating row styles should be applied
 boolean isApplyDefaultCellWidths()
          Indicates whether the manager should default the cell widths
 boolean isRenderAlternatingHeaderColumns()
          Indicates whether header columns (th for tables) should be rendered for every other item (alternating)
 boolean isRenderFirstRowHeader()
          Indicates whether the first row of items rendered should all be rendered as table header (th) cells
 boolean isRenderRowFirstCellHeader()
          Indicates whether the first cell of each row should be rendered as a header cell (th)
 boolean isSuppressLineWrapping()
          Indicates whether the number of columns for the table data should match the number of fields given in the container's items list (so that each field takes up one column without wrapping), this overrides the configured numberOfColumns
 void performFinalize(View view, Object model, Container container)
          The following finalization is performed: If suppressLineWrapping is true, sets the number of columns to the container's items list size Adjust the cell attributes for the container items
 void setApplyAlternatingRowStyles(boolean applyAlternatingRowStyles)
          Setter for the alternating row styles indicator
 void setApplyDefaultCellWidths(boolean applyDefaultCellWidths)
          Setter for the default cell width indicator
protected  void setCellAttributes(Component component)
          Moves the width, align, and valign settings of the component to the corresponding cell properties (if not already configured)
 void setNumberOfColumns(int numberOfColumns)
          Setter for the number of columns (each row)
 void setRenderAlternatingHeaderColumns(boolean renderAlternatingHeaderColumns)
          Setter for the render alternating header columns indicator
 void setRenderFirstRowHeader(boolean renderFirstRowHeader)
          Setter for the first row as header indicator
 void setRenderRowFirstCellHeader(boolean renderRowFirstCellHeader)
          Setter for render first row column as header indicator
 void setRowCssClasses(List<String> rowCssClasses)
          Setter for the list that stores the css style names of each row
 void setSuppressLineWrapping(boolean suppressLineWrapping)
          Setter for the suppressLineWrapping indicator
 
Methods inherited from class org.kuali.rice.krad.uif.layout.LayoutManagerBase
addStyleClass, appendToStyle, copy, getAdditionalCssClasses, getComponentPrototypes, getComponentsForLifecycle, getContext, getCssClasses, getId, getLibraryCssClasses, getPropertyReplacers, getStyle, getStyleClassesAsString, getTemplate, getTemplateName, performApplyModel, performInitialization, pushAllToContext, pushObjectToContext, setAdditionalCssClasses, setContext, setCssClasses, setId, setLibraryCssClasses, setPropertyReplacers, setStyle, setStyleClasses, setTemplate, setTemplateName
 
Methods inherited from class org.kuali.rice.krad.datadictionary.uif.UifDictionaryBeanBase
getExpressionGraph, getPropertyExpression, getPropertyExpressions, getRefreshExpressionGraph, setExpressionGraph, setPropertyExpressions, setRefreshExpressionGraph
 
Methods inherited from class org.kuali.rice.krad.datadictionary.DictionaryBeanBase
getComponentCode, getNamespaceCode, setComponentCode, setNamespaceCode
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.kuali.rice.krad.datadictionary.uif.UifDictionaryBean
getExpressionGraph, getPropertyExpression, getPropertyExpressions, getRefreshExpressionGraph, setExpressionGraph, setPropertyExpressions, setRefreshExpressionGraph
 
Methods inherited from interface org.kuali.rice.krad.datadictionary.DictionaryBean
getComponentCode, getNamespaceCode
 

Constructor Detail

GridLayoutManager

public GridLayoutManager()
Method Detail

performFinalize

public void performFinalize(View view,
                            Object model,
                            Container container)
The following finalization is performed:

Specified by:
performFinalize in interface LayoutManager
Overrides:
performFinalize in class LayoutManagerBase
Parameters:
view - - view instance that should be finalized for rendering
model - - top level object containing the data
container - - Container the layout manager applies to
See Also:
LayoutManagerBase.performFinalize(org.kuali.rice.krad.uif.view.View, java.lang.Object, org.kuali.rice.krad.uif.container.Container)

setCellAttributes

protected void setCellAttributes(Component component)
Moves the width, align, and valign settings of the component to the corresponding cell properties (if not already configured)

Parameters:
component - instance to adjust settings for

getSupportedContainer

public Class<? extends Container> getSupportedContainer()
Description copied from class: LayoutManagerBase
Default Impl

Specified by:
getSupportedContainer in interface LayoutManager
Overrides:
getSupportedContainer in class LayoutManagerBase
Returns:
Class container class supported
See Also:
LayoutManagerBase.getSupportedContainer()

getNumberOfColumns

public int getNumberOfColumns()
Indicates the number of columns that should make up one row of data

If the item count is greater than the number of columns, a new row will be created to render the remaining items (and so on until all items are placed).

Note this does not include any generated columns by the layout manager, so the final column count could be greater (if label fields are separate).

Returns:
int

setNumberOfColumns

public void setNumberOfColumns(int numberOfColumns)
Setter for the number of columns (each row)

Parameters:
numberOfColumns -

isSuppressLineWrapping

public boolean isSuppressLineWrapping()
Indicates whether the number of columns for the table data should match the number of fields given in the container's items list (so that each field takes up one column without wrapping), this overrides the configured numberOfColumns

If set to true during the initialize phase the number of columns will be set to the size of the container's field list, if false the configured number of columns is used

Returns:
true if the column count should match the container's field count, false to use the configured number of columns

setSuppressLineWrapping

public void setSuppressLineWrapping(boolean suppressLineWrapping)
Setter for the suppressLineWrapping indicator

Parameters:
suppressLineWrapping -

isApplyAlternatingRowStyles

public boolean isApplyAlternatingRowStyles()
Indicates whether alternating row styles should be applied

Indicator to layout manager templates to apply alternating row styles. See the configured template for the actual style classes used

Returns:
true if alternating styles should be applied, false if all rows should have the same style

setApplyAlternatingRowStyles

public void setApplyAlternatingRowStyles(boolean applyAlternatingRowStyles)
Setter for the alternating row styles indicator

Parameters:
applyAlternatingRowStyles -

isApplyDefaultCellWidths

public boolean isApplyDefaultCellWidths()
Indicates whether the manager should default the cell widths

If true, the manager will set the cell width by equally dividing by the number of columns

Returns:
true if default cell widths should be applied, false if no defaults should be applied

setApplyDefaultCellWidths

public void setApplyDefaultCellWidths(boolean applyDefaultCellWidths)
Setter for the default cell width indicator

Parameters:
applyDefaultCellWidths -

isRenderRowFirstCellHeader

public boolean isRenderRowFirstCellHeader()
Indicates whether the first cell of each row should be rendered as a header cell (th)

When this flag is turned on, the first cell for each row will be rendered as a header cell. If isRenderAlternatingHeaderColumns() is false, the remaining cells for the row will be rendered as data cells, else they will alternate between cell headers

Returns:
true if first cell of each row should be rendered as a header cell

setRenderRowFirstCellHeader

public void setRenderRowFirstCellHeader(boolean renderRowFirstCellHeader)
Setter for render first row column as header indicator

Parameters:
renderRowFirstCellHeader -

isRenderFirstRowHeader

public boolean isRenderFirstRowHeader()
Indicates whether the first row of items rendered should all be rendered as table header (th) cells

Generally when using a grid layout all the cells will be tds or alternating th/td (with the label in the th cell). However in some cases it might be desired to display the labels in one row as table header cells (th) followed by a row with the corresponding fields in td cells. When this is enabled this type of layout is possible

Returns:
true if first row should be rendered as header cells

setRenderFirstRowHeader

public void setRenderFirstRowHeader(boolean renderFirstRowHeader)
Setter for the first row as header indicator

Parameters:
renderFirstRowHeader -

isRenderAlternatingHeaderColumns

public boolean isRenderAlternatingHeaderColumns()
Indicates whether header columns (th for tables) should be rendered for every other item (alternating)

If true the first cell of each row will be rendered as an header, with every other cell in the row as a header

Returns:
true if alternating headers should be rendered, false if not

setRenderAlternatingHeaderColumns

public void setRenderAlternatingHeaderColumns(boolean renderAlternatingHeaderColumns)
Setter for the render alternating header columns indicator

Parameters:
renderAlternatingHeaderColumns -

getRowCssClasses

public List<String> getRowCssClasses()
The list of styles for each row

Each entry in the list gives the style for the row with the same index. This style will be added the the tag when the table rows are rendered in the grid.tag. This is used to store the styles for newly added lines and other special cases like the add item row.

Returns:
list of styles for the rows

setRowCssClasses

public void setRowCssClasses(List<String> rowCssClasses)
Setter for the list that stores the css style names of each row

Parameters:
rowCssClasses -

copyProperties

protected <T> void copyProperties(T layoutManager)
Description copied from class: DictionaryBeanBase
Copies properties for copy()

Overrides:
copyProperties in class LayoutManagerBase
Parameters:
layoutManager - base bean
See Also:
ComponentBase.copy()


Copyright © 2005-2013 The Kuali Foundation. All Rights Reserved.