Namespace: Consultingwerk.Windows.Controls
Class 
DynamicTreeViewControl Copy to Clipboard
Parent classes:
Inherits: Progress.Windows.UserControl

/* SCL-5718: the enable mode of the tree view in a viewer is governed by the
EnabledAlways / EnabledForAdd / EnabledForUpdate / EnabledOnCopy repository
attributes of the MetaTreeView instance (evaluated by TreeviewRendering and
ViewerControlRenderer), so the control no longer implements
IAlwaysEnabledContainerControl (SCL-5705). TreeviewRendering registers the
contained controls with the Always enable mode instead, so the enabled
state follows the registration of this control



Top Method Summary
Options Name Purpose
AfterCellEnterEditModeHandler (Object, AfterCellEnterEditModeEventArgs) Event handler for the AfterCellEnterEditMode event of the ultraTreeview component
AfterCellExitEditModeHandler (Object, AfterCellExitEditModeEventArgs) Event handler for the AfterCellExitEditMode event of the ultraTreeview component
ApplyCellEditors (UltraTreeNode, SerializableTreeNode) Applies the editors of the editable cells of a node
ApplyCheckboxMode () Applies the checkbox mode to the columns of the tree
ApplyCheckedNodes () Applies the CheckedNodes value to the checked state of all nodes loaded so far
ApplyCheckedNodesToNode (UltraTreeNode) Applies the CheckedNodes value to the checked state of the given node and its child nodes
ApplyCheckedStateRecursively (UltraTreeNode) Applies the CheckedNodes value to the checked state of the given node and its child nodes
ApplyNodeCheckboxMode (UltraTreeNode, TreeNodeCheckboxModeEnum) Applies the check box mode to the check box cell of the given node
ApplyNodeStyle (UltraTreeNode, character) Applies the node style (see SerializableTreeNode:NodeStyle) to the main column of the given node
ApplyUpdatedNodes (ListSerializableTreeNode, logical) Applies the refreshed nodes returned by the tree node provider to the changed nodes
BeforeCellEnterEditModeHandler (Object, BeforeCellEnterEditModeEventArgs) Event handler for the BeforeCellEnterEditMode event of the ultraTreeview component
BeforeExpandHandler (Object, CancelableNodeEventArgs) Expands the parent Node with children Data exposed from a tree provider in a ultra treeview
LOGICAL BeginEditActiveCell () Puts the active cell - or the first editable cell of the selected node - into edit mode
BeginEditCell (UltraTreeNodeCell) Puts the given cell into edit mode
CancelNodeChanges () Discards the changes of the nodes and displays their original values again
CancelNodesButtonClickHandler (Object, EventArgs) Event handler for the Click event of the Cancel button of the standalone mode
LOGICAL CanEditCell (UltraTreeNodeCell) Returns if the user may edit the given cell now
LOGICAL CanUserCheckNode (UltraTreeNode) Returns if the user may check and uncheck the given node
Infragistics.Win.UltraWinTree.UltraTreeNodeCell CellFromElement (UIElement) Returns the cell of the given UI element
INTEGER CellIndexOfKey (character) Returns the cell index of the given column key
CHARACTER CellKeyOfIndex (integer) Returns the key of the column of the given cell index
CellValidationErrorHandler (Object, CellValidationErrorEventArgs) Event handler for the CellValidationError event of the ultraTreeview component
CellValueChangedHandler (Object, CellValueChangedEventArgs) Event handler for the CellValueChanged event of the ultraTreeview component
System.Windows.Forms.Binding CheckedNodesBinding () Returns the data binding of the CheckedNodes property
ClearErrorCells () Removes the error marks of the cells
ClearNodes () Removes all nodes from the tree view
CollectExpandedNodes (UltraTreeNode, String>) Adds the expansion id of the given node and of its expanded child nodes to the given list
CommitActiveCell () Takes the value of the cell in edit mode over into its node
CreateNodeEditPanel () Creates the Save / Cancel panel of the standalone mode
DiscardNodeChanges () Forgets the changes of the nodes without restoring the displayed values
DisplayColumnValues (UltraTreeNode, JsonArray) Displays the Node values
ExpandAllNodes () Expands all nodes of the tree
ExpandNode (UltraTreeNode) Expands the parent Node with children Data exposed from a tree provider in a ultra treeview
ExpandNodeRecursively (UltraTreeNode) Expands the given node and all its child nodes recursively
FetchRootNodes (character) Renders the Data exposed from a tree provider in a ultra treeview
FetchRootNodes (character, character) Renders the Data exposed from a tree provider in a ultra treeview
FillNodeValues (SerializableTreeNode, UltraTreeNode) Fills the Description and Value Column
INTEGER FindChangedSpecIndex (SerializableTreeNode) Returns the index of the changed node spec matching the given node
Infragistics.Win.UltraWinTree.UltraTreeNode FindNodeByKey (character) Returns the node carrying the given key token
Infragistics.Win.UltraWinTree.UltraTreeNode FindNodeByKey (UltraTreeNode, character) Returns the node carrying the given key token from the given node and its materialized child nodes
Infragistics.Win.UltraWinTree.UltraTreeNode FindNodeBySpecIndex (integer) Returns the node carrying the spec with the given index
Infragistics.Win.UltraWinTree.UltraTreeNode FindNodeBySpecIndex (UltraTreeNode, integer) Returns the node carrying the spec with the given index from the given node and its child nodes
ForgetNodeChanges (integer) Removes the given node spec from the changed nodes
FormClosingHandler (Object, FormClosingEventArgs) Event handler for the FormClosing event of the hosting form
Consultingwerk.CommonUi.Components.TreeView.ListSerializableTreeNode GetChangedNodes () Returns the changed nodes
Consultingwerk.CommonUi.Components.TreeView.TreeNodeCheckboxModeEnum GetNodeCheckboxMode (UltraTreeNode) Returns the check box mode of the given node
Consultingwerk.CommonUi.Components.TreeView.SerializableTreeNode GetNodeSpec (UltraTreeNode) Returns the SerializableTreeNode spec associated with the given UltraTreeNode
InitializeComponent () Initializes the Visual Design
LOGICAL IsNodeChecked (UltraTreeNode) Returns if the given node is checked
KeyDownHandler (Object, KeyEventArgs) Event handler for the KeyDown event of the ultraTreeview component
KeyPressHandler (Object, KeyPressEventArgs) Event handler for the KeyPress event of the ultraTreeview component
MarkErrorCells (ListTreeNodeValidationError) Marks the cells named by the given validation errors
MarkNodeChanged (UltraTreeNode, SerializableTreeNode) Registers the given node as changed
MouseDownHandler (Object, MouseEventArgs) Event handler for the MouseDown event of the ultraTreeview component
MouseUpHandler (Object, MouseEventArgs) Event handler for the MouseUp event of the ultraTreeview component
CHARACTER NodeExpansionId (UltraTreeNode) Returns the value identifying the given node in the set of the expanded nodes of a RefreshTree
CHARACTER NodeKey (UltraTreeNode) Returns the key token identifying the given node in the CheckedNodes value
OnLoad (EventArgs) Raises the Load event
OnTreeNodeChecked (TreeNodeCheckedEventArgs) Raises the TreeNodeChecked event
OnTreeNodeDoubleClick (TreeNodeDoubleClickEventArgs) Raises the TreeNodeDoubleClick
OnTreeNodeSelected (TreeNodeSelectionEventArgs) Raises the TreeNodeSelected event
OnTreeNodeUnchecked (TreeNodeCheckedEventArgs) Raises the TreeNodeUnchecked event
OnTreeNodeValueChanged (TreeNodeValueChangedEventArgs) Raises the TreeNodeValueChanged event
LOGICAL RefreshNode (UltraTreeNode) Refreshes the given node from the tree node provider
LOGICAL RefreshSelectedNode () Refreshes the selected node from the tree node provider
RefreshTree () Reloads the tree structure from the tree node provider and restores the expanded nodes and the selection
RefreshTree (character, character) Reloads the tree structure from the tree node provider, restoring the expanded nodes and the selection
LOGICAL ResolvePendingNodeChanges (logical) Saves or discards pending node changes before the tree is rebuilt
RestoreExpandedNodes (UltraTreeNode, String>, character) Expands the given node and its child nodes according to the remembered expansion ids and the key tokens to force open
LOGICAL SaveNodeChanges () Saves the changed nodes through the tree node provider
SaveNodesButtonClickHandler (Object, EventArgs) Event handler for the Click event of the Save button of the standalone mode
SetMainColumnImage (UltraTreeNode, character) Assigns the image referenced by the given url to the nodes MainColumn
SetNodeChecked (UltraTreeNode, logical) Checks or unchecks the given node
SetupColumns (character, character[], character[]) Sets up Columns of the Tree
INTEGER SpecIndexOfNode (UltraTreeNode) Returns the index of the spec of the given node in oNodeSpecs
TakeOverCellValue (UltraTreeNodeCell) Takes the value of the given cell over into the node spec
ultraTreeview_AfterSelect (Object, SelectEventArgs) Event handler for the AfterSelect event of the ultraTreeview component
ultraTreeview_DoubleClick (Object, EventArgs) Event handler for the DoubleClick event of the ultraTreeview component
UpdateNodeEditPanel () Shows or hides the Save / Cancel panel and enables its buttons
WriteCheckedNodesBinding () Writes the CheckedNodes value back to the bound BindingSource

Top Constructor Summary
Options Name Purpose
DynamicTreeViewControl () Constructor for the DynamicTreeViewControl class

Top Event Summary
Options Name Purpose
TreeNodeChecked (Object, TreeNodeCheckedEventArgs) Raised when a Tree Node has been checked
TreeNodeDoubleClick (Object, TreeNodeDoubleClickEventArgs) Raised when a Tree Node is double-clicked
TreeNodeSelected (Object, TreeNodeSelectionEventArgs) Raised when a Tree Node is selected
TreeNodeUnchecked (Object, TreeNodeCheckedEventArgs) Raised when a Tree Node has been unchecked
TreeNodeValueChanged (Object, TreeNodeValueChangedEventArgs) Raised when the user changes the value of an editable cell of a node

Top Property Summary
Options Name Purpose
LOGICAL Checkboxes
LOGICAL CheckboxesEnabled
CHARACTER CheckedNodes
CHARACTER CheckedNodesDelimiter
CHARACTER ColumnHeaders
LOGICAL ExpandAll
LOGICAL HasPendingNodeChanges
LOGICAL NodeEditingEnabled
CHARACTER RootNodeFilter
Consultingwerk.Windows.Controls.IDynamicTreeViewRootNodeFilterProvider RootNodeFilterProvider
CHARACTER RootNodeType
LOGICAL StandaloneNodeEditing


Method Detail
Top

AfterCellEnterEditModeHandler (Object, AfterCellEnterEditModeEventArgs)

Purpose: Event handler for the AfterCellEnterEditMode event of the
ultraTreeview component
Notes: SCL-5849. Starts a new edit session, see CellValueChangedHandler

Parameters:
sender System.Object
The object that raised the event
e Infragistics.Win.UltraWinTree.AfterCellEnterEditModeEventArgs
The AfterCellEnterEditModeEventArgs with the data for this event
Top

AfterCellExitEditModeHandler (Object, AfterCellExitEditModeEventArgs)

Purpose: Event handler for the AfterCellExitEditMode event of the
ultraTreeview component
Notes: SCL-5849. Takes the value of the cell over into the node spec

Parameters:
sender System.Object
The object that raised the event
e Infragistics.Win.UltraWinTree.AfterCellExitEditModeEventArgs
The AfterCellExitEditModeEventArgs with the data for this event
Top

ApplyCellEditors (UltraTreeNode, SerializableTreeNode)

Purpose: Applies the editors of the editable cells of a node
Notes: SCL-5849. Editability and editor are set per cell, never per
column: the column sets are cloned per node level
(UltraTreeColumnResizeHelper:CloneColumnSet), CloneColumnSet), and the clone
drops the column settings. Editable cells get the value in the
format of their editor type; a cell that is no longer editable
is reset. Cells of nodes without editor types are not touched

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode
poSpec Consultingwerk.CommonUi.Components.TreeView.SerializableTreeNode
The SerializableTreeNode spec of the node
Top

ApplyCheckboxMode ()

Purpose: Applies the checkbox mode to the columns of the tree
Notes: SCL-5833. The check box column is created by SetupColumns in
the column set of the root level. The column sets are cloned
per node level while the tree is populated
(UltraTreeColumnResizeHelper:CloneColumnSet), CloneColumnSet), and the clone
does not carry AllowCellEdit - so the column is made editable
again on every level here, which is why this method runs once
the tree has been populated and after child nodes have been
loaded lazily. Does nothing while the tree does not run in
checkbox mode

Top

ApplyCheckedNodes ()

Purpose: Applies the CheckedNodes value to the checked state of all
nodes loaded so far
Notes: SCL-5833. Does nothing when the tree does not run in checkbox
mode and while the checked state is already being applied or
maintained, so the CellValueChanged notifications raised while
applying do not feed back into the CheckedNodes value

Top

ApplyCheckedNodesToNode (UltraTreeNode)

Purpose: Applies the CheckedNodes value to the checked state of the
given node and its child nodes
Notes: SCL-5833. Invoked after the child nodes of a node have been
loaded lazily, so that nodes named by the CheckedNodes value
are checked when they become visible

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode to apply the checked state to
Top

ApplyCheckedStateRecursively (UltraTreeNode)

Purpose: Applies the CheckedNodes value to the checked state of the
given node and its child nodes
Notes: SCL-5833. Nodes without a key token keep their checked state,
as they cannot be represented in the CheckedNodes value.
Expects the caller to have raised the lApplyingCheckedNodes
guard

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode to apply the checked state to
Top

ApplyNodeCheckboxMode (UltraTreeNode, TreeNodeCheckboxModeEnum)

Purpose: Applies the check box mode to the check box cell of the given
node
Notes: SCL-6035. The check box is a cell of the column SmartChecked,
not the UltraTree node check box (see cCheckedColumnKey), so
the mode is a setting of that cell, which overrides the
AllowCellEdit:Full Full of the column: ReadOnly disables the cell
(the check box is painted greyed out with its value), None
gives the cell a text editor without a value (no check box is
painted, the column keeps the alignment) and Checkable resets
both, as a refreshed node can change its mode. The user
interaction of the control itself (mouse click, Space) does not
go through the cell editor and is guarded by CanUserCheckNode.
Expects the caller to have raised the lApplyingCheckedNodes
guard, as the cell value may change

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode
peMode Consultingwerk.CommonUi.Components.TreeView.TreeNodeCheckboxModeEnum
The TreeNodeCheckboxModeEnum of the node
Top

ApplyNodeStyle (UltraTreeNode, character)

Purpose: Applies the node style (see SerializableTreeNode:NodeStyle) to
the main column of the given node
Notes: SCL-5980. The node style names a resource of the Infragistics
AppStylist style library (.isl) - it is assigned to the
StyleResourceName of the appearance of the main column, so only
the node label is styled; the expansion indicator, the check box
column and the value columns are not affected. A name the loaded
style library does not define has no effect. A node refreshed
without a style resets the StyleResourceName, so it does not
keep the style of before

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode to style
pcNodeStyle CHARACTER
The node style, the name of a style library resource
Top

ApplyUpdatedNodes (ListSerializableTreeNode, logical)

Purpose: Applies the refreshed nodes returned by the tree node provider
to the changed nodes
Notes: SCL-5849. A refreshed node replaces the changed node of the same
node type and key (TreeNodeDetailSpecHelper:NodeKey, or the
ChildNodesUrl for a node without key fields) in the node spec
list and on the tree, like RefreshNode does. With plAllSaved the
changed nodes the provider did not return are saved as well,
their changes are forgotten

Parameters:
poRefreshed Consultingwerk.CommonUi.Components.TreeView.ListSerializableTreeNode
The ListSerializableTreeNode with the refreshed nodes
plAllSaved LOGICAL
Logical value indicating if all changed nodes have been saved
Top

BeforeCellEnterEditModeHandler (Object, BeforeCellEnterEditModeEventArgs)

Purpose: Event handler for the BeforeCellEnterEditMode event of the
ultraTreeview component
Notes: SCL-5849. Only this control puts a node value cell into edit
mode (BeginEditCell) - the default cell click action of the tree
would edit on the first click, which is reserved for selecting
the node. The check box column keeps its own handling

Parameters:
sender System.Object
The object that raised the event
e Infragistics.Win.UltraWinTree.BeforeCellEnterEditModeEventArgs
The BeforeCellEnterEditModeEventArgs with the data for this event
Top

BeforeExpandHandler (Object, CancelableNodeEventArgs)

Purpose: Expands the parent Node with children Data exposed from a tree provider in a ultra treeview
Notes:

Parameters:
sender System.Object
The reference to the Control that raise the event
e Infragistics.Win.UltraWinTree.CancelableNodeEventArgs
The CancelableNodeEventArgs with the data for this event
Top

LOGICAL BeginEditActiveCell ()

Purpose: Puts the active cell - or the first editable cell of the
selected node - into edit mode
Notes: SCL-5849. The keyboard entry into the edit mode (F2, typing)

Returns LOGICAL
Logical value indicating if a cell has been put into edit mode
Top

BeginEditCell (UltraTreeNodeCell)

Purpose: Puts the given cell into edit mode
Notes: SCL-5849. Every other attempt to enter the edit mode is
cancelled, see BeforeCellEnterEditModeHandler

Parameters:
poCell Infragistics.Win.UltraWinTree.UltraTreeNodeCell
The UltraTreeNodeCell to edit
Top

CancelNodeChanges ()

Purpose: Discards the changes of the nodes and displays their original
values again
Notes: SCL-5849. A cell in edit mode drops its input

Top

CancelNodesButtonClickHandler (Object, EventArgs)

Purpose: Event handler for the Click event of the Cancel button of the
standalone mode
Notes: SCL-5849

Parameters:
sender System.Object
The object that raised the event
e System.EventArgs
The System.EventArgs with the data for this event
Top

LOGICAL CanEditCell (UltraTreeNodeCell)

Purpose: Returns if the user may edit the given cell now
Notes: SCL-5849. The cell has to be editable according to the node
spec, and NodeEditingEnabled has to be TRUE. The check box
column is not a node value cell

Parameters:
poCell Infragistics.Win.UltraWinTree.UltraTreeNodeCell
The UltraTreeNodeCell
Returns LOGICAL
Logical value indicating if the cell can be edited
Top

LOGICAL CanUserCheckNode (UltraTreeNode)

Purpose: Returns if the user may check and uncheck the given node
Notes: SCL-6035. Only nodes with the check box mode Checkable; the
check box of a ReadOnly node is changed by code only, a node
with the mode None has no check box

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode
Returns LOGICAL
Logical value indicating if the user may check the node
Top

Infragistics.Win.UltraWinTree.UltraTreeNodeCell CellFromElement (UIElement)

Purpose: Returns the cell of the given UI element
Notes: SCL-5849

Parameters:
poElement Infragistics.Win.UIElement
The UIElement (a cell element or one of its descendants)
Returns Infragistics.Win.UltraWinTree.UltraTreeNodeCell
The UltraTreeNodeCell or the unknown value
Top

INTEGER CellIndexOfKey (character)

Purpose: Returns the cell index of the given column key
Notes: SCL-5849. 0 for a column that is not a node value column (the
check box column)

Parameters:
pcColumnKey CHARACTER
The column key
Returns INTEGER
The 1-based cell index or 0
Top

CHARACTER CellKeyOfIndex (integer)

Purpose: Returns the key of the column of the given cell index
Notes: SCL-5849. Cell 1 is the main column, cell n the column of the
column header n - 1

Parameters:
piCellIndex INTEGER
The 1-based cell index (see SerializableTreeNode:NodeEditorTypes)
Returns CHARACTER
The column key
Top

CellValidationErrorHandler (Object, CellValidationErrorEventArgs)

Purpose: Event handler for the CellValidationError event of the
ultraTreeview component
Notes: SCL-5849. The editor could not convert the input (e.g. an
incomplete date) - the cell stays in edit mode

Parameters:
sender System.Object
The object that raised the event
e Infragistics.Win.UltraWinTree.CellValidationErrorEventArgs
The CellValidationErrorEventArgs with the data for this event
Top

CellValueChangedHandler (Object, CellValueChangedEventArgs)

Purpose: Event handler for the CellValueChanged event of the
ultraTreeview component
Notes: SCL-5833. Only the check box column is of interest. Maintains
the CheckedNodes value - the key token of the node is added to
or removed from the list, so the tokens of nodes that have not
been loaded yet are retained - writes the value back to a bound
BindingSource and raises the TreeNodeChecked / TreeNodeUnchecked
event. CurrentValue carries the toggled value while the cell is
still in edit mode, which is why it is used rather than the
cell value

Parameters:
sender System.Object
The object that raised the event
e Infragistics.Win.UltraWinTree.CellValueChangedEventArgs
The CellValueChangedEventArgs with the data for this event
Top

System.Windows.Forms.Binding CheckedNodesBinding ()

Purpose: Returns the data binding of the CheckedNodes property
Notes: SCL-5833. The binding is added by the repository rendering when
the CheckedNodes attribute of the MetaTreeView instance names a
field of the viewer's data source

Returns System.Windows.Forms.Binding
The System.Windows.Forms.Binding or the unknown value when the property is not bound
Top

ClearErrorCells ()

Purpose: Removes the error marks of the cells
Notes: SCL-5849

Top

ClearNodes ()

Purpose: Removes all nodes from the tree view
Notes: SCL-5705. Used when the record providing the root node filter
of a tree view embedded in a viewer becomes unavailable, so
the tree does not keep displaying the nodes of the previous
record

Top

CollectExpandedNodes (UltraTreeNode, String>)

Purpose: Adds the expansion id of the given node and of its expanded
child nodes to the given list
Notes: SCL-5861. Only expanded nodes are of interest, and a collapsed
node can not have expanded children, so the walk stops there

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode to collect the expanded nodes from
poExpandedNodes System.Collections.Generic.List
The list of expansion ids to add to
Top

CommitActiveCell ()

Purpose: Takes the value of the cell in edit mode over into its node
Notes: SCL-5849. An Infragistics toolbar click does not take the
focus from the tree, so a Save button of the hosting form or
viewer would miss the value of the cell being edited. A value
the editor rejects keeps the cell in edit mode

Top

CreateNodeEditPanel ()

Purpose: Creates the Save / Cancel panel of the standalone mode
Notes: SCL-5849. Created at runtime rather than in InitializeComponent:
it is only shown when a node carries an editable cell and the
tree does not rely on the Table IO of its host. Docked at the
bottom, below the tree which fills the remaining space

Top

DiscardNodeChanges ()

Purpose: Forgets the changes of the nodes without restoring the
displayed values
Notes: SCL-5849. Used before the tree is rebuilt anyway

Top

DisplayColumnValues (UltraTreeNode, JsonArray)

Purpose: Displays the Node values
Notes:

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The tree node
poValues Progress.Json.ObjectModel.JsonArray
The JsonArray with the values
Top

ExpandAllNodes ()

Purpose: Expands all nodes of the tree
Notes: SCL-5705. Loads the lazily provided child nodes of every node
from the ISmartTreeNodeProvider while expanding, so the whole
tree structure is visible afterwards

Top

ExpandNode (UltraTreeNode)

Purpose: Expands the parent Node with children Data exposed from a tree provider in a ultra treeview
Notes:

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
the parent node
Top

ExpandNodeRecursively (UltraTreeNode)

Purpose: Expands the given node and all its child nodes recursively
Notes: Loads the lazily provided child nodes (dummy placeholder still
present) from the ISmartTreeNodeProvider before recursing

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode to expand
Top

FetchRootNodes (character)

Purpose: Renders the Data exposed from a tree provider in a ultra treeview
Notes:

Parameters:
pcRoot CHARACTER
The root of the treeview
Top

FetchRootNodes (character, character)

Purpose: Renders the Data exposed from a tree provider in a ultra treeview
Notes:

Parameters:
pcRoot CHARACTER
The root of the treeview
pcFilter CHARACTER
The node filter string
Top

FillNodeValues (SerializableTreeNode, UltraTreeNode)

Purpose: Fills the Description and Value Column
Notes:

Parameters:
poNode Consultingwerk.CommonUi.Components.TreeView.SerializableTreeNode
The SerializableTreeNode of the node
poChild Infragistics.Win.UltraWinTree.UltraTreeNode
The root UltraTreeNode the node
Top

INTEGER FindChangedSpecIndex (SerializableTreeNode)

Purpose: Returns the index of the changed node spec matching the given
node
Notes: SCL-5849. Same node type and the same key token
(TreeNodeDetailSpecHelper:NodeKey); NodeKey); nodes without key fields
match by their ChildNodesUrl

Parameters:
poNode Consultingwerk.CommonUi.Components.TreeView.SerializableTreeNode
The SerializableTreeNode to match
Returns INTEGER
The index of the changed node spec or 0
Top

Infragistics.Win.UltraWinTree.UltraTreeNode FindNodeByKey (character)

Purpose: Returns the node carrying the given key token
Notes: SCL-5861. Only searches the nodes that are materialized - the
lazily loaded children of a collapsed node are not fetched from
the provider to find a node

Parameters:
pcNodeKey CHARACTER
The key token to locate (see TreeNodeDetailSpecHelper:NodeKey)
Returns Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode or the unknown value when no node carries the token
Top

Infragistics.Win.UltraWinTree.UltraTreeNode FindNodeByKey (UltraTreeNode, character)

Purpose: Returns the node carrying the given key token from the given
node and its materialized child nodes
Notes: SCL-5861. See the overload taking only the key token

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode to search
pcNodeKey CHARACTER
The key token to locate
Returns Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode or the unknown value when no node carries the token
Top

Infragistics.Win.UltraWinTree.UltraTreeNode FindNodeBySpecIndex (integer)

Purpose: Returns the node carrying the spec with the given index
Notes: SCL-5849. Searches the materialized nodes

Parameters:
piSpecIndex INTEGER
The index of the node spec in oNodeSpecs
Returns Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode or the unknown value
Top

Infragistics.Win.UltraWinTree.UltraTreeNode FindNodeBySpecIndex (UltraTreeNode, integer)

Purpose: Returns the node carrying the spec with the given index from
the given node and its child nodes
Notes: SCL-5849

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode to search
piSpecIndex INTEGER
The index of the node spec in oNodeSpecs
Returns Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode or the unknown value
Top

ForgetNodeChanges (integer)

Purpose: Removes the given node spec from the changed nodes
Notes: SCL-5849. Leaves the values of the spec alone

Parameters:
piSpecIndex INTEGER
The index of the node spec in oNodeSpecs
Top

FormClosingHandler (Object, FormClosingEventArgs)

Purpose: Event handler for the FormClosing event of the hosting form
Notes: SCL-5849. Standalone mode only (see StandaloneNodeEditing): asks
whether to save pending node changes; Cancel - or a failed
save - keeps the form open

Parameters:
sender System.Object
The object that raised the event
e System.Windows.Forms.FormClosingEventArgs
The System.Windows.Forms.FormClosingEventArgs with the data for this event
Top

Consultingwerk.CommonUi.Components.TreeView.ListSerializableTreeNode GetChangedNodes ()

Purpose: Returns the changed nodes
Notes: SCL-5849. The node specs carry the current values and the
original values (OriginalMainColumnValue / OriginalNodeValues)

Returns Consultingwerk.CommonUi.Components.TreeView.ListSerializableTreeNode
The ListSerializableTreeNode with the changed nodes
Top

Consultingwerk.CommonUi.Components.TreeView.TreeNodeCheckboxModeEnum GetNodeCheckboxMode (UltraTreeNode)

Purpose: Returns the check box mode of the given node
Notes: SCL-6035. See SerializableTreeNode:CheckboxMode; Checkable for a
node without a node spec

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode to return the check box mode of
Returns Consultingwerk.CommonUi.Components.TreeView.TreeNodeCheckboxModeEnum
The TreeNodeCheckboxModeEnum of the node
Top

Consultingwerk.CommonUi.Components.TreeView.SerializableTreeNode GetNodeSpec (UltraTreeNode)

Purpose: Returns the SerializableTreeNode spec associated with the given
UltraTreeNode
Notes: The index into the node spec list is stored as the third entry
(CHR(1) delimited) of the UltraTreeNode's Tag

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode to return the spec for
Returns Consultingwerk.CommonUi.Components.TreeView.SerializableTreeNode
The SerializableTreeNode spec or the unknown value when not available
Top

InitializeComponent ()

Purpose: Initializes the Visual Design
Notes:

Top

LOGICAL IsNodeChecked (UltraTreeNode)

Purpose: Returns if the given node is checked
Notes: SCL-5833. Reads the check box cell of the node; FALSE when the
tree does not run in checkbox mode

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode to return the checked state of
Returns LOGICAL
Logical value indicating if the node is checked
Top

KeyDownHandler (Object, KeyEventArgs)

Purpose: Event handler for the KeyDown event of the ultraTreeview
component
Notes: SCL-5833. The space key toggles the check box of the active
node - the keyboard counterpart of the mouse click on the check
box column. The key is marked as handled so the tree does not
process it further

Parameters:
sender System.Object
The object that raised the event
e System.Windows.Forms.KeyEventArgs
The System.Windows.Forms.KeyEventArgs with the data for this event
Top

KeyPressHandler (Object, KeyPressEventArgs)

Purpose: Event handler for the KeyPress event of the ultraTreeview
component
Notes: SCL-5849. Typing on an editable active cell puts it into edit
mode; the typed character replaces the text of a text cell

Parameters:
sender System.Object
The object that raised the event
e System.Windows.Forms.KeyPressEventArgs
The System.Windows.Forms.KeyPressEventArgs with the data for this event
Top

MarkErrorCells (ListTreeNodeValidationError)

Purpose: Marks the cells named by the given validation errors
Notes: SCL-5849. The errors identify the node by its node type and key
token; an error of cell 0 (the node as a whole) marks the main
column

Parameters:
poErrors Consultingwerk.CommonUi.Components.TreeView.ListTreeNodeValidationError
The ListTreeNodeValidationError with the validation errors
Top

MarkNodeChanged (UltraTreeNode, SerializableTreeNode)

Purpose: Registers the given node as changed
Notes: SCL-5849. On the first change the current values of the node
spec are kept as its original values (OriginalMainColumnValue /
OriginalNodeValues), which the provider receives with the
changed node and which CancelNodeChanges restores

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode
poSpec Consultingwerk.CommonUi.Components.TreeView.SerializableTreeNode
The SerializableTreeNode spec of the node
Top

MouseDownHandler (Object, MouseEventArgs)

Purpose: Event handler for the MouseDown event of the ultraTreeview
component
Notes: SCL-5833. A boolean cell of the tree does not toggle on a mouse
click (the cell would have to be activated and edited first), so
a click on the check box column is resolved through the UI
element under the mouse and the cell is toggled here - a single
click, independent of the cell edit mode. MouseDown rather than
Click: the node selection raised by the same mouse down may run
a server-side event handler that shows a modal dialog, and the
mouse up that Click depends on then goes to that dialog

Parameters:
sender System.Object
The object that raised the event
e System.Windows.Forms.MouseEventArgs
The System.Windows.Forms.MouseEventArgs with the data for this event
Top

MouseUpHandler (Object, MouseEventArgs)

Purpose: Event handler for the MouseUp event of the ultraTreeview
component
Notes: SCL-5849. A click on an editable cell of the node that was
already selected before the click puts the cell into edit
mode; the click that selects a node only selects it (and runs
the NodeClick handler). Evaluated on mouse up, when the
selection change of the same click has been processed

Parameters:
sender System.Object
The object that raised the event
e System.Windows.Forms.MouseEventArgs
The System.Windows.Forms.MouseEventArgs with the data for this event
Top

CHARACTER NodeExpansionId (UltraTreeNode)

Purpose: Returns the value identifying the given node in the set of the
expanded nodes of a RefreshTree
Notes: SCL-5861. The ChildNodesUrl of the node spec: it is the value
the child nodes of the node are requested from the provider
with, so it survives a reload and identifies the node even when
the node carries no key token - which is the case for the label
nodes a provider groups its children under. A node without a
ChildNodesUrl has no lazily loaded children and can not be
expanded, so it needs no id

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode to return the expansion id for
Returns CHARACTER
The expansion id or an empty character value
Top

CHARACTER NodeKey (UltraTreeNode)

Purpose: Returns the key token identifying the given node in the
CheckedNodes value
Notes: SCL-5833. See TreeNodeDetailSpecHelper:NodeKey

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode to return the key token for
Returns CHARACTER
The key token or the unknown value when the node carries no usable key
Top

OnLoad (EventArgs)

Purpose: Raises the Load event
Notes: SCL-5849. Subscribes to the FormClosing event of the form
hosting the tree, so pending node changes of the standalone
mode are not lost when the form is closed

Parameters:
e System.EventArgs
The System.EventArgs with the data for the event
Top

OnTreeNodeChecked (TreeNodeCheckedEventArgs)

Purpose: Raises the TreeNodeChecked event
Notes: SCL-5833

Parameters:
e Consultingwerk.Windows.Controls.TreeNodeCheckedEventArgs
The TreeNodeCheckedEventArgs with the data for the event
Top

OnTreeNodeDoubleClick (TreeNodeDoubleClickEventArgs)

Purpose: Raises the TreeNodeDoubleClick
Notes:

Parameters:
e Consultingwerk.Windows.Controls.TreeNodeDoubleClickEventArgs
The TreeNodeDoubleClickEventArgs with the data for the event
Top

OnTreeNodeSelected (TreeNodeSelectionEventArgs)

Purpose: Raises the TreeNodeSelected event
Notes:

Parameters:
e Consultingwerk.Windows.Controls.TreeNodeSelectionEventArgs
The TreeNodeSelectionEventArgs with the data for the event
Top

OnTreeNodeUnchecked (TreeNodeCheckedEventArgs)

Purpose: Raises the TreeNodeUnchecked event
Notes: SCL-5833

Parameters:
e Consultingwerk.Windows.Controls.TreeNodeCheckedEventArgs
The TreeNodeCheckedEventArgs with the data for the event
Top

OnTreeNodeValueChanged (TreeNodeValueChangedEventArgs)

Purpose: Raises the TreeNodeValueChanged event
Notes: SCL-5849

Parameters:
e Consultingwerk.Windows.Controls.TreeNodeValueChangedEventArgs
The TreeNodeValueChangedEventArgs with the data for the event
Top

LOGICAL RefreshNode (UltraTreeNode)

Purpose: Refreshes the given node from the tree node provider
Notes: SCL-2033. Requests the refreshed node spec for the node type
and the key values of the node (see
TreeNodeDetailSpecHelper:NodeKeyValues) NodeKeyValues) from the
ISmartTreeNodeRefreshProvider and displays its values. The node
is left unchanged when the registry does not implement the
interface or when no provider returns a refreshed node

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode to refresh
Returns LOGICAL
Logical value indicating if the node has been refreshed
Top

LOGICAL RefreshSelectedNode ()

Purpose: Refreshes the selected node from the tree node provider
Notes: SCL-2033. See RefreshNode

Returns LOGICAL
Logical value indicating if the selected node has been refreshed
Top

RefreshTree ()

Purpose: Reloads the tree structure from the tree node provider and
restores the expanded nodes and the selection
Notes: SCL-5861. See the overload taking the node to select and the
nodes to expand

Top

RefreshTree (character, character)

Purpose: Reloads the tree structure from the tree node provider,
restoring the expanded nodes and the selection
Notes: SCL-5861. Repeats the root node fetch with the root node type
of the last FetchRootNodes call and the root node filter of the
RootNodeFilterProvider (or, without a provider, of that last
call), so the root node and the lazily loaded child nodes come
from the ISmartTreeNodeProvider again. Unlike RefreshNode /
RefreshSelectedNode (SCL-2033), which only re-read the values of
a single node, this rebuilds the tree structure.
Every node that was expanded before and is still there
afterwards comes back expanded, nodes the reload added are
collapsed and nodes that are gone are forgotten. The nodes named
by pcExpandNodes are expanded on top of those - additive, the
parameter never collapses a node. That is what makes a newly
created node below a collapsed parent reachable, and it is the
only way to reach it: a node key token carries no ancestry, so
the restore walk is strictly top down and never goes searching
through branches nobody asked for. A pcSelectNodeKey that is not
materialized by the walk leaves the selection alone.
The reload runs behind the wait state of FetchRootNodes, and the
checked nodes of a tree view in checkbox mode (SCL-5833) survive
it - FetchRootNodes re-applies ApplyCheckedNodes

Parameters:
pcSelectNodeKey CHARACTER
The key token of the node to select after the reload; the previously selected node stays selected when it is blank (see TreeNodeDetailSpecHelper:NodeKey)
pcExpandNodes CHARACTER
The pipe (|) delimited list of key tokens of the nodes to expand after the reload
Top

LOGICAL ResolvePendingNodeChanges (logical)

Purpose: Saves or discards pending node changes before the tree is
rebuilt
Notes: SCL-5849. Standalone mode: the user is asked whether to save
the changes; No discards them. When the save fails, the error
is shown and - depending on plKeepOnFailure - the changes stay
pending (the caller must not rebuild the tree) or are
discarded (the rebuild can not be vetoed, e.g. after a
navigation of the hosting viewer). With the Table IO of a host
(StandaloneNodeEditing = FALSE) the host decides about the
changes - a rebuild discards them

Parameters:
plKeepOnFailure LOGICAL
Logical value indicating if the changes stay pending when the save fails
Returns LOGICAL
Logical value indicating if the tree may be rebuilt
Top

RestoreExpandedNodes (UltraTreeNode, String>, character)

Purpose: Expands the given node and its child nodes according to the
remembered expansion ids and the key tokens to force open
Notes: SCL-5861. Strictly top down: a node is expanded when it is in
one of the two sets, and only then are its children processed.
Each level below a lazily loaded node needs its ExpandNode
provider round trip - the mechanism ExpandNodeRecursively uses
for ExpandAll - which keeps the cost bounded by the two sets

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode to restore the expanded state of
poExpandedNodes System.Collections.Generic.List
The list of expansion ids of the nodes that were expanded before the reload
pcForceExpandKeys CHARACTER
The CHR(1) delimited list of key tokens of the nodes to expand on top of those
Top

LOGICAL SaveNodeChanges ()

Purpose: Saves the changed nodes through the tree node provider
Notes: SCL-5849. Commits the cell in edit mode first. The changed
nodes are passed to ISmartUpdatableTreeNodeProvider:UpdateNodes
of the tree node provider registry; the refreshed nodes it
returns replace the changed nodes. A TreeNodeValidationException
applies the nodes that were saved (UpdatedNodes), marks the
cells named by its errors and is thrown on - the remaining
changes stay pending

Returns LOGICAL
Logical value indicating if changes have been saved (FALSE when there were none)
Top

SaveNodesButtonClickHandler (Object, EventArgs)

Purpose: Event handler for the Click event of the Save button of the
standalone mode
Notes: SCL-5849

Parameters:
sender System.Object
The object that raised the event
e System.EventArgs
The System.EventArgs with the data for this event
Top

SetMainColumnImage (UltraTreeNode, character)

Purpose: Assigns the image referenced by the given url to the nodes MainColumn
Notes:

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The node
pcImageUrl CHARACTER
The images url
Top

SetNodeChecked (UltraTreeNode, logical)

Purpose: Checks or unchecks the given node
Notes: SCL-5833. Sets the check box cell, maintains the CheckedNodes
value - the key token of the node is added to or removed from
the list, so the tokens of nodes that have not been loaded yet
are retained - writes the value back to a bound BindingSource
and raises the TreeNodeChecked / TreeNodeUnchecked event. The
shared path of the mouse click on the check box column and of
the cell editor (CellValueChanged). SCL-6035: works for nodes
with the check box mode ReadOnly (the callers guard the user
interaction), ignores nodes with the mode None

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode to check or uncheck
plChecked LOGICAL
The new checked state of the node
Top

SetupColumns (character, character[], character[])

Purpose: Sets up Columns of the Tree
Notes:

Parameters:
pcMainColumnHeader CHARACTER
The header for the leading column
pcColumnHeaders CHARACTER
The array of column header
pcColumnWidths CHARACTER
The array of column widths, e.g. "100px", "50px" or "75%", "25%"
Top

INTEGER SpecIndexOfNode (UltraTreeNode)

Purpose: Returns the index of the spec of the given node in oNodeSpecs
Notes: SCL-5849. The third entry of the node's Tag, see GetNodeSpec

Parameters:
poNode Infragistics.Win.UltraWinTree.UltraTreeNode
The UltraTreeNode
Returns INTEGER
The index of the node spec or 0
Top

TakeOverCellValue (UltraTreeNodeCell)

Purpose: Takes the value of the given cell over into the node spec
Notes: SCL-5849. The node is registered as changed (its original
values are kept) when the value differs from the node spec

Parameters:
poCell Infragistics.Win.UltraWinTree.UltraTreeNodeCell
The UltraTreeNodeCell that left the edit mode
Top

ultraTreeview_AfterSelect (Object, SelectEventArgs)

Purpose: Event handler for the AfterSelect event of the ultraTreeview component
Notes:

Parameters:
sender System.Object
The object that raised the event
e Infragistics.Win.UltraWinTree.SelectEventArgs
The SelectEventArgs with the data for this event
Top

ultraTreeview_DoubleClick (Object, EventArgs)

Purpose: Event handler for the DoubleClick event of the ultraTreeview component
Notes:

Parameters:
sender System.Object
: System.Object
e System.EventArgs
: System.EventArgs
Top

UpdateNodeEditPanel ()

Purpose: Shows or hides the Save / Cancel panel and enables its buttons
Notes: SCL-5849. Shown in the standalone mode when a node carries an
editable cell; the buttons are enabled while there are pending
node changes

Top

WriteCheckedNodesBinding ()

Purpose: Writes the CheckedNodes value back to the bound BindingSource
Notes: SCL-5833. Does nothing when the property is not bound, e.g. for
a tree view placed on a form rather than on a viewer



Constructor Detail
Top

DynamicTreeViewControl ()

Purpose: Constructor for the DynamicTreeViewControl class
Notes:



Event Detail
Top

TreeNodeChecked (Object, TreeNodeCheckedEventArgs)

Purpose: Raised when a Tree Node has been checked
Notes: SCL-5833. Only raised when the tree view runs in checkbox mode
(Checkboxes = TRUE) and the user checks the node; not raised
while the checked state is applied from the CheckedNodes value

Parameters:
sender Progress.Lang.Object
The object that raised the TreeNodeChecked event
e Consultingwerk.Windows.Controls.TreeNodeCheckedEventArgs
The TreeNodeCheckedEventArgs with the data for the event
Top

TreeNodeDoubleClick (Object, TreeNodeDoubleClickEventArgs)

Purpose: Raised when a Tree Node is double-clicked
Notes:

Parameters:
sender Progress.Lang.Object
The object that raised the TreeNodeDoubleClick event
e Consultingwerk.Windows.Controls.TreeNodeDoubleClickEventArgs
The TreeNodeDoubleClickEventArgs with the data for the event
Top

TreeNodeSelected (Object, TreeNodeSelectionEventArgs)

Purpose: Raised when a Tree Node is selected
Notes:

Parameters:
sender Progress.Lang.Object
The object that raised the TreeNodeSelected event
e Consultingwerk.Windows.Controls.TreeNodeSelectionEventArgs
The TreeNodeSelectionEventArgs with the data for the event
Top

TreeNodeUnchecked (Object, TreeNodeCheckedEventArgs)

Purpose: Raised when a Tree Node has been unchecked
Notes: SCL-5833. See TreeNodeChecked

Parameters:
sender Progress.Lang.Object
The object that raised the TreeNodeUnchecked event
e Consultingwerk.Windows.Controls.TreeNodeCheckedEventArgs
The TreeNodeCheckedEventArgs with the data for the event
Top

TreeNodeValueChanged (Object, TreeNodeValueChangedEventArgs)

Purpose: Raised when the user changes the value of an editable cell of
a node
Notes: SCL-5849. Raised once when the user starts changing a cell (the
first change of an edit session) and again when the changed
value has been taken over into the node (the cell left the
edit mode). The TreeViewViewerBindingHandler puts the hosting
viewer into the modifying state from it

Parameters:
sender Progress.Lang.Object
The object that raised the TreeNodeValueChanged event
e Consultingwerk.Windows.Controls.TreeNodeValueChangedEventArgs
The TreeNodeValueChangedEventArgs with the data for the event


Property Detail
Top

LOGICAL Checkboxes


Returns LOGICAL
Top

LOGICAL CheckboxesEnabled


Returns LOGICAL
Top

CHARACTER CheckedNodes


Returns CHARACTER
Top

CHARACTER CheckedNodesDelimiter


Returns CHARACTER
Top

CHARACTER ColumnHeaders


Returns CHARACTER
Top

LOGICAL ExpandAll


Returns LOGICAL
Top

LOGICAL HasPendingNodeChanges


Returns LOGICAL
Top

LOGICAL NodeEditingEnabled


Returns LOGICAL
Top

CHARACTER RootNodeFilter


Returns CHARACTER
Top

Consultingwerk.Windows.Controls.IDynamicTreeViewRootNodeFilterProvider RootNodeFilterProvider


Returns Consultingwerk.Windows.Controls.IDynamicTreeViewRootNodeFilterProvider
Top

CHARACTER RootNodeType


Returns CHARACTER
Top

LOGICAL StandaloneNodeEditing


Returns LOGICAL


©2006-2026 Consultingwerk Ltd.         info@consultingwerk.de         http://www.consultingwerk.de       10.10.2026 15:36:51