private void ReadProperties(Type item, TreeNodeCollection nodes, ISchemaBase schema) { PropertyInfo[] pi = item.GetProperties(); nodes.Clear(); foreach (PropertyInfo p in pi) { object[] attrs = p.GetCustomAttributes(typeof(ShowItemAttribute), true); if (attrs.Length > 0) { ShowItemAttribute show = (ShowItemAttribute)attrs[0]; TreeNode node = nodes.Add(p.Name, show.Name); node.ImageKey = "Folder"; ReadPropertyDetail(node, p, schema, show); } } }
private void ReadPropertyDetail(TreeNode node, PropertyInfo p, ISchemaBase schema, ShowItemAttribute attr) { IList items = (IList)p.GetValue(schema, null); node.Text = node.Text + " (" + items.Count + ")"; node.Nodes.Clear(); foreach (ISchemaBase item in items) { if (CanNodeAdd(item)) { TreeNode subnode = node.Nodes.Add((attr.IsFullName?item.FullName:item.Name)); if (item.Status == Enums.ObjectStatusType.DropStatus) { subnode.ForeColor = Color.Red; } if (item.Status == Enums.ObjectStatusType.CreateStatus) { subnode.ForeColor = Color.Green; } if ((item.HasState(Enums.ObjectStatusType.AlterStatus)) || (item.HasState(Enums.ObjectStatusType.DisabledStatus))) { subnode.ForeColor = Color.Blue; } if (item.HasState(Enums.ObjectStatusType.RebuildStatus)) { subnode.ForeColor = Color.Purple; } subnode.Tag = item; subnode.ImageKey = attr.Image; subnode.SelectedImageKey = attr.Image; } } }
private void ReadPropertyDetail(TreeNode node, PropertyInfo p, ISchemaBase schema, ShowItemAttribute attr) { Color NodeColor = Color.Black; IList items = (IList)p.GetValue(schema, null); node.Nodes.Clear(); int itemChkCount = 0; foreach (ISchemaBase item in items) { if (CanNodeAdd(item)) { itemChkCount += 1; TreeNode subnode = node.Nodes.Add(item.Id.ToString(), (attr.IsFullName ? item.FullName : item.Name)); if (item.Status == Enums.ObjectStatusType.DropStatus) { subnode.ForeColor = Color.Red; NodeColor = (NodeColor == Color.Black || NodeColor == Color.Red ? Color.Red : Color.Plum); } if (item.Status == Enums.ObjectStatusType.CreateStatus) { subnode.ForeColor = Color.Green; NodeColor = (NodeColor == Color.Black || NodeColor == Color.Green ? Color.Green : Color.Plum); } if ((item.HasState(Enums.ObjectStatusType.AlterStatus)) || (item.HasState(Enums.ObjectStatusType.DisabledStatus))) { subnode.ForeColor = Color.Blue; NodeColor = (NodeColor == Color.Black || NodeColor == Color.Blue ? Color.Blue : Color.Plum); } if (item.HasState(Enums.ObjectStatusType.AlterWhitespaceStatus)) { subnode.ForeColor = Color.DarkGoldenrod; NodeColor = (NodeColor == Color.Black || NodeColor == Color.DarkGoldenrod ? Color.DarkGoldenrod : Color.Plum); } if (item.HasState(Enums.ObjectStatusType.RebuildStatus)) { subnode.ForeColor = Color.Purple; NodeColor = (NodeColor == Color.Black || NodeColor == Color.Purple ? Color.Purple : Color.Plum); } subnode.Tag = item; subnode.ImageKey = attr.Image; subnode.SelectedImageKey = attr.Image; } } node.Text = node.Text + " (" + itemChkCount + ")"; node.ForeColor = NodeColor; }
private void ReadPropertyDetail(TreeNode node, PropertyInfo p, ISchemaBase schema, ShowItemAttribute attr) { List <SQLServerSchemaBase> items = SchemaTreeView.ConvertToListOf <SQLServerSchemaBase>(p.GetValue(schema, null) as IList) as List <SQLServerSchemaBase>; //Calculate how many are alter, create, drop, so we can display an easy number. Use Linq, simple and easy. int alterCount, createCount, dropCount; alterCount = (from a in items where a.Status == Enums.ObjectStatusType.AlterStatus || a.Status == Enums.ObjectStatusType.AlterBodyStatus select a).Count(); createCount = (from a in items where a.Status == Enums.ObjectStatusType.CreateStatus select a).Count(); dropCount = (from a in items where a.Status == Enums.ObjectStatusType.DropStatus select a).Count(); node.Text = string.Format("{0} - {1} Items (A{2}, C{3}, D{4})", node.Text, items.Count, alterCount, createCount, dropCount); node.Nodes.Clear(); foreach (ISchemaBase item in items) { if (CanNodeAdd(item)) { TreeNode subnode = node.Nodes.Add((attr.IsFullName ? item.FullName : item.Name)); if (item.Status == Enums.ObjectStatusType.DropStatus) { subnode.ForeColor = Color.Red; } else if (item.Status == Enums.ObjectStatusType.CreateStatus) { subnode.ForeColor = Color.Green; } else if ((item.HasState(Enums.ObjectStatusType.AlterStatus)) || (item.HasState(Enums.ObjectStatusType.RebuildStatus)) || (item.HasState(Enums.ObjectStatusType.DisabledStatus))) { subnode.ForeColor = Color.Blue; } subnode.Tag = item; subnode.ImageKey = attr.Image; subnode.SelectedImageKey = attr.Image; } } }