private void AddDBValueNodes(DBTreeNode nd)
 {
     if (nd.Nodes.Count > 0 && nd.Nodes[0] is FakeNode)
     {
         nd.Nodes.RemoveAt(0);
         S7DataBlock blk = (S7DataBlock) nd.PLCBlockInfo.GetBlock();
         nd.s7datarow= (S7DataRow) blk.Structure;
         AddDBValueSubNodes(nd, (S7DataRow)blk.Structure);
     }
 }
        private void AddNodes(TreeNode nd, List<ProjectFolder> lst)
        {
            foreach (var subitem in lst)
            {
                myTreeNode tmpNode = new myTreeNode();
                tmpNode.Text = subitem.Name;
                tmpNode.myObject = subitem;
                tmpNode.ImageIndex = 0;
                //nd.ImageKey
                //Set the Image for the Folders...
                if (subitem.GetType() == typeof(StationConfigurationFolder))
                {
                    if (((StationConfigurationFolder)subitem).StationType==PLCType.Simatic300)
                        tmpNode.ImageIndex = 4;
                    else if (((StationConfigurationFolder)subitem).StationType == PLCType.Simatic400 || ((StationConfigurationFolder)subitem).StationType == PLCType.Simatic400H)
                        tmpNode.ImageIndex = 5;
                }
                else if (subitem.GetType() == typeof(CPUFolder))
                {
                    if (((CPUFolder)subitem).CpuType == PLCType.Simatic300)
                        tmpNode.ImageIndex = 2;
                    else if (((CPUFolder)subitem).CpuType == PLCType.Simatic400 || ((CPUFolder)subitem).CpuType == PLCType.Simatic400H)
                        tmpNode.ImageIndex = 3;
                }

                nd.Nodes.Add(tmpNode);

                if (subitem.SubItems != null)
                    AddNodes(tmpNode, subitem.SubItems);

                if (subitem is BlocksOfflineFolder  && this.SelectPart==SelectPartType.Tag)
                {
                    BlocksOfflineFolder blkFld = (BlocksOfflineFolder) subitem;
                    foreach (ProjectPlcBlockInfo projectBlockInfo in blkFld.readPlcBlocksList())
                    {
                        if (projectBlockInfo.BlockType == PLCBlockType.DB || projectBlockInfo.BlockType == PLCBlockType.S5_DB || projectBlockInfo.BlockType == PLCBlockType.S5_DX)
                        {
                            string nm = projectBlockInfo.BlockName;
                            if (projectBlockInfo.SymbolTabelEntry != null)
                                nm += " (" + projectBlockInfo.SymbolTabelEntry.Symbol + ")";
                            DBTreeNode trnd = new DBTreeNode() {Text = nm, PLCBlockInfo = projectBlockInfo};
                            trnd.Nodes.Add(new FakeNode());
                            tmpNode.Nodes.Add(trnd);
                        }
                    }

                }
            }
        }
        private void AddNodes(TreeNode nd, List <ProjectFolder> lst)
        {
            foreach (var subitem in lst)
            {
                myTreeNode tmpNode = new myTreeNode();
                tmpNode.Text       = subitem.Name;
                tmpNode.myObject   = subitem;
                tmpNode.ImageIndex = 0;
                //nd.ImageKey
                //Set the Image for the Folders...
                if (subitem.GetType() == typeof(StationConfigurationFolder))
                {
                    if (((StationConfigurationFolder)subitem).StationType == PLCType.Simatic300)
                    {
                        tmpNode.ImageIndex = 4;
                    }
                    else if (((StationConfigurationFolder)subitem).StationType == PLCType.Simatic400 || ((StationConfigurationFolder)subitem).StationType == PLCType.Simatic400H)
                    {
                        tmpNode.ImageIndex = 5;
                    }
                }
                else if (subitem.GetType() == typeof(CPUFolder))
                {
                    if (((CPUFolder)subitem).CpuType == PLCType.Simatic300)
                    {
                        tmpNode.ImageIndex = 2;
                    }
                    else if (((CPUFolder)subitem).CpuType == PLCType.Simatic400 || ((CPUFolder)subitem).CpuType == PLCType.Simatic400H)
                    {
                        tmpNode.ImageIndex = 3;
                    }
                }

                nd.Nodes.Add(tmpNode);

                if (subitem.SubItems != null)
                {
                    AddNodes(tmpNode, subitem.SubItems);
                }

                if (subitem is IBlocksFolder && this.SelectPart == SelectPartType.Tag)
                {
                    IBlocksFolder blkFld = (IBlocksFolder)subitem;
                    foreach (ProjectPlcBlockInfo projectBlockInfo in blkFld.readPlcBlocksList())
                    {
                        if (projectBlockInfo.BlockType == PLCBlockType.DB || projectBlockInfo.BlockType == PLCBlockType.S5_DB || projectBlockInfo.BlockType == PLCBlockType.S5_DX)
                        {
                            string nm = projectBlockInfo.BlockName;
                            if (projectBlockInfo.SymbolTabelEntry != null)
                            {
                                nm += " (" + projectBlockInfo.SymbolTabelEntry.Symbol + ")";
                            }
                            DBTreeNode trnd = new DBTreeNode()
                            {
                                Text = nm, PLCBlockInfo = projectBlockInfo
                            };
                            trnd.Nodes.Add(new FakeNode());
                            tmpNode.Nodes.Add(trnd);
                        }
                    }
                }
            }
        }