CodeTV.PanelChannel.addFolderToolStripMenuItem_Click C# (CSharp) Method

addFolderToolStripMenuItem_Click() private method

private addFolderToolStripMenuItem_Click ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
return void
        private void addFolderToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ChannelFolder channelFolder = new ChannelFolder(Properties.Resources.NewChannelFolder);
            TreeNode treeNode = MakeTreeNodeFromChannel(channelFolder);
            treeNode.Expand();

            if (this.treeViewChannel.SelectedNode == null || this.treeViewChannel.SelectedNode.Parent == null)
            {
                ChannelFolder parentChannelFolder = (ChannelFolder)this.treeViewChannel.Tag;
                parentChannelFolder.Add(channelFolder);
                this.treeViewChannel.Nodes.Add(treeNode);
            }
            else if (this.treeViewChannel.SelectedNode.Tag is ChannelFolder)
            {
                ChannelFolder parentChannelFolder = (ChannelFolder)this.treeViewChannel.SelectedNode.Tag;
                parentChannelFolder.Add(channelFolder);
                this.treeViewChannel.SelectedNode.Nodes.Add(treeNode);
                this.treeViewChannel.SelectedNode.Expand();
            }
            else
            {
                ChannelFolder parentChannelFolder = (ChannelFolder)this.treeViewChannel.SelectedNode.Parent.Tag;
                TreeNode parentTreeNode = this.treeViewChannel.SelectedNode.Parent;
                int indexChannel = parentChannelFolder.ChannelList.IndexOf(this.treeViewChannel.SelectedNode.Tag as Channel);
                int indexTreeNode = parentTreeNode.Nodes.IndexOf(this.treeViewChannel.SelectedNode);

                channelFolder.Parent = parentChannelFolder;
                parentChannelFolder.ChannelList.Insert(indexChannel, channelFolder);
                this.treeViewChannel.SelectedNode.Parent.Nodes.Insert(indexTreeNode, treeNode);
            }
        }