コード例 #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(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);
         }
     }
 }
コード例 #2
0
        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;
                }
            }
        }
コード例 #3
0
        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;
        }
コード例 #4
0
        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;
                }
            }
        }