Пример #1
0
 private GuerillaBlock FindParent(GuerillaBlock block, GuerillaBlock searchBlock)
 {
     if (ParentLookup.ContainsKey(block))
     {
         return(ParentLookup[block]);
     }
     foreach (var fieldInfo in searchBlock.GetType( ).GetFields( ))
     {
         //  If the field is a GuerillaBlock or an array of GuerillaBlocks
         if (fieldInfo.FieldType.IsSubclassOf(typeof(GuerillaBlock)))
         {
             if (( GuerillaBlock )fieldInfo.GetValue(searchBlock) == block)
             {
                 ParentLookup.Add(block, searchBlock);
                 return(searchBlock);
             }
         }
         if (fieldInfo.FieldType.IsArray &&
             fieldInfo.FieldType.GetElementType( ).IsSubclassOf(typeof(GuerillaBlock)))
         {
             var guerillaBlocks = ( GuerillaBlock[] )fieldInfo.GetValue(searchBlock);
             foreach (var guerillaBlock in guerillaBlocks)
             {
                 if (guerillaBlock == block)
                 {
                     ParentLookup.Add(block, searchBlock);
                     return(searchBlock);
                 }
                 FindParent(block, guerillaBlock);
             }
         }
     }
     return(null);
 }
Пример #2
0
        public void Display(GuerillaBlock block)
        {
            if (block == null)
            {
                block = _block;
            }
            _activeBlock = block;
            var fields = block.GetType( ).GetFields( );

            dataGridView1.DataSource = fields.Select(u => new { u.Name, Value = u.GetValue(block) }).ToList( );
        }
Пример #3
0
        public void LoadGuerillaBlocks(GuerillaBlock guerillaBlock)
        {
            _guerillaBlock = guerillaBlock;
            if (guerillaBlock == null)
            {
                return;
            }

            var fields = guerillaBlock.GetType( ).GetFields( );

            treeView1.Nodes.Clear( );
            treeView1.Nodes.AddRange(ParseChildNodes(fields, guerillaBlock));
            treeView1.ExpandAll( );
        }