示例#1
0
 private bool GetFavoriteContainer(out ChannelFolder parentChannelFolder, out TreeNodeCollection parentTreeNodeCollection)
 {
     if (this.treeViewChannel.SelectedNode == null || (this.treeViewChannel.SelectedNode.Parent == null && !(this.treeViewChannel.SelectedNode.Tag is ChannelFolder)))
     {
         parentChannelFolder      = (ChannelFolder)this.treeViewChannel.Tag;
         parentTreeNodeCollection = this.treeViewChannel.Nodes;
         return(true);
     }
     else if (this.treeViewChannel.SelectedNode.Tag is ChannelTV)
     {
         TreeNode parentTreeNode = this.treeViewChannel.SelectedNode.Parent;
         parentChannelFolder      = (ChannelFolder)parentTreeNode.Tag;
         parentTreeNodeCollection = parentTreeNode.Nodes;
         return(true);
     }
     else if (this.treeViewChannel.SelectedNode.Tag is ChannelFolder)
     {
         parentChannelFolder      = (ChannelFolder)this.treeViewChannel.SelectedNode.Tag;
         parentTreeNodeCollection = treeViewChannel.SelectedNode.Nodes;
         return(true);
     }
     parentChannelFolder      = null;
     parentTreeNodeCollection = null;
     return(false);
 }
        public void RemoveFromFolder(ChannelMessageHeader message, ChannelFolder folder)
        {
            var client    = new ExchangeClient(Hostname, CredentialsProvider);
            var messageId = client.GetMessageId(message.MessageNumber).ItemId;

            client.DeleteMessage(messageId);
        }
        public void CopyToFolder(ChannelMessageHeader message, ChannelFolder folder)
        {
            var client    = new ExchangeClient(Hostname, CredentialsProvider);
            var messageId = client.GetMessageId(message.MessageNumber).ItemId;

            client.CopyMessageToFolder(messageId, folder.FolderId);
        }
示例#4
0
        void channelFolderToolStripMenuItem_DropDownOpening(object sender, EventArgs e)
        {
            ToolStripDropDownItem toolStripMenuItem = sender as ToolStripDropDownItem;
            ChannelFolder         channelFolder     = toolStripMenuItem.Tag as ChannelFolder;

            PopulateChannelsFolderInDropDownMenu(toolStripMenuItem.DropDownItems, channelFolder);
        }
示例#5
0
 public ReceiveMessageDetailsTask(ChannelConfiguration config, IClientInputChannel channel, ChannelMessageHeader header, ChannelFolder folder)
 {
     this.config  = config;
     this.channel = channel;
     this.header  = header;
     this.folder  = folder;
 }
示例#6
0
        // wizardPageChannelNumber

        private void InitChannelNumberingRecursedTree(ChannelFolder channelFolder)
        {
            foreach (Channel channel in channelFolder.ChannelList)
            {
                ListViewItem lvi = new ListViewItem(channel.Name);
                lvi.IndentCount             = currentChannelIndentation;
                lvi.Tag                     = channel;
                mapChannelsIndentation[lvi] = currentChannelIndentation;
                if (channel is ChannelTV)
                {
                    ChannelTV channelTV = channel as ChannelTV;
                    lvi.SubItems.Add(channelTV.ChannelNumber.ToString());
                    maxChannelNumber = Math.Max(maxChannelNumber, channelTV.ChannelNumber);
                    lvi.ImageKey     = (MainForm.imageListLogoTV.Images.ContainsKey(channelTV.Logo) ? channelTV.Logo : "LogoTVDefault");

                    this.listViewChannelNumbering.Items.Add(lvi);
                }
                else if (channel is ChannelFolder)
                {
                    this.listViewChannelNumbering.Items.Add(lvi);
                    lvi.ImageKey = "FolderClosed";

                    currentChannelIndentation++;
                    InitChannelNumberingRecursedTree(channel as ChannelFolder);
                    currentChannelIndentation--;
                }
            }
        }
