diff options
author | caniszczyk | 2007-07-27 03:04:08 +0000 |
---|---|---|
committer | caniszczyk | 2007-07-27 03:04:08 +0000 |
commit | 6da1fc60d2c55e1da76eb977cbec1eb01e156fa9 (patch) | |
tree | c404dbed16f43890462129d1da72dc8df45d22d7 | |
parent | 71e4dd9006b97ecd842616d19f0c024fed8bce11 (diff) | |
download | org.eclipse.ecf-6da1fc60d2c55e1da76eb977cbec1eb01e156fa9.tar.gz org.eclipse.ecf-6da1fc60d2c55e1da76eb977cbec1eb01e156fa9.tar.xz org.eclipse.ecf-6da1fc60d2c55e1da76eb977cbec1eb01e156fa9.zip |
bug 198043: [ui] open contacts dialog doesn't recognize users in groups
https://bugs.eclipse.org/bugs/show_bug.cgi?id=198043
-rw-r--r-- | framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/internal/presence/ui/handlers/BrowseDialog.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/internal/presence/ui/handlers/BrowseDialog.java b/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/internal/presence/ui/handlers/BrowseDialog.java index 1629120d8..a5994f0ba 100644 --- a/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/internal/presence/ui/handlers/BrowseDialog.java +++ b/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/internal/presence/ui/handlers/BrowseDialog.java @@ -30,6 +30,7 @@ import org.eclipse.ecf.presence.IPresence; import org.eclipse.ecf.presence.IPresenceContainerAdapter; import org.eclipse.ecf.presence.roster.IRoster; import org.eclipse.ecf.presence.roster.IRosterEntry; +import org.eclipse.ecf.presence.roster.IRosterGroup; import org.eclipse.ecf.presence.roster.IRosterItem; import org.eclipse.ecf.presence.roster.IRosterManager; import org.eclipse.ecf.ui.SharedImages; @@ -120,7 +121,8 @@ public class BrowseDialog extends FilteredItemsSelectionDialog { Collection items = manager.getRoster().getItems(); for(Iterator it = items.iterator(); it.hasNext(); ) { - contentProvider.add(it.next(), itemsFilter); + IRosterItem item = (IRosterItem) it.next(); + addRosterItem(item, contentProvider, itemsFilter); } } } @@ -130,6 +132,18 @@ public class BrowseDialog extends FilteredItemsSelectionDialog { progressMonitor.done(); } + // cycle through all roster items recursively + private void addRosterItem(IRosterItem item, + AbstractContentProvider contentProvider, ItemsFilter itemsFilter) { + if(item instanceof IRosterGroup) { + IRosterGroup group = (IRosterGroup) item; + for(Iterator it = group.getEntries().iterator(); it.hasNext();) { + addRosterItem((IRosterItem) it.next(), contentProvider, itemsFilter); + } + } + contentProvider.add(item, itemsFilter); + } + /* (non-Javadoc) * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getDialogSettings() */ |