Esempio n. 1
0
 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(SchemaNodeAttribute), true);
         if (attrs.Length > 0)
         {
             SchemaNodeAttribute show = (SchemaNodeAttribute)attrs[0];
             TreeNode            node = nodes.Add(p.Name, show.Name);
             node.ImageKey = "Folder";
             ReadPropertyDetail(node, p, schema, show);
         }
     }
 }
Esempio n. 2
0
        private void ReadPropertyDetail(TreeNode node, PropertyInfo p, ISchemaBase schema, SchemaNodeAttribute attr)
        {
            Color NodeColor = Color.Black;
            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(item.Id.ToString(), (attr.IsFullName ? item.FullName : item.Name));
                    if (item.Status == ObjectStatus.Drop)
                    {
                        subnode.ForeColor = Color.Red;
                        NodeColor         = (NodeColor == Color.Black || NodeColor == Color.Red ? Color.Red : Color.Plum);
                    }
                    if (item.Status == ObjectStatus.Create)
                    {
                        subnode.ForeColor = Color.Green;
                        NodeColor         = (NodeColor == Color.Black || NodeColor == Color.Green ? Color.Green : Color.Plum);
                    }
                    if ((item.HasState(ObjectStatus.Alter)) || (item.HasState(ObjectStatus.Disabled)))
                    {
                        subnode.ForeColor = Color.Blue;
                        NodeColor         = (NodeColor == Color.Black || NodeColor == Color.Blue ? Color.Blue : Color.Plum);
                    }
                    if (item.HasState(ObjectStatus.AlterWhitespace))
                    {
                        subnode.ForeColor = Color.DarkGoldenrod;
                        NodeColor         = (NodeColor == Color.Black || NodeColor == Color.DarkGoldenrod ? Color.DarkGoldenrod : Color.Plum);
                    }
                    if (item.HasState(ObjectStatus.Rebuild))
                    {
                        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.ForeColor = NodeColor;
        }