示例#7
0
        internal void InsertChannels(Stream fileStream, ChannelFolder parentChannel, TreeNodeCollection parentTreeNodeCollection)
        {
            ChannelFolder channels = (ChannelFolder)Channel.Deserialize(fileStream);

            if (parentChannel == null)
            {
                parentChannel = MainForm.rootChannelFolder;
            }
            if (parentTreeNodeCollection == null)
            {
                parentTreeNodeCollection = this.treeViewChannel.Nodes;
            }

            // First level: we add to the existing folder
            // Second level: we adjust the parent
            foreach (Channel channel in channels.ChannelList)
            {
                parentChannel.Add(channel);

                TreeNode treeNode = MakeTreeNodeFromChannel(channel);

                if (channel is ChannelFolder)
                {
                    RecursedFillTree(channel as ChannelFolder, treeNode.Nodes);
                }

                parentTreeNodeCollection.Add(treeNode);
            }

            MainForm.UpdateChannelNumber();
        }
示例#8
0
        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);
            }
        }
 public ReceiveMessagesTask(ChannelConfiguration config, IClientInputChannel channel, ChannelFolder folder, ReceiveRange range)
     : base(config, channel)
 {
     this.config      = config;
     this.channel     = channel;
     this.folder      = folder;
     this.range       = range;
     this.dataService = ClientState.Current.DataService;
 }
        public void RemoveFromFolder(ChannelMessageHeader message, ChannelFolder folder)
        {
            if (String.IsNullOrEmpty(message.SourceFolder))
            {
                return;
            }

            connection.Client.SelectFolder(folder.FolderId);
            connection.Client.DeleteMessages(new IMAP_SequenceSet(message.MessageNumber), true);
        }
        public void CopyToFolder(ChannelMessageHeader message, ChannelFolder folder)
        {
            if (String.IsNullOrEmpty(message.SourceFolder))
            {
                return;
            }

            connection.Client.SelectFolder(message.SourceFolder);
            connection.Client.CopyMessages(new IMAP_SequenceSet(message.MessageNumber), folder.FolderId, true);
        }
        public ReceiveMessagesTask(ChannelConfiguration config, IClientInputChannel channel, ChannelFolder folder, ReceiveRange range)
            : base(config, channel)
        {
            this.config  = config;
            this.channel = channel;
            this.folder  = folder;
            this.range   = range;

            mailbox = VirtualMailBox.Current;
        }
        public ChannelFolder CreateFolder(string folderName)
        {
            var client   = new ExchangeClient(Hostname, CredentialsProvider);
            var folderId = client.CreateFolder(folderName, folders.First(f => f.FolderType == ChannelFolderType.Inbox).FolderId);

            var newFolder = new ChannelFolder(folderId, folderName, ChannelFolderType.Label);

            folders.Add(newFolder);

            return(newFolder);
        }
示例#14
0
        internal void AddChannelToFavorite(ChannelFolder channelFolder, Channel[] channels)
        {
            TreeNode           parentTreeNode           = channelFolder.Tag as TreeNode;
            TreeNodeCollection parentTreeNodeCollection = (parentTreeNode == null ? this.treeViewChannel.Nodes : parentTreeNode.Nodes);

            foreach (Channel channel in channels)
            {
                channelFolder.Add(channel);
                parentTreeNodeCollection.Add(MakeTreeNodeFromChannel(channel));
            }
        }
示例#15
0
        void channelFolderToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ToolStripMenuItem toolStripMenuItem = sender as ToolStripMenuItem;

            if (toolStripMenuItem.Tag is ChannelFolder)
            {
                ChannelFolder channel = toolStripMenuItem.Tag as ChannelFolder;
                textBoxFolderDestinationName.Tag  = channel;                // Must be call before changing the "Text" property!!
                textBoxFolderDestinationName.Text = channel.Name;
            }
        }
