Browse Source

Custom modifications of the TreeView

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2802 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
David Srbecký 18 years ago
parent
commit
6026fd7b54
  1. 2
      src/Libraries/TreeViewAdv/Aga.Controls/GifDecoder.cs
  2. 59
      src/Libraries/TreeViewAdv/Aga.Controls/Tree/TreeNodeAdv.cs
  3. 16
      src/Libraries/TreeViewAdv/Aga.Controls/Tree/TreeViewAdv.cs
  4. 2
      src/Libraries/TreeViewAdv/SampleApp/FolderBrowserModel.cs
  5. 2
      src/Libraries/TreeViewAdv/SampleApp/SlowModel.cs

2
src/Libraries/TreeViewAdv/Aga.Controls/GifDecoder.cs

@ -1,3 +1,5 @@ @@ -1,3 +1,5 @@
#pragma warning disable 675 // Bitwise-or operator used on a sign-extended operand
#region Java Info
/**
* Class GifDecoder - Decodes a GIF file into one or more frames.

59
src/Libraries/TreeViewAdv/Aga.Controls/Tree/TreeNodeAdv.cs

@ -10,7 +10,7 @@ using System.Security.Permissions; @@ -10,7 +10,7 @@ using System.Security.Permissions;
namespace Aga.Controls.Tree
{
[Serializable]
public sealed class TreeNodeAdv : ISerializable
public class TreeNodeAdv : ISerializable
{
#region NodeCollection
private class NodeCollection : Collection<TreeNodeAdv>
@ -43,6 +43,10 @@ namespace Aga.Controls.Tree @@ -43,6 +43,10 @@ namespace Aga.Controls.Tree
this[i]._index++;
base.InsertItem(index, item);
}
if (_owner.Tree != null && _owner.Tree.Model == null) {
_owner.Tree.SmartFullUpdate();
}
}
protected override void RemoveItem(int index)
@ -53,6 +57,11 @@ namespace Aga.Controls.Tree @@ -53,6 +57,11 @@ namespace Aga.Controls.Tree
for (int i = index + 1; i < Count; i++)
this[i]._index--;
base.RemoveItem(index);
if (_owner.Tree != null && _owner.Tree.Model == null) {
_owner.Tree.UpdateSelection();
_owner.Tree.SmartFullUpdate();
}
}
protected override void SetItem(int index, TreeNodeAdv item)
@ -65,10 +74,42 @@ namespace Aga.Controls.Tree @@ -65,10 +74,42 @@ namespace Aga.Controls.Tree
}
#endregion
#region Events
public event EventHandler<TreeViewAdvEventArgs> Collapsing;
internal protected virtual void OnCollapsing()
{
if (Collapsing != null)
Collapsing(this, new TreeViewAdvEventArgs(this));
}
public event EventHandler<TreeViewAdvEventArgs> Collapsed;
internal protected virtual void OnCollapsed()
{
if (Collapsed != null)
Collapsed(this, new TreeViewAdvEventArgs(this));
}
public event EventHandler<TreeViewAdvEventArgs> Expanding;
internal protected virtual void OnExpanding()
{
if (Expanding != null)
Expanding(this, new TreeViewAdvEventArgs(this));
}
public event EventHandler<TreeViewAdvEventArgs> Expanded;
internal protected virtual void OnExpanded()
{
if (Expanded != null)
Expanded(this, new TreeViewAdvEventArgs(this));
}
#endregion
#region Properties
private TreeViewAdv _tree;
internal TreeViewAdv Tree
public TreeViewAdv Tree
{
get { return _tree; }
}
@ -140,14 +181,14 @@ namespace Aga.Controls.Tree @@ -140,14 +181,14 @@ namespace Aga.Controls.Tree
public bool IsLeaf
{
get { return _isLeaf; }
internal set { _isLeaf = value; }
internal protected set { _isLeaf = value; }
}
private bool _isExpandedOnce;
public bool IsExpandedOnce
{
get { return _isExpandedOnce; }
internal set { _isExpandedOnce = value; }
internal protected set { _isExpandedOnce = value; }
}
private bool _isExpanded;
@ -252,8 +293,8 @@ namespace Aga.Controls.Tree @@ -252,8 +293,8 @@ namespace Aga.Controls.Tree
get { return _nodes; }
}
private ReadOnlyCollection<TreeNodeAdv> _children;
public ReadOnlyCollection<TreeNodeAdv> Children
private IList<TreeNodeAdv> _children;
public IList<TreeNodeAdv> Children
{
get
{
@ -288,12 +329,16 @@ namespace Aga.Controls.Tree @@ -288,12 +329,16 @@ namespace Aga.Controls.Tree
{
}
internal TreeNodeAdv(TreeViewAdv tree, object tag)
internal protected TreeNodeAdv(TreeViewAdv tree, object tag)
{
_row = -1;
_tree = tree;
_nodes = new NodeCollection(this);
if (tree.Model != null) {
_children = new ReadOnlyCollection<TreeNodeAdv>(_nodes);
} else {
_children = _nodes;
}
_tag = tag;
}

16
src/Libraries/TreeViewAdv/Aga.Controls/Tree/TreeViewAdv.cs

@ -779,10 +779,13 @@ namespace Aga.Controls.Tree @@ -779,10 +779,13 @@ namespace Aga.Controls.Tree
if (Root == node && !value)
return; //Can't collapse root node
if (value)
if (value) {
OnExpanding(node);
else
node.OnExpanding();
} else {
OnCollapsing(node);
node.OnCollapsing();
}
if (value && !node.IsExpandedOnce)
{
@ -798,10 +801,13 @@ namespace Aga.Controls.Tree @@ -798,10 +801,13 @@ namespace Aga.Controls.Tree
node.AssignIsExpanded(value);
SmartFullUpdate();
if (value)
if (value) {
OnExpanded(node);
else
node.OnExpanded();
} else {
OnCollapsed(node);
node.OnCollapsed();
}
}
private void RemoveExpandingNode(TreeNodeAdv node)
@ -923,7 +929,7 @@ namespace Aga.Controls.Tree @@ -923,7 +929,7 @@ namespace Aga.Controls.Tree
return node == _root;
}
private void UpdateSelection()
internal void UpdateSelection()
{
bool flag = false;

2
src/Libraries/TreeViewAdv/SampleApp/FolderBrowserModel.cs

@ -1,3 +1,5 @@ @@ -1,3 +1,5 @@
#pragma warning disable 67 // Event never used
using System;
using System.Collections.Generic;
using System.Text;

2
src/Libraries/TreeViewAdv/SampleApp/SlowModel.cs

@ -1,3 +1,5 @@ @@ -1,3 +1,5 @@
#pragma warning disable 67 // Event never used
using System;
using System.Collections.Generic;
using System.Text;

Loading…
Cancel
Save