Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcaniszczyk2007-07-27 03:04:08 +0000
committercaniszczyk2007-07-27 03:04:08 +0000
commit6da1fc60d2c55e1da76eb977cbec1eb01e156fa9 (patch)
treec404dbed16f43890462129d1da72dc8df45d22d7
parent71e4dd9006b97ecd842616d19f0c024fed8bce11 (diff)
downloadorg.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.java16
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()
*/

Back to the top