示例#16
0
 private void CopyChannelToDestinationFolder()
 {
     if (radioButtonAddThisChannel.Checked)
     {
         ChannelFolder channelFolder = textBoxFolderDestinationName.Tag as ChannelFolder;
         if (channelFolder != null)
         {
             ChannelTV channelTV = this.propertyGridChannel.SelectedObject as ChannelTV;
             if (channelTV != null)
             {
                 MainForm.panelChannel.AddChannelToFavorite(channelFolder, new Channel[] { channelTV });
             }
         }
     }
     else if (radioButtonScanFrequency.Checked)
     {
         ChannelFolder channelFolder = textBoxFolderDestinationName.Tag as ChannelFolder;
         if (channelFolder != null)
         {
             List <Channel> al = new List <Channel>();
             foreach (ListViewItem lvi in this.listViewScanResult.SelectedItems)
             {
                 al.Add((lvi.Tag as Channel).MakeCopy());
             }
             if (al.Count > 0)
             {
                 al.Sort(delegate(Channel x, Channel y) {
                     short xOrder = short.MaxValue, yOrder = short.MaxValue;
                     if (x is ChannelTV)
                     {
                         xOrder = (x as ChannelTV).ChannelNumber;
                         if (xOrder <= 0)
                         {
                             xOrder = short.MaxValue - 1;
                         }
                     }
                     if (y is ChannelTV)
                     {
                         yOrder = (y as ChannelTV).ChannelNumber;
                         if (yOrder <= 0)
                         {
                             yOrder = short.MaxValue - 1;
                         }
                     }
                     return(xOrder.CompareTo(yOrder));
                 });
                 MainForm.panelChannel.AddChannelToFavorite(channelFolder, (Channel[])al.ToArray());
             }
         }
     }
     MainForm.UpdateChannelNumber();
 }
示例#17
0
        private void insertChannelsToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.InitialDirectory = this.GetType().Module.FullyQualifiedName;
            openFileDialog.Filter           = Properties.Resources.ChannelXMLFilter;
            openFileDialog.FilterIndex      = 2;
            openFileDialog.RestoreDirectory = true;
            openFileDialog.FileName         = MainForm.AssemblyName + ".Channels.xml";
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                Stream fileStream = null;
                try
                {
                    if ((fileStream = openFileDialog.OpenFile()) != null)
                    {
                        ChannelFolder      parentChannel            = MainForm.rootChannelFolder;
                        TreeNodeCollection parentTreeNodeCollection = this.treeViewChannel.Nodes;
                        if (this.treeViewChannel.SelectedNode != null)
                        {
                            if (this.treeViewChannel.SelectedNode.Tag is ChannelFolder)
                            {
                                parentChannel            = this.treeViewChannel.SelectedNode.Tag as ChannelFolder;
                                parentTreeNodeCollection = this.treeViewChannel.SelectedNode.Nodes;
                            }
                            else
                            {
                                if (this.treeViewChannel.SelectedNode.Parent != null)
                                {
                                    parentChannel            = this.treeViewChannel.SelectedNode.Parent.Tag as ChannelFolder;
                                    parentTreeNodeCollection = this.treeViewChannel.SelectedNode.Parent.Nodes;
                                }
                            }
                        }
                        InsertChannels(fileStream, parentChannel, parentTreeNodeCollection);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
                finally
                {
                    if (fileStream != null)
                    {
                        fileStream.Close();
                    }
                }
            }
        }
示例#18
0
        internal void RecursedFillTree(ChannelFolder parentChannel, TreeNodeCollection parentTreeNodeCollection)
        {
            foreach (Channel channel in parentChannel.ChannelList)
            {
                channel.Parent = parentChannel;

                TreeNode treeNode = MakeTreeNodeFromChannel(channel);

                if (channel is ChannelFolder)
                {
                    RecursedFillTree(channel as ChannelFolder, treeNode.Nodes);
                }

                parentTreeNodeCollection.Add(treeNode);
            }
        }
示例#19
0
        /// <summary>
        /// Gets the nr of items in a given folder
        /// </summary>
        /// <returns></returns>
        public long GetNrItemsInFolder(ChannelFolder folder)
        {
            var binding = ChannelHelper.BuildChannel(hostname, username, password);

            var findItemRequest = new FindItemType {
                Traversal = ItemQueryTraversalType.Shallow
            };
            var itemProperties = new ItemResponseShapeType {
                BaseShape = DefaultShapeNamesType.AllProperties
            };

            findItemRequest.ItemShape = itemProperties;

            var folderIdArray = new DistinguishedFolderIdType[2];

            folderIdArray[0] = new DistinguishedFolderIdType {
                Id = DistinguishedFolderIdNameType.inbox
            };

            findItemRequest.ParentFolderIds = folderIdArray;

            FindItemResponseType findItemResponse = binding.FindItem(findItemRequest);

            // Determine whether the request was a success.
            if (findItemResponse.ResponseMessages.Items[0].ResponseClass == ResponseClassType.Error)
            {
                throw new Exception(findItemResponse.ResponseMessages.Items[0].MessageText);
            }

            var responseMessage =
                (FindItemResponseMessageType)findItemResponse.ResponseMessages.Items[0];

            var mailboxItems = (ArrayOfRealItemsType)responseMessage.RootFolder.Item;

            if (mailboxItems.Items == null)
            {
                return(0);
            }

            return(mailboxItems.Items.Length);
        }
