Просмотр исходного кода

2007-01-10 Igor Zelmanovich <[email protected]>

	* TreeView.cs: fixed: SelectedNode, CheckedNodes.
	* TreeNode.cs:
	* TreeNodeCollection.cs:		

svn path=/trunk/mcs/; revision=70784
Igor Zelmanovich 19 лет назад
Родитель
Сommit
d361663aa7

+ 6 - 0
mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog

@@ -1,3 +1,9 @@
+2007-01-10 Igor Zelmanovich <[email protected]>
+
+	* TreeView.cs: fixed: SelectedNode, CheckedNodes.
+	* TreeNode.cs:
+	* TreeNodeCollection.cs:		
+
 2007-01-10 Igor Zelmanovich <[email protected]>
 
 	* GridView.cs: fixed: header and footer does not appear in no items.

+ 3 - 3
mcs/class/System.Web/System.Web.UI.WebControls/TreeNode.cs

@@ -127,7 +127,7 @@ namespace System.Web.UI.WebControls
 				if (SelectedFlag) {
 					if (value != null)
 						value.SetSelectedNode (this, false);
-					else if (tree != null)
+					if (tree != null)
 						tree.SetSelectedNode (null, false);
 				}
 				tree = value;
@@ -345,14 +345,14 @@ namespace System.Web.UI.WebControls
 				return SelectedFlag;
 			}
 			set {
+				SelectedFlag = value;
+				
 				if (tree != null) {
 					if (!value && tree.SelectedNode == this)
 						tree.SetSelectedNode (null, false);
 					else if (value)
 						tree.SetSelectedNode (this, false);
 				}
-				else
-					SelectedFlag = value;
 			}
 		}
 		

+ 11 - 1
mcs/class/System.Web/System.Web.UI.WebControls/TreeNodeCollection.cs

@@ -72,7 +72,17 @@ namespace System.Web.UI.WebControls
 		
 		public void Add (TreeNode child)
 		{
-			child.Index = items.Add (child);
+			Add (child, true);
+		}
+		
+		internal void Add (TreeNode child, bool updateParent)
+		{
+			int index = items.Add (child);
+			
+			if (!updateParent)
+				return;
+
+			child.Index = index;
 			child.SetParent (parent);
 			child.Tree = tree;
 			if (marked) {

+ 41 - 42
mcs/class/System.Web/System.Web.UI.WebControls/TreeView.cs

@@ -111,11 +111,11 @@ namespace System.Web.UI.WebControls
 			imageStyles [TreeViewImageSet.BulletedList2] = new ImageStyle (null, null, null, "box_full", "box_empty", "box_full");
 			imageStyles [TreeViewImageSet.BulletedList3] = new ImageStyle (null, null, null, "star_full", "star_empty", "star_full");
 			imageStyles [TreeViewImageSet.BulletedList4] = new ImageStyle (null, null, null, "star_full", "star_empty", "dots");
-			imageStyles [TreeViewImageSet.Contacts] = new ImageStyle ("TreeView_plus", "TreeView_minus", "contact", null, null, null);
+			imageStyles [TreeViewImageSet.Contacts] = new ImageStyle ("TreeView_plus", "TreeView_minus", "contact", null, null, null);
 			imageStyles [TreeViewImageSet.Events] = new ImageStyle (null, null, null, "warning", "warning", "warning");
 			imageStyles [TreeViewImageSet.Inbox] = new ImageStyle (null, null, null, "inbox", "inbox", "inbox");
-			imageStyles [TreeViewImageSet.Msdn] = new ImageStyle ("box_plus", "box_minus", "box_noexpand", null, null, null);
-			imageStyles [TreeViewImageSet.Simple] = new ImageStyle (null, null, "box_full", null, null, null);
+			imageStyles [TreeViewImageSet.Msdn] = new ImageStyle ("box_plus", "box_minus", "box_noexpand", null, null, null);
+			imageStyles [TreeViewImageSet.Simple] = new ImageStyle (null, null, "box_full", null, null, null);
 			imageStyles [TreeViewImageSet.Simple2] = new ImageStyle (null, null, "box_empty", null, null, null);
 
 			// TODO
@@ -675,7 +675,7 @@ namespace System.Web.UI.WebControls
 		void FindCheckedNodes (TreeNodeCollection nodeList, TreeNodeCollection result)
 		{
 			foreach (TreeNode node in nodeList) {
-				if (node.Checked) result.Add (node);
+				if (node.Checked) result.Add (node, false);
 				FindCheckedNodes (node.ChildNodes, result);
 			}
 		}
@@ -761,7 +761,6 @@ namespace System.Web.UI.WebControls
 			if (selectedNode != null)
 				selectedNode.SelectedFlag = false;
 			selectedNode = node;
-			selectedNode.SelectedFlag = true;
 			if (!loading)
 				OnSelectedNodeChanged (new TreeNodeEventArgs (selectedNode));
 		}
@@ -772,10 +771,10 @@ namespace System.Web.UI.WebControls
 		}
 
 		internal void NotifyExpandedChanged (TreeNode node)
