org.kuali.rice.krad.uif.view
Class ViewIndex

java.lang.Object
  extended by org.kuali.rice.krad.uif.view.ViewIndex
All Implemented Interfaces:
Serializable

public class ViewIndex
extends Object
implements Serializable

Holds field indexes of a View instance for retrieval

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

Constructor Summary
ViewIndex()
          Constructs new instance
 
Method Summary
 void addInitialComponentState(Component component)
          Adds a copy of the given component instance to the map of initial component states keyed by the component factory id
 CollectionGroup getCollectionGroupByPath(String collectionPath)
          Retrieves a CollectionGroup instance from the index
 Map<String,CollectionGroup> getCollectionsIndex()
          Gets the Map that contains collection indexing information.
 Component getComponentById(String id)
          Retrieves a Component from the view index by Id
 DataField getDataFieldByPath(String attributePath)
          Retrieves a DataField instance from the index
 DataField getDataFieldByPropertyName(String propertyName)
          Retrieves a DataField instance that has the given property name specified (note this is not the full binding path and first match is returned)
 Map<String,DataField> getDataFieldIndex()
          Gets the Map that contains attribute field indexing information.
 Map<String,Component> getInitialComponentStates()
          Preserves initial state of components needed for doing component refreshes
protected  void index(View view)
          Walks through the View tree and indexes all components found.
 void indexComponent(Component component)
          Adds an entry to the main index for the given component.
 void setInitialComponentStates(Map<String,Component> initialComponentStates)
          Setter for the map holding initial component states
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ViewIndex

public ViewIndex()
Constructs new instance

Method Detail

index

protected void index(View view)
Walks through the View tree and indexes all components found. All components are indexed by their IDs with the special indexing done for certain components

DataField instances are indexed by the attribute path. This is useful for retrieving the InputField based on the incoming request parameter

CollectionGroup instances are indexed by the collection path. This is useful for retrieving the CollectionGroup based on the incoming request parameter


indexComponent

public void indexComponent(Component component)
Adds an entry to the main index for the given component. If the component is of type DataField or CollectionGroup an entry is created in the corresponding indexes for those types as well. Then the #indexComponent method is called for each of the component's children

If the component is already contained in the indexes, it will be replaced

Parameters:
component - - component instance to index

getComponentById

public Component getComponentById(String id)
Retrieves a Component from the view index by Id

Parameters:
id - - id for the component to retrieve
Returns:
Component instance found in index, or null if no such component exists

getDataFieldByPath

public DataField getDataFieldByPath(String attributePath)
Retrieves a DataField instance from the index

Parameters:
attributePath - - full path of the attribute (from the form)
Returns:
DataField instance for the path or Null if not found

getDataFieldByPropertyName

public DataField getDataFieldByPropertyName(String propertyName)
Retrieves a DataField instance that has the given property name specified (note this is not the full binding path and first match is returned)

Parameters:
propertyName - - property name for field to retrieve
Returns:
DataField instance found or null if not found

getDataFieldIndex

public Map<String,DataField> getDataFieldIndex()
Gets the Map that contains attribute field indexing information. The Map key points to an attribute binding path, and the Map value is the DataField instance

Returns:
Map data fields index map

getCollectionsIndex

public Map<String,CollectionGroup> getCollectionsIndex()
Gets the Map that contains collection indexing information. The Map key gives the binding path to the collection, and the Map value givens the CollectionGroup instance

Returns:
Map collection index map

getCollectionGroupByPath

public CollectionGroup getCollectionGroupByPath(String collectionPath)
Retrieves a CollectionGroup instance from the index

Parameters:
collectionPath - - full path of the collection (from the form)
Returns:
CollectionGroup instance for the collection path or Null if not found

getInitialComponentStates

public Map<String,Component> getInitialComponentStates()
Preserves initial state of components needed for doing component refreshes

Some components, such as those that are nested or created in code cannot be requested from the spring factory to get new instances. For these a copy of the component in its initial state is set in this map which will be used when doing component refreshes (which requires running just that component's lifecycle)

Map entries are added during the perform initialize phase from ViewHelperService

Returns:
Map - map with key giving the factory id for the component and the value the component instance

addInitialComponentState

public void addInitialComponentState(Component component)
Adds a copy of the given component instance to the map of initial component states keyed by the component factory id

Parameters:
component - - component instance to add

setInitialComponentStates

public void setInitialComponentStates(Map<String,Component> initialComponentStates)
Setter for the map holding initial component states

Parameters:
initialComponentStates -


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