示例#20
0
        public async Task <ChannelItemResult> GetChannelItems(InternalChannelItemQuery query, CancellationToken cancellationToken)
        {
            var folder = ChannelFolder.Parse(query.FolderId);

            _logger.Debug("Render channel folder id: {0}", query.FolderId);

            switch (folder.Type)
            {
            case ChannelFolderType.Playlist:
            {
                var playlist = _libraryManager.GetUserRootFolder().RecursiveChildren.OfType <VodPlaylist>().FirstOrDefault(p => p.IdentifierId.ToString() == folder.Id);
                if (playlist != null)
                {
                    return(GetPlaylistItems(playlist, cancellationToken));
                }
                break;
            }
            }

            return(GetChannelPlaylists(query));
        }
示例#21
0
        internal TreeNode MakeTreeNodeFromChannel(Channel channel)
        {
            TreeNode treeNode = new TreeNode(channel.Name);

            treeNode.Tag = channel;
            channel.Tag  = treeNode;
            if (channel is ChannelFolder)
            {
                ChannelFolder channelFolder = channel as ChannelFolder;
                if (channelFolder.Expanded)
                {
                    treeNode.Expand();
                }
                else
                {
                    treeNode.Collapse();
                }
            }
            AdjustTVLogo(channel);
            return(treeNode);
        }
示例#22
0
        public ChannelItemResult GetChannelPlaylists(InternalChannelItemQuery query)
        {
            var playlists = Plugin.Instance.Configuration.Playlists;

            var channelItems = new List <ChannelItemInfo>();

            foreach (var playlist in playlists)
            {
                var item = new ChannelItemInfo()
                {
                    Id   = ChannelFolder.GetUrl(ChannelFolderType.Playlist, playlist.IdentifierId.ToString()),
                    Type = ChannelItemType.Folder,
                    Name = playlist.Name,
                };

                channelItems.Add(item);
            }

            return(new ChannelItemResult()
            {
                Items = channelItems.OrderBy(i => i.Name).ToList(),
                TotalRecordCount = channelItems.Count
            });
        }
示例#23
0
        /// <summary>
        /// Gets a list of all the items in the mailbox with all their properties.
        /// </summary>
        /// <returns></returns>
        public IEnumerable <MessageType> GetHeaders(ChannelFolder folder)
        {
            var binding = ChannelHelper.BuildChannel(hostname, username, password);

            var findItemRequest = new FindItemType {
                Traversal = ItemQueryTraversalType.Shallow
            };
            var itemProperties = new ItemResponseShapeType {
                BaseShape = DefaultShapeNamesType.AllProperties
            };

            findItemRequest.ItemShape       = itemProperties;
            findItemRequest.ParentFolderIds = new BaseFolderIdType[] { new FolderIdType {
                                                                           Id = folder.FolderId
                                                                       } };

            FindItemResponseType findItemResponse = binding.FindItem(findItemRequest);

            foreach (FindItemResponseMessageType responseMessage in findItemResponse.ResponseMessages.Items)
            {
                if (responseMessage.ResponseClass == ResponseClassType.Success)
                {
                    ArrayOfRealItemsType mailboxItems = (ArrayOfRealItemsType)responseMessage.RootFolder.Item;

                    if (mailboxItems.Items == null)
                    {
                        yield break;
                    }

                    foreach (MessageType inboxItem in mailboxItems.Items)
                    {
                        yield return(inboxItem);
                    }
                }
            }
        }
 public EnumerateMessagesFolderTask(ChannelConfiguration config, IClientInputChannel channel, ChannelFolder folder, ReceiveRange range)
     : base(config, channel, folder, range)
 {
 }
 public void SelectFolder(ChannelFolder folder)
 {
     connection.Client.SelectFolder(folder.FolderId);
 }
