Class ControlSelectionVisitor

All Implemented Interfaces:
ICatalogVisitor<IControlSelectionState,Boolean>

Walks a Catalog indexing all nodes that can be referenced.

For each CatalogGroup, Control, and ControlPart, determine if that object is IIndexer.SelectionStatus.SELECTED or IIndexer.SelectionStatus.UNSELECTED.

A Control is IIndexer.SelectionStatus.SELECTED if it matches the configured IControlFilter, otherwise it is IIndexer.SelectionStatus.UNSELECTED.

A CatalogGroup is IIndexer.SelectionStatus.SELECTED if it contains a IIndexer.SelectionStatus.SELECTED descendant Control, otherwise it is IIndexer.SelectionStatus.UNSELECTED.

A ControlPart is IIndexer.SelectionStatus.SELECTED if its containing control is IIndexer.SelectionStatus.SELECTED.

All other indexed nodes will have the IIndexer.SelectionStatus.UNKNOWN, since these nodes require reference counting to determine if they are to be kept or not.