ColumnSpan node control property has been added to allow node control to span the specified columns count.
Wrap node control property has been added to allow to move node control under all previous node controls.
Options.NodeControl.DynamicColumnSpan treeview property has been added to dynamically control the node control`s column span value.
NodeControlColumnSpan treeview event has been added to dynamically set the node control`s column span value.
Visibility and VisibilityManager node control properties has been added to define the node control`s visibility within a node with different states.
ImageAlign column property now has the eColumnImageAlign type and new alignment Center has been added to center the column image.
IsHot node property has been added to check whether the node is under the mouse cursor.
IsVisibleForNode node control method has been added to manually control the node control visibility for every node in the treeview with many nodes.
eObjectVisibility.GeneralNode mode has been added to be able to display a node control or control container for a node that`s not selected, not focused, not hot and not soft selected.
IHtmlTagInspector interface has been added to be able to control every html tag`s appearance shown in the treeview.
Improvement
Performance improvements when using a visibility manager in the treeview with many nodes.
Bug
Node doesn`t display summaries correctly.
Cannot deselect the last selected node when the AllowEmptySelection treeview option is enabled.
The SelectionChanged treeview event isn`t raised when an already selected node has been focused in the treeview with multiselection enabled.
Breaking changes
'TreeView' node, node control and column properties was renamed to 'Treeview' to maintain consistency with other classes.
Version 2.1
(30-Nov-2009)
Bug
Hosted custom controls is not visible in the treeview.
Version 2.0
(22-Nov-2009)
New Feature
Summaries support has been has been added to display an aggregation operation result.
NodeSeparator node control has been added to show the separator horizontal line in the node.
PaintRowBackground treeview event has been added to allow to override every node`s background.
IndexableNode node has been added to easily create the node with an identifier.
Improvement
SelectionChanged treeview event now raises when the node has been detached from the parent node as well.
NodeControl.ExcludeFromSelection option now can be applied in the Partial highlight mode as well.
Bug
Empty node instance in the NodeControlPopupShowing event parameter.
Node controls in the hidden column taken into account when calculating the node height.
Wrong node index in some cases when reordering nodes by drag & drop.
Arithmetic overflow exception on Windows 7 when treeview is scrolled by the mouse wheel.
The color/gradient property designer raises exception in some cases.
Breaking changes
eNodeControlVisibility type has been moved from the ARMSoft.FlexibleTreeView.Nodes to the ARMSoft.FlexibleTreeView.NodeControls namespace.
Version 1.4
(05-Sep-2009)
New Feature
DragDropOptions.AllowReorder property has been added to allow user to simply reorder nodes by drag & drop (multiselection is supported) when AutoMove is enabled.
Column context menu has been added.
<s> HTML tag support has been added to show the strikeout text.
Node.Deselect method has been added to deselect a selected node.
DoDragDropNodes treeview method has been added to start drag & drop programmatically.
Popupable node control improvements: * NodeControl.AutoFocus property has been added to auto-focus the popup`s control when it has been shown. * Treeview.NodeControlPopupShow event has been replaced by NodeControlPopupShowing and NodeControlPopupShown events which are raised before and after popup show respectively.
Treeview.Select(Node[]) method has been added to select many nodes by one method call.
Treeview.LocalizeText event has been added to allow easily localize text, used in the treeview.
Treeview.Options.Node.FocusOnControlClick property has been added to focus the node when an attached custom control was clicked.
Node.Checked property has been added to easily change the node`s check state.
Improvement
When an attached custom control got focus, the unfocussed parent node where this control is hosting, will be focused.
Treeview.OnDragDrop event now raised anyway even if the node auto-move feature is enabled to notify about drag & drop finish.
API improvements: * Node.Selected property has been renamed to IsSelected and setter was removed. To select a node use the Select node method. * Node.Focused property has been renamed to IsFocused and setter was removed. To focus a node use the Focused node method.
Bug
Wrong text size calculation in some cases.
Wrong NodeCombBox dropdown items retrieving when interactive dropdown list is enabled.
NodeControl.MouseMove didn`t call properly on node drag & drop.
Wrong selection state of other selected nodes after a node detach.
NodeControlContainer shows the attached control in a wrong place on drag & drop start.
Treeview doesn`t allow to drag many selected nodes if there`s no focused node.
Treeview keeps the 'deny' cursor after drag & drop if the nodes drop has been denied.
NodeComboBox throws an exception on edit start when it is bound to an unknown class`s member.
Version 1.3
(04-Jun-2009)
New feature
NodeWithAnimImage node class has been added to show animated images within the NodeImage node control.
TreeView.Options.Sorting.AutoReSort property has been added to auto-resort nodes when treeview structure or content has changed.
Image animation support has been added to the NodeImage node control.
FadeOutImageAnimation class has been added for easy fadeout image animation in the NodeImage node control.
SequenceImageAnimation class has been added for easy sequential image animation in the NodeImage node control.
NodeLink node control has been added for very easy displaying of the text as a link.
NodeControl.AttachToColumn method has been added to link a node control to a column using the column instance instead of identifier.
Node styles was extended by colors for disabled node.
Design-time editor for NodeControl.ColumnId property has been added for easy node control to column binding.
NodePaintBox node control has been added to show completely custom content (like an image, text etc.) within a node.
NodeWithColor node class with Color property has been added to easy use it with the NodeColorPicker node control.
NodeWithGradient node class with Gradient property has been added to easy use it with the NodeColorPicker node control.
NodePopupContainer node control has been added to allow popup a custom content (user controls, images etc.) on click.
Cursor property has been added to all node control classes to customize the mouse cursor under a node control.
NodeColorPicker node control has been added to select a color or color gradient from the Office2007 styled color picker.
Node.OnChanged virtual method has been added to notify derived classes about node changes.
NodeControlContainer node control has been added to show custom controls inside a node.
NodeExpandableControlContainer expandable node control has been added to show custom controls inside the node control`s expandable area.
NodeWithControl node class has been added to easy show custom control inside a node using NodeControlContainer or NodeExpandableControlContainer node controls.
NodeControl.GetNodeFieldValue method exposed to retrieve node data within the TreeView.NodeControlValueGet event for node control`s content customization when NodeControl.VirtualMode is enabled.
TreeView.ViewUpdate method exposed to allow the treeview light updates with less overhead when something non-important (colors, gradients etc.) has changed.
HtmlTextHelper.HtmlToText method has been added to convert a HTML text to a plaint text with HTML tags auto-convert.
TreeView.Options.Selection.FocusNodeOnLinkClick property has been added to auto-focus the node when a hyperlink has clicked inside that node.
TreeView.VertScrollPosChanged event has been added to monitor the treeview vertical scrollbar position changes.
Node.Flash method has been added to flash a node and catch user eye on this node.
Node.ExpandChildren(bool pExpandSelf, int pExpandLevel) has been added to expand node`s children until the specified child depth level.
Node.CollapseChildren(bool pCollapseSelf, int pCollapseLevel) has been added to collapse node`s children until the specified child depth level.
TreeView.HotNodeChanged event has been added to easy monitor nodes under the mouse cursor when mouse is moving over treeview.
NodeControl.AttachTo method has been added to easy attach a node control to a treeview in run-time.
TextEnabledSolidColor/TextEnabledInactiveSolidColor/TextDisabledSolidColor properties added to text node controls and node`s styles to easy adjust colors for enabled/enabled inactive and disabled object states.
Node.Style.Weak property has been added to decide how to combine node style with treeview settings.
NodeWithLink node class has been added for easy integration with the NodeLink node control.
Improvement
ColumnSortOrderChanged event parameters was extended by a sorting node controls list.
eCheckType.RadioBox renamed to eCheckType.RadioButton.
Colors for a description text of the expandable node control within selected/focused/hot node has been added to TreeView.Colors.NodeControl.ExpandableControl for customization.
ThemeManagerOffice2007 renamed to ThemeManagerOffice2007Blue for future improvements.
TreeView.NodeControlValueGet event`s contract changed to be more flexible and allow to partially override node control`s content.
FlexibleTreeView namespace has been splitted to a bunch of smaller namespaces.
TreeView.Options.Column.AllowMultiColumnSort property moved to TreeView.Options.Sorting class.
Bug
Sorting detached node thrown an exception.
Wrong initial node check state when load on demand is enabled.
TreeComboBox thrown an exception in the VS designer.
ThemeManager thrown an exception when running on Windows with classic theme.
Wrong selection source in the SelectionChanged event when mouse clicked with Control or Shift keys are pressed.
Broken treeview license when application file name has changed.
TreeView.VertScrollPos changes doesn't properly update the vertical scrollbar position.
Node with zero height cause the treeview to display incorrectly.
Deselecting a node with dynamic height doesn't recalculate the node height in some cases.
Selecting nodes by mouse in the empty treeview thrown an exception.
Node.Style changes do not auto-update the treeview.
Node control doesn't start edit by keyboard shortcut.
Wrong node height recalculation when changing text wrap mode in the treeview without columns.
Node doesn't show the custom background gradient properly.
Treeview didn't auto-expand a selected or focused node on drag & drop.
NodeNumeric raises an exception on edit when DecimalPlaces equals to -1.
Wrong treeview content width calculation when a node control with FillFreeSpace enabled exists.
Version 1.2.1
(29-Mar-2009)
New feature
Node.Select() method without parameters has been added to just select a node.
NodeControl.ExcludeFromSelection property has been added to exclude a node control from the node selection area when tree`s highlight mode is ContentOnly.
Node.Sort method with a custom node comparer parameter has been added to give more flexibility when sorting nodes.
Bug
Changing color gradient`s angle throws an exception.
Image node control doesn't displayed within a selected node when tree`s highlight mode is ContentOnly.
Moving a node control between columns doesn't resort the treeview.
Version 1.2
(09-Mar-2009)
New feature
HTML tags support.
Plain and HTML text auto-wrapping support.
TreeComboBox control has been added to show a treeview as a combo box`s drop down.
Allow to scroll the treeview content even if it`s not focused.
ExpandedTitleStyle property has been added to the ExpandableTextBox and ExpandablePanel node controls to easily change the title`s text style of the node control in expanded state.
ExpandableTextBox.DescriptionStyle property has been added to easily change the custom area`s text style of the expandable node control.
ExpandableControl.TitleAlign property has been added to align a title text within an expandable node control.
NodeExpandableTextBox.DescriptionAlign property has been added to align a description text within an expandable node control.
The Weak property has been added to the expandable control`s TitleStyle, ExpandedTitleStyle, DescriptionStyle properties for non intrusive text style manipulations.
DragDropSettings.AutoMoveNodes property has been added to exclude additional coding for simple drag & drop.
Draw column bounds on resize.
TreeView.Options.Sorting.GroupAlwaysOnTop property and TreeView.IsGroupNode event has been added to allow to hold all "group" nodes on top when sorting nodes.
SelectionChanging(ed)`s event arguments added for complete description of how selection has been changed (programmatically, by mouse or by keyboard).
The StaticValue property has been added to the NodeTextBox and NodeNumeric node controls to show a static content instead of a node`s field value.
FilterDragNodeControl event has been added to allow to filter node controls for a thumbnail image on drag & drop.
FlexibleTreeView.DefaultNodeComparer`s setter added to allow to override default sort behavior.
New FlexibleTreeView.VertScrollPos property to manually scroll the treeview vertically.
New TreeColumn.GetPreferableColumnWidth() method to get a column width to fit all column`s content.
Node.EnumerateParents method has been added for easy all node`s parents enumeration.
NodeWithImage.ImageOpacity property has been added which allows to dynamically control an image opacity for every node.
Options.Node.ShowRootPlusMinus has been added to show or hide plus-minus signs for root nodes.
Options.Selection.SelectionMode.MultiSameLevel has been added to allow select nodes on the same level only.
Options.Selection.SelectionMode.MultiSameParent has been added to allow select nodes within the same parent only.
Bug
Fill column`s Text property by default value when it attaches to the treeview.
Treeview shows the drop position mark even when drag & drop is denied.
Wrong thumbnail image size on the first drag & drop.
Clicking a node control with the Shift key pressed auto starts the edit operation while should only select the clicked node.
ColorGradient`s editor now applies changes only when the OK button has been clicked.
Cursor don`t changes right after drop permissions has been changed.
Cursor don`t changes when the Control key pressed on drag & drop.
Drop is denied when the mouse exceeds and come back to the treeview.
Hiding (filtering out) the node control within a node doesn't recalculate the node`s height.
Hot node is not invalidated when the treeview is scrolling and the mouse leave it.
If AllowEmptySelection is enabled, node still can be unselected by clicking on empty space.
If one node is selected but not focused there`s no way to make this node focused.
Last node isn`t visible in the tree with an expandable node control when selecting a node with smaller height.
Moving a node to the other parent node cause wrong selection state restoration in some cases.
Non-visible node control still appear in the thumbnail image on drag & drop.
Pressing the left key didn't select a previous node when a root-level node is selected.
Selecting a node with an expandable node control doesn't recalculate the tree`s content width.
Selecting nodes with Shift key pressed sometimes throwns an exception.
ThemeManager didn't allow to customize colors and color gradients due to these properties inaccessibility.
Treeview in some cases doesn't clear selection when Options.Selection.AllowEmptySelection is enabled.
When scroll bar is moving and mouse is over a treeview, it highlights a node under the mouse cursor.
Wrong autosizing of the first treeview column when AutoFitColumns is enabled.
Wrong column autosizing - non-visible node controls are not excluding.
Wrong treeview`s content width calculation in the treeview without columns.
Treeview doesn't allow to scroll to the last node when a node with an expandable node control is selected.
Version 1.1
(07-Dec-2008)
Maintenance release with new architecture for forthcoming changes.