示例#26
0
        private void treeViewChannel_DragDrop(object sender, DragEventArgs e)
        {
            // Ensure that the list item index is contained in the data.
            if (            //this.treeNodeUnderMouseToDrop != null &&
                //!this.treeViewChannel.IsSelected(this.treeNodeUnderMouseToDrop) &&
                e.Data.GetDataPresent(typeof(ArrayList)))
            {
                // Perform drag-and-drop, depending upon the effect.
                if (e.Effect == DragDropEffects.Copy || e.Effect == DragDropEffects.Move)
                {
                    ArrayList alDraggedChannels = (ArrayList)e.Data.GetData(typeof(ArrayList));

                    ArrayList draggedChannelsList = new ArrayList();
                    Hashtable draggedChannelsMap  = new Hashtable();
                    if (e.Effect == DragDropEffects.Copy)
                    {
                        foreach (TreeNode tn in alDraggedChannels)
                        {
                            Channel channel = (tn.Tag as Channel).MakeCopy();
                            draggedChannelsMap[channel] = tn;
                            draggedChannelsList.Add(channel);
                        }
                    }
                    else
                    {
                        foreach (TreeNode tn in alDraggedChannels)
                        {
                            Channel channel = tn.Tag as Channel;
                            draggedChannelsMap[channel] = tn;
                            draggedChannelsList.Add(channel);
                        }
                    }

                    // Compute the drop container and the drop index
                    ChannelFolder      parentChannel;
                    TreeNodeCollection parentTreeNodeCollection;
                    int afterChannelListIndex = -1;
                    int afterTreeNodeIndex    = -1;
                    if (this.treeNodeUnderMouseToDrop == null)
                    {
                        parentChannel            = this.MainForm.rootChannelFolder;
                        parentTreeNodeCollection = this.treeViewChannel.Nodes;
                        afterChannelListIndex    = parentChannel.ChannelList.Count;
                        afterTreeNodeIndex       = parentTreeNodeCollection.Count;
                        //afterChannelListIndex = 0;
                        //afterTreeNodeIndex = 0;
                    }
                    else if (this.treeNodeUnderMouseToDrop.Tag is ChannelFolder)
                    {
                        parentChannel            = this.treeNodeUnderMouseToDrop.Tag as ChannelFolder;
                        parentTreeNodeCollection = this.treeNodeUnderMouseToDrop.Nodes;
                        afterChannelListIndex    = 0;
                        afterTreeNodeIndex       = 0;
                    }
                    else
                    {
                        if (this.treeNodeUnderMouseToDrop.Parent != null)
                        {
                            parentChannel            = this.treeNodeUnderMouseToDrop.Parent.Tag as ChannelFolder;
                            parentTreeNodeCollection = this.treeNodeUnderMouseToDrop.Parent.Nodes;
                        }
                        else
                        {
                            parentChannel            = this.MainForm.rootChannelFolder;
                            parentTreeNodeCollection = this.treeViewChannel.Nodes;
                        }
                        afterChannelListIndex = parentChannel.ChannelList.IndexOf(this.treeNodeUnderMouseToDrop.Tag as Channel);
                        afterTreeNodeIndex    = this.treeNodeUnderMouseToDrop.Index;
                    }

                    // Remove the old TreeNode
                    if (e.Effect == DragDropEffects.Move)
                    {
                        foreach (TreeNode tn in draggedChannelsMap.Values)
                        {
                            // Modify the drop index if some moved elements are before
                            // the drop target in the same level
                            if (this.treeNodeUnderMouseToDrop == null ||
                                (tn.Parent == this.treeNodeUnderMouseToDrop.Parent &&
                                 tn.Index < this.treeNodeUnderMouseToDrop.Index))
                            {
                                afterChannelListIndex--;
                                afterTreeNodeIndex--;
                            }

                            // Remove the elements
                            if (tn.Parent != null)
                            {
                                (tn.Parent.Tag as ChannelFolder).ChannelList.Remove(tn.Tag as Channel);
                                tn.Parent.Nodes.Remove(tn);
                            }
                            else
                            {
                                (this.treeViewChannel.Tag as ChannelFolder).ChannelList.Remove(tn.Tag as Channel);
                                this.treeViewChannel.Nodes.Remove(tn);
                            }
                        }
                    }

                    if (afterChannelListIndex < 0)
                    {
                        afterChannelListIndex = 0;
                    }
                    if (afterTreeNodeIndex < 0)
                    {
                        afterTreeNodeIndex = 0;
                    }

                    int indexOffset = 0;
                    foreach (Channel channel in draggedChannelsList)
                    {
                        // First level: we add to the existing folder
                        if (afterChannelListIndex == -1)
                        {
                            parentChannel.Add(channel);
                        }
                        else
                        {
                            channel.Parent = parentChannel;
                            parentChannel.ChannelList.Insert(afterChannelListIndex + indexOffset, channel);
                        }

                        TreeNode treeNode = MakeTreeNodeFromChannel(channel);
                        if (afterTreeNodeIndex == -1)
                        {
                            parentTreeNodeCollection.Add(treeNode);
                        }
                        else
                        {
                            parentTreeNodeCollection.Insert(afterTreeNodeIndex + indexOffset, treeNode);
                        }

                        // Second level: we adjust the parent
                        if (channel is ChannelFolder)
                        {
                            ChannelFolder channelFolder = channel as ChannelFolder;
                            RecursedFillTree(channelFolder, treeNode.Nodes);

                            if (channelFolder.Expanded)
                            {
                                treeNode.Expand();
                            }
                            else
                            {
                                treeNode.Collapse();
                            }
                        }
                        indexOffset++;
                    }
                    (alDraggedChannels[0] as TreeNode).EnsureVisible();
                }
            }
        }
 public void SelectFolder(ChannelFolder folder)
 {
 }