-		{
-			if (node.Expanded.HasValue && node.Expanded.Value)
-				OnTreeNodeExpanded (new TreeNodeEventArgs (node));
-			else if (node.Expanded.HasValue && node.IsParentNode)
+		{
+			if (node.Expanded.HasValue && node.Expanded.Value)
+				OnTreeNodeExpanded (new TreeNodeEventArgs (node));
+			else if (node.Expanded.HasValue && node.IsParentNode)
 				OnTreeNodeCollapsed (new TreeNodeEventArgs (node));
 		}
 
@@ -1699,40 +1698,40 @@ namespace System.Web.UI.WebControls
 							
 		string GetNodeImageUrl (string shape, ImageStyle imageStyle)
 		{
-			if (ShowLines) {
-				if (!String.IsNullOrEmpty (LineImagesFolder))
+			if (ShowLines) {
+				if (!String.IsNullOrEmpty (LineImagesFolder))
+					return ResolveClientUrl (LineImagesFolder + "/" + shape + ".gif");
+			} else {
+				if (imageStyle != null) {
+					if (shape == "plus") {
+						if (!String.IsNullOrEmpty (imageStyle.Expand))
+							return GetNodeIconUrl (imageStyle.Expand);
+					}
+					else if (shape == "minus") {
+						if (!String.IsNullOrEmpty (imageStyle.Collapse))
+							return GetNodeIconUrl (imageStyle.Collapse);
+					}
+					else if (shape == "noexpand") {
+						if (!String.IsNullOrEmpty (imageStyle.NoExpand))
+							return GetNodeIconUrl (imageStyle.NoExpand);
+					}
+				}
+				else {
+					if (shape == "plus") {
+						if (!String.IsNullOrEmpty (ExpandImageUrl))
+							return ResolveClientUrl (ExpandImageUrl);
+					}
+					else if (shape == "minus") {
+						if (!String.IsNullOrEmpty (CollapseImageUrl))
+							return ResolveClientUrl (CollapseImageUrl);
+					}
+					else if (shape == "noexpand") {
+						if (!String.IsNullOrEmpty (NoExpandImageUrl))
+							return ResolveClientUrl (NoExpandImageUrl);
+					}
+				}
+				if (!String.IsNullOrEmpty (LineImagesFolder))
 					return ResolveClientUrl (LineImagesFolder + "/" + shape + ".gif");
-			} else {
-				if (imageStyle != null) {
-					if (shape == "plus") {
-						if (!String.IsNullOrEmpty (imageStyle.Expand))
-							return GetNodeIconUrl (imageStyle.Expand);
-					}
-					else if (shape == "minus") {
-						if (!String.IsNullOrEmpty (imageStyle.Collapse))
-							return GetNodeIconUrl (imageStyle.Collapse);
-					}
-					else if (shape == "noexpand") {
-						if (!String.IsNullOrEmpty (imageStyle.NoExpand))
-							return GetNodeIconUrl (imageStyle.NoExpand);
-					}
-				}
-				else {
-					if (shape == "plus") {
-						if (!String.IsNullOrEmpty (ExpandImageUrl))
-							return ResolveClientUrl (ExpandImageUrl);
-					}
-					else if (shape == "minus") {
-						if (!String.IsNullOrEmpty (CollapseImageUrl))
-							return ResolveClientUrl (CollapseImageUrl);
-					}
-					else if (shape == "noexpand") {
-						if (!String.IsNullOrEmpty (NoExpandImageUrl))
-							return ResolveClientUrl (NoExpandImageUrl);
-					}
-				}
-				if (!String.IsNullOrEmpty (LineImagesFolder))
-					return ResolveClientUrl (LineImagesFolder + "/" + shape + ".gif");
 			}
 			return AssemblyResourceLoader.GetResourceUrl (typeof(TreeView), "TreeView_" + shape + ".gif");
 		}