當前位置: 首頁>>代碼示例>>C#>>正文


C# Item.GetGroups方法代碼示例

本文整理匯總了C#中System.Item.GetGroups方法的典型用法代碼示例。如果您正苦於以下問題:C# Item.GetGroups方法的具體用法?C# Item.GetGroups怎麽用?C# Item.GetGroups使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在System.Item的用法示例。


在下文中一共展示了Item.GetGroups方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: EditGroupsWindow

        public EditGroupsWindow(Account account, Item item)
        {
            SetupUi();

            m_Account = account;
            m_Item    = item;

            buttonBox.StandardButtons = (uint)QDialogButtonBox.StandardButton.Ok | (uint)QDialogButtonBox.StandardButton.Cancel;

            jidLabel.Text = item.JID.ToString();

            groupsWidget.Account = account;
            groupsWidget.SelectedGroups = item.GetGroups().Select(g => g.GroupName).ToArray();
        }
開發者ID:jrudolph,項目名稱:synapse,代碼行數:14,代碼來源:EditGroupsWindow.cs

示例2: m_roster_OnRosterItem

        private void m_roster_OnRosterItem(object sender, Item ri)
        {
            bool remove = (ri.Subscription == Subscription.remove);

            LinkedList nodelist = (LinkedList)m_items[ri.JID.ToString()];
            if (nodelist == null)
            {
                // First time through.
                if (!remove)
                {
                    nodelist = new LinkedList();
                    m_items.Add(ri.JID.ToString(), nodelist);
                }
            }
            else
            {
                // update to an existing item.  remove all of them, and start over.
                foreach (ItemNode i in nodelist)
                {
                    GroupNode gn = i.Parent as GroupNode;
                    i.Remove();
                    if ((gn != null) && (gn.Nodes.Count == 0))
                    {
                        m_groups.Remove(gn.GroupName);
                        gn.Remove();
                    }
                }
                nodelist.Clear();
                if (remove)
                    m_items.Remove(ri.JID.ToString());
            }

            if (remove)
                return;

            // add the new ones back
            Hashtable ghash = new Hashtable();
            Group[] groups = ri.GetGroups();
            for (int i=groups.Length-1; i>=0; i--)
            {
                if (groups[i].GroupName == "")
                    groups[i].GroupName = UNFILED;
            }

            if (groups.Length == 0)
            {
                groups = new Group[] { new Group(ri.OwnerDocument) };
                groups[0].GroupName = UNFILED;
            }

            foreach (Group g in groups)
            {
                GroupNode gn = AddGroupNode(g);
                // might have the same group twice.
                if (ghash.Contains(g.GroupName))
                    continue;
                ghash.Add(g.GroupName, g);

                ItemNode i = new ItemNode(ri);
                i.ChangePresence(m_pres[ri.JID]);
                nodelist.Add(i);
                gn.Nodes.Add(i);
            }
        }
開發者ID:csfmeridian,項目名稱:jabber-net,代碼行數:64,代碼來源:RosterTree.cs

示例3: ProcessRosterItem

        /// <summary>
        /// TODO: Documentation ProcessRosterItem
        /// </summary>
        /// <param name="ri"></param>
        private void ProcessRosterItem(Item ri)
        {
            bool remove = ri.Subscription == Subscription.remove;

            LinkedList nodelist = m_items[ri.JID.ToString()] as LinkedList;

            if (nodelist == null)
            {
                // First time through.
                if (!remove)
                {
                    nodelist = new LinkedList();
                    m_items.Add(ri.JID.ToString(), nodelist);
                }
            }
            else
            {
                // update to an existing item. remove all of them, and start over.
                foreach (ItemNode i in nodelist)
                    this.RemoveItemNode(i);

                nodelist.Clear();

                if (remove)
                    m_items.Remove(ri.JID.ToString());
            }

            if (remove)
                return;

            if (this.ExcludeRosterItem(ri))
                return;

            // add the new ones back
            Hashtable ghash = new Hashtable();
            Group[] groups = ri.GetGroups();

            foreach (Group g in groups)
            {
                if (String.IsNullOrEmpty(g.GroupName))
                    g.GroupName = this.Unfiled;
            }

            if (groups.Length == 0)
            {
                groups = new Group[] { new Group(ri.OwnerDocument) };
                groups[0].GroupName = this.Unfiled;
            }

            foreach (Group g in groups)
            {
                // might have the same group twice.
                if (ghash.Contains(g.GroupName))
                    continue;

                ghash.Add(g.GroupName, g);

                if (this.Client.SupportNestedGroups)
                {
                    IEnumerable<String> groupies = this.ConstructNestedGroupList(g.GroupName);
                    Boolean useContinue = false;

                    foreach (String groupie in groupies)
                    {
                        if (this.m_excludedGroups.ContainsKey(groupie))
                        {
                            useContinue = true;
                            break;
                        }
                    }

                    if (useContinue)
                        continue;
                }
                else
                {
                    if (this.m_excludedGroups.ContainsKey(g.GroupName))
                        continue;
                }

                ItemNode i = new ItemNode(ri);
                i.ChangePresence(m_pres[ri.JID]);
                nodelist.Add(i);

                GroupNode gn = this.AddGroupNode(g);
                gn.Nodes.Add(i);
            }
        }
開發者ID:tshwangq,項目名稱:JabberNet-2010,代碼行數:92,代碼來源:RosterTree.cs


注:本文中的System.Item.GetGroups方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。