示例#28
0
        private void PopulateChannelsFolderInDropDownMenu(ToolStripItemCollection toolStripItemCollection, ChannelFolder channelFolder)
        {
            toolStripItemCollection.Clear();
            ToolStripMenuItem channelToolStripMenuItem0 = new ToolStripMenuItem(Properties.Resources.ChooseFolder);

            channelToolStripMenuItem0.Tag    = channelFolder;
            channelToolStripMenuItem0.Click += new EventHandler(channelFolderToolStripMenuItem_Click);
            toolStripItemCollection.Add(channelToolStripMenuItem0);

            foreach (Channel channel in channelFolder.ChannelList)
            {
                if (channel is ChannelFolder)
                {
                    ToolStripMenuItem channelToolStripMenuItem = new ToolStripMenuItem(channel.Name);
                    channelToolStripMenuItem.Tag = channel;
                    channelToolStripMenuItem.DropDownItems.Clear();
                    channelToolStripMenuItem.DropDownOpening += new EventHandler(channelFolderToolStripMenuItem_DropDownOpening);

                    ToolStripMenuItem channelToolStripMenuItem1 = new ToolStripMenuItem("Dummy");
                    channelToolStripMenuItem.DropDownItems.Add(channelToolStripMenuItem1);

                    toolStripItemCollection.Add(channelToolStripMenuItem);
                }
            }
        }
示例#29
0
        private void PopulateChannelsInDropDownMenu(ToolStripItemCollection toolStripItemCollection, ChannelFolder channelFolder)
        {
            toolStripItemCollection.Clear();

            foreach (Channel channel in channelFolder.ChannelList)
            {
                ToolStripMenuItem channelToolStripMenuItem = new ToolStripMenuItem(channel.Name);
                channelToolStripMenuItem.Tag = channel;
                if (channel is ChannelFolder)
                {
                    channelToolStripMenuItem.DropDownItems.Add("dummy");
                    channelToolStripMenuItem.DropDownOpening += new EventHandler(channelToolStripMenuItem_DropDownOpening);
                }
                else
                {
                    if (channel is ChannelTV)
                    {
                        channelToolStripMenuItem.Image = MainForm.imageListLogoTV.Images[(channel as ChannelTV).Logo];
                        if (channelToolStripMenuItem.Image == null)
                        {
                            channelToolStripMenuItem.Image = MainForm.imageListLogoTV.Images["LogoTVDefault"];
                        }
                    }
                    channelToolStripMenuItem.Click += new EventHandler(channelToolStripMenuItem_Click);
                }
                toolStripItemCollection.Add(channelToolStripMenuItem);
            }
        }
 public void SelectFolder(ChannelFolder folder)
 {
     this.folder = folder;
 }