本文整理汇总了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();
}
示例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);
}
}
示例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);
}
}