Use user catalog in account groups presentation and editing
authorMiltiadis Vasilakis <mvasilak@gmail.com>
Mon, 18 Feb 2013 23:15:49 +0000 (01:15 +0200)
committerMiltiadis Vasilakis <mvasilak@gmail.com>
Tue, 19 Feb 2013 10:55:53 +0000 (12:55 +0200)
pithos-apple-common
pithos-macos/GroupAndGroupMemberFormatter.m
pithos-macos/GroupMembersDictionaryTransformer.m
pithos-macos/PithosAccount.m
pithos-macos/PithosAccountNode.h
pithos-macos/PithosAccountNode.m
pithos-macos/PithosNode.h
pithos-macos/PithosNode.m
pithos-macos/PithosPreferencesController.m
pithos-macos/PithosPreferencesController.xib

index 3ebe988..0be02d2 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 3ebe98842729659a562c43de70431bb773381d3c
+Subproject commit 0be02d23590cf90f1358d9c2029c07a3035edea6
index f3e0f39..3753bb4 100644 (file)
@@ -59,7 +59,7 @@
        unichar aChar;  
        for (int i = 0; i < [partialString length]; i++) {
                aChar = [partialString characterAtIndex:i];
        unichar aChar;  
        for (int i = 0; i < [partialString length]; i++) {
                aChar = [partialString characterAtIndex:i];
-               if ((aChar == ' ') || (aChar == ',') || (aChar == '=')) {
+               if ((aChar == ' ') || (aChar == '-') || (aChar == '_') || (aChar == '~') || (aChar == ',') || (aChar == ';')) {
                        *newString = nil;
                        return NO;
                }
                        *newString = nil;
                        return NO;
                }
index 955f5d2..4fea3c1 100644 (file)
@@ -49,7 +49,7 @@
 - (id)transformedValue:(id)value {
     NSMutableDictionary *groupMembersDictionary = [NSMutableDictionary dictionary];
     if (value != nil) {
 - (id)transformedValue:(id)value {
     NSMutableDictionary *groupMembersDictionary = [NSMutableDictionary dictionary];
     if (value != nil) {
-        for (NSString *groupMember in [(NSString *)value componentsSeparatedByString:@","]) {
+        for (NSString *groupMember in (NSMutableArray *)value) {
             if ([groupMember length])
                 [groupMembersDictionary setObject:@"" forKey:groupMember];
         }
             if ([groupMember length])
                 [groupMembersDictionary setObject:@"" forKey:groupMember];
         }
 }
 
 - (id)reverseTransformedValue:(id)value {
 }
 
 - (id)reverseTransformedValue:(id)value {
-    NSMutableString *groupMembersString = [NSMutableString string];
-    if ((value != nil) || [(NSMutableDictionary *)value count]) {
-        for (NSString *groupMember in [(NSMutableDictionary *)value keyEnumerator]) {
-            if ([groupMember length])
-                [groupMembersString appendFormat:@"%@,", groupMember];
-        }
-        if ([groupMembersString hasSuffix:@","])
-            [groupMembersString deleteCharactersInRange:NSMakeRange(([groupMembersString length] - 1), 1)];
+    if (value != nil) {
+        return [NSMutableArray arrayWithArray:[(NSMutableDictionary *)value allKeys]];
+    } else {
+        return [NSMutableArray array];
     }
     }
-    return groupMembersString;
 }
 
 + (void)initialize {
 }
 
 + (void)initialize {
index 8b0894a..5329bcd 100644 (file)
         accountNode = [[PithosAccountNode alloc] initWithPithos:self.pithos];
         accountNode.childrenUpdatedNotificationName = nil;
         accountNode.inheritChildrenUpdatedNotificationName = YES;
         accountNode = [[PithosAccountNode alloc] initWithPithos:self.pithos];
         accountNode.childrenUpdatedNotificationName = nil;
         accountNode.inheritChildrenUpdatedNotificationName = YES;
+        accountNode.pithosAccountManager = self;
     }
     return accountNode;
 }
     }
     return accountNode;
 }
index 7ce5e92..ecda291 100644 (file)
     ASIPithosAccountRequest *refreshMetadataAccountRequest;
     
     BOOL reset;
     ASIPithosAccountRequest *refreshMetadataAccountRequest;
     
     BOOL reset;
+    
+    NSMutableDictionary *translatedGroups;
 }
 
 @property(nonatomic, strong) ASIPithos *pithos;
 @property(nonatomic, strong) ASIPithosAccount *pithosAccount;
 }
 
 @property(nonatomic, strong) ASIPithos *pithos;
 @property(nonatomic, strong) ASIPithosAccount *pithosAccount;
+@property(nonatomic, strong) NSMutableDictionary *translatedGroups;
 
 - (id)initWithPithos:(ASIPithos *)aPithos;
 
 
 - (id)initWithPithos:(ASIPithos *)aPithos;
 
index dc670be..51b5c61 100644 (file)
 #import "ASIPithosAccount.h"
 #import "ASIPithosContainer.h"
 #import "ASIDownloadCache.h"
 #import "ASIPithosAccount.h"
 #import "ASIPithosContainer.h"
 #import "ASIDownloadCache.h"
+#import "PithosAccount.h"
 #import "PithosUtilities.h"
 #import "PithosActivityFacility.h"
 
 static NSImage *sharedIcon = nil;
 
 @implementation PithosAccountNode
 #import "PithosUtilities.h"
 #import "PithosActivityFacility.h"
 
 static NSImage *sharedIcon = nil;
 
 @implementation PithosAccountNode
-@synthesize pithos, pithosAccount;
+@synthesize pithos, pithosAccount, translatedGroups;
 
 + (void)initialize {
        if (self == [PithosAccountNode class])
 
 + (void)initialize {
        if (self == [PithosAccountNode class])
@@ -88,6 +89,36 @@ static NSImage *sharedIcon = nil;
     }
 }
 
     }
 }
 
+- (void)setPithosAccount:(ASIPithosAccount *)aPithosAccount {
+    if (!aPithosAccount) {
+        pithosAccount = aPithosAccount;
+        self.translatedGroups = [NSMutableDictionary dictionary];
+    } else if (![aPithosAccount isEqualTo:pithosAccount]) {
+        pithosAccount = aPithosAccount;
+        if (pithosAccountManager) {
+            NSMutableArray *UUIDs = [NSMutableArray array];
+            for (NSString *groupName in pithosAccount.groups) {
+                [UUIDs addObjectsFromArray:[pithosAccount.groups objectForKey:groupName]];
+            }
+            if (UUIDs.count) {
+                [pithosAccountManager updateUserCatalogForForDisplaynames:nil UUIDs:UUIDs];
+            }
+            
+            NSMutableDictionary *newTranslatedGroups = [NSMutableDictionary dictionaryWithCapacity:pithosAccount.groups.count];
+            for (NSString *groupName in pithosAccount.groups) {
+                NSMutableArray *groupUsers = [NSMutableArray array];
+                for (NSString *UUID in [pithosAccount.groups objectForKey:groupName]) {
+                    [groupUsers addObject:[pithosAccountManager displaynameForUUID:UUID safe:YES]];
+                }
+                [newTranslatedGroups setObject:groupUsers forKey:groupName];
+            }
+            self.translatedGroups = newTranslatedGroups;
+        } else {
+            self.translatedGroups = [pithosAccount.groups copy];
+        }
+    }
+}
+
 - (NSString *)url {
     if (url == nil)
         url = [[NSString alloc] initWithFormat:@"%@%@", 
 - (NSString *)url {
     if (url == nil)
         url = [[NSString alloc] initWithFormat:@"%@%@", 
@@ -344,10 +375,94 @@ static NSImage *sharedIcon = nil;
 - (void)applyInfo {
     @synchronized(self) {
         if (applyMetadataAccountRequest == nil) {
 - (void)applyInfo {
     @synchronized(self) {
         if (applyMetadataAccountRequest == nil) {
-            NSMutableDictionary *groups = pithosAccount.groups;
-            if ([groups count] == 0)
-                groups = [NSMutableDictionary dictionaryWithObject:@"" forKey:@"group"];
-            applyMetadataAccountRequest = [ASIPithosAccountRequest updateAccountMetadataRequestWithPithos:pithos 
+            NSMutableDictionary *groups = [NSMutableDictionary dictionary];
+            if (translatedGroups.count) {
+                for (NSString *groupName in translatedGroups) {
+                    if (!groupName.length ||
+                        [groupName rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:@" -_~,;"]].location != NSNotFound) {
+                        NSAlert *alert = [[NSAlert alloc] init];
+                        [alert setMessageText:@"Invalid Input"];
+                        [alert setInformativeText:@"Group names cannot be empty or contain ' ', '-', '_', '~', ',' or ';'."];
+                        [alert addButtonWithTitle:@"OK"];
+                        [alert runModal];
+                        return;
+                    }
+                }
+                if (pithosAccountManager) {
+                    NSMutableSet *allGroupUsers = [NSMutableSet set];
+                    for (NSMutableArray *groupUsers in [translatedGroups objectEnumerator]) {
+                        [allGroupUsers addObjectsFromArray:groupUsers];
+                    }
+                    [allGroupUsers removeObject:@""];
+                    [allGroupUsers removeObject:@"*"];
+                    if (allGroupUsers.count) {
+                        ASIPithosRequest *userCatalogRequest = [pithosAccountManager updateUserCatalogForForDisplaynames:[allGroupUsers allObjects]
+                                                                                                                        UUIDs:nil];
+                        if (userCatalogRequest.error || ((userCatalogRequest.responseStatusCode != 200) && (userCatalogRequest.responseStatusCode != 404))) {
+                            return;
+                        } else if (userCatalogRequest.responseStatusCode == 200) {
+                            // Check if all users exist.
+                            NSDictionary *displaynameCatalog = [userCatalogRequest displaynameCatalog];
+                            NSMutableArray *inexistentGroupUsers = [NSMutableArray array];
+                            for (NSString *groupUser in allGroupUsers) {
+                                if (![displaynameCatalog objectForKey:groupUser]) {
+                                    [inexistentGroupUsers addObject:groupUser];
+                                }
+                            }
+                            if (!inexistentGroupUsers.count) {
+                                // create groups
+                                for (NSString *groupName in translatedGroups) {
+                                    NSMutableArray *groupUsers = [NSMutableArray array];
+                                    for (NSString *groupUser in [translatedGroups objectForKey:groupName]) {
+                                        [groupUsers addObject:([groupUser isEqualToString:@"*"] ?
+                                                               @"*" : [displaynameCatalog objectForKey:groupUser])];
+                                    }
+                                    [groups setObject:groupUsers forKey:groupName];
+                                }
+                            } else {
+                                NSAlert *alert = [[NSAlert alloc] init];
+                                if (inexistentGroupUsers.count == 1) {
+                                    [alert setMessageText:@"Invalid User"];
+                                    [alert setInformativeText:[NSString stringWithFormat:@"User '%@' doesn't exist.", [inexistentGroupUsers objectAtIndex:0]]];
+                                } else {
+                                    [alert setMessageText:@"Invalid Users"];
+                                    [alert setInformativeText:[NSString stringWithFormat:@"Users '%@' don't exist.", [inexistentGroupUsers componentsJoinedByString:@"', '"]]];
+                                }
+                                [alert addButtonWithTitle:@"OK"];
+                                [alert runModal];
+                                return;
+                            }
+                        } else {
+                            // 404. Since we don't translate to UUIDs, check for invalid chars.
+                            BOOL valid = YES;
+                            for (NSString *groupUser in allGroupUsers) {
+                                if ([groupUser rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:@" ~,;:"]].location != NSNotFound) {
+                                    valid = NO;
+                                    break;
+                                }
+                            }
+                            if (valid) {
+                                [groups addEntriesFromDictionary:translatedGroups];
+                            } else {
+                                NSAlert *alert = [[NSAlert alloc] init];
+                                [alert setMessageText:@"Invalid Input"];
+                                [alert setInformativeText:@"Users cannot contain ' ', '~', ',', ';' or ':'."];
+                                [alert addButtonWithTitle:@"OK"];
+                                [alert runModal];
+                                return;
+                            }
+                        }
+                    } else {
+                        [groups setObject:[NSArray arrayWithObject:@""] forKey:@"group"];
+                    }
+                } else {
+                    [groups addEntriesFromDictionary:translatedGroups];
+                }
+            } else {
+                [groups setObject:[NSArray arrayWithObject:@""] forKey:@"group"];
+            }
+            
+            applyMetadataAccountRequest = [ASIPithosAccountRequest updateAccountMetadataRequestWithPithos:pithos
                                                                                                     groups:groups 
                                                                                                   metadata:pithosAccount.metadata 
                                                                                                     update:NO];
                                                                                                     groups:groups 
                                                                                                   metadata:pithosAccount.metadata 
                                                                                                     update:NO];
index 2bbfa58..5461360 100644 (file)
@@ -41,6 +41,7 @@
 #define PithosNodeStateRefreshFinished 3
 
 @class PithosNodeInfoController;
 #define PithosNodeStateRefreshFinished 3
 
 @class PithosNodeInfoController;
+@class PithosAccount;
 @class ASIPithos;
 @class ASIPithosAccount;
 @class ASIPithosContainer;
 @class ASIPithos;
 @class ASIPithosAccount;
 @class ASIPithosContainer;
@@ -53,6 +54,7 @@
     
     NSString *url;    
     
     
     NSString *url;    
     
+    PithosAccount *__unsafe_unretained pithosAccountManager;
     PithosNode *__unsafe_unretained parent;
     BOOL shared;
     NSString *sharingAccount;
     PithosNode *__unsafe_unretained parent;
     BOOL shared;
     NSString *sharingAccount;
@@ -73,6 +75,7 @@
 
 @property(unsafe_unretained, nonatomic, readonly) NSString *url;
 
 
 @property(unsafe_unretained, nonatomic, readonly) NSString *url;
 
+@property(nonatomic, unsafe_unretained) PithosAccount *pithosAccountManager;
 @property(nonatomic, unsafe_unretained) PithosNode *parent;
 @property(nonatomic, assign) BOOL shared;
 @property(nonatomic, strong) NSString *sharingAccount;
 @property(nonatomic, unsafe_unretained) PithosNode *parent;
 @property(nonatomic, assign) BOOL shared;
 @property(nonatomic, strong) NSString *sharingAccount;
index 2ce039c..99567cf 100644 (file)
@@ -40,7 +40,7 @@
 #import "ASIPithosRequest.h"
 
 @implementation PithosNode
 #import "ASIPithosRequest.h"
 
 @implementation PithosNode
-@synthesize forcedRefresh, parent, shared, sharingAccount, childrenUpdatedNotificationName, 
+@synthesize forcedRefresh, pithosAccountManager, parent, shared, sharingAccount, childrenUpdatedNotificationName,
             inheritChildrenUpdatedNotificationName, displayName, isLeafItem, icon;
 @dynamic url, children, pithos, pithosAccount, pithosContainer, pithosObject;
 
             inheritChildrenUpdatedNotificationName, displayName, isLeafItem, icon;
 @dynamic url, children, pithos, pithosAccount, pithosContainer, pithosObject;
 
@@ -49,6 +49,7 @@
 
 - (id)init {
     if ((self = [super init])) {
 
 - (id)init {
     if ((self = [super init])) {
+        pithosAccountManager = nil;
         freshness = PithosNodeStateRefreshNeeded;
         forcedRefresh = NO;
         shared = NO;
         freshness = PithosNodeStateRefreshNeeded;
         forcedRefresh = NO;
         shared = NO;
index eb86c16..a05f72a 100644 (file)
@@ -44,6 +44,7 @@
 #import "PithosObjectNode.h"
 #import "PithosEmptyNode.h"
 #import "PithosAccount.h"
 #import "PithosObjectNode.h"
 #import "PithosEmptyNode.h"
 #import "PithosAccount.h"
+#import "ASIPithosAccount.h"
 #import "pithos_macosAppDelegate.h"
 
 #import "ImageAndTextCell.h"
 #import "pithos_macosAppDelegate.h"
 
 #import "ImageAndTextCell.h"
@@ -96,7 +97,7 @@
                                                                         icon:[[NSWorkspace sharedWorkspace] iconForFileType:NSFileTypeForHFSTypeCode(kUserIcon)]];
     
     [groupsDictionaryController setInitialKey:@"group"];
                                                                         icon:[[NSWorkspace sharedWorkspace] iconForFileType:NSFileTypeForHFSTypeCode(kUserIcon)]];
     
     [groupsDictionaryController setInitialKey:@"group"];
-    [groupsDictionaryController setInitialValue:@"user"];
+    [groupsDictionaryController setInitialValue:[NSMutableArray arrayWithObject:@"user"]];
     [selectedGroupMembersDictionaryController setInitialKey:@"user"];
     [selectedGroupMembersDictionaryController setInitialValue:@""];
 
     [selectedGroupMembersDictionaryController setInitialKey:@"user"];
     [selectedGroupMembersDictionaryController setInitialValue:@""];
 
index a68cecc..49a80df 100644 (file)
@@ -82,7 +82,6 @@
                                                                                        <int key="NSvFlags">256</int>
                                                                                        <string key="NSFrameSize">{118, 215}</string>
                                                                                        <reference key="NSSuperview" ref="475745140"/>
                                                                                        <int key="NSvFlags">256</int>
                                                                                        <string key="NSFrameSize">{118, 215}</string>
                                                                                        <reference key="NSSuperview" ref="475745140"/>
-                                                                                       <reference key="NSWindow"/>
                                                                                        <reference key="NSNextKeyView" ref="366650902"/>
                                                                                        <string key="NSReuseIdentifierKey">_NS:1828</string>
                                                                                        <bool key="NSEnabled">YES</bool>
                                                                                        <reference key="NSNextKeyView" ref="366650902"/>
                                                                                        <string key="NSReuseIdentifierKey">_NS:1828</string>
                                                                                        <bool key="NSEnabled">YES</bool>
@@ -91,7 +90,6 @@
                                                                                                <int key="NSvFlags">256</int>
                                                                                                <string key="NSFrameSize">{118, 17}</string>
                                                                                                <reference key="NSSuperview" ref="316124907"/>
                                                                                                <int key="NSvFlags">256</int>
                                                                                                <string key="NSFrameSize">{118, 17}</string>
                                                                                                <reference key="NSSuperview" ref="316124907"/>
-                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="475745140"/>
                                                                                                <string key="NSReuseIdentifierKey">_NS:1830</string>
                                                                                                <reference key="NSTableView" ref="260212452"/>
                                                                                                <reference key="NSNextKeyView" ref="475745140"/>
                                                                                                <string key="NSReuseIdentifierKey">_NS:1830</string>
                                                                                                <reference key="NSTableView" ref="260212452"/>
                                                                        </object>
                                                                        <string key="NSFrame">{{1, 17}, {118, 215}}</string>
                                                                        <reference key="NSSuperview" ref="419137310"/>
                                                                        </object>
                                                                        <string key="NSFrame">{{1, 17}, {118, 215}}</string>
                                                                        <reference key="NSSuperview" ref="419137310"/>
-                                                                       <reference key="NSWindow"/>
                                                                        <reference key="NSNextKeyView" ref="260212452"/>
                                                                        <string key="NSReuseIdentifierKey">_NS:1826</string>
                                                                        <reference key="NSDocView" ref="260212452"/>
                                                                        <reference key="NSNextKeyView" ref="260212452"/>
                                                                        <string key="NSReuseIdentifierKey">_NS:1826</string>
                                                                        <reference key="NSDocView" ref="260212452"/>
                                                                        <int key="NSvFlags">-2147483392</int>
                                                                        <string key="NSFrame">{{224, 17}, {15, 102}}</string>
                                                                        <reference key="NSSuperview" ref="419137310"/>
                                                                        <int key="NSvFlags">-2147483392</int>
                                                                        <string key="NSFrame">{{224, 17}, {15, 102}}</string>
                                                                        <reference key="NSSuperview" ref="419137310"/>
-                                                                       <reference key="NSWindow"/>
                                                                        <reference key="NSNextKeyView" ref="287845150"/>
                                                                        <string key="NSReuseIdentifierKey">_NS:1845</string>
                                                                        <reference key="NSTarget" ref="419137310"/>
                                                                        <reference key="NSNextKeyView" ref="287845150"/>
                                                                        <string key="NSReuseIdentifierKey">_NS:1845</string>
                                                                        <reference key="NSTarget" ref="419137310"/>
                                                                        <int key="NSvFlags">-2147483392</int>
                                                                        <string key="NSFrame">{{1, 48.325627356767654}, {82.028970718383789, 15}}</string>
                                                                        <reference key="NSSuperview" ref="419137310"/>
                                                                        <int key="NSvFlags">-2147483392</int>
                                                                        <string key="NSFrame">{{1, 48.325627356767654}, {82.028970718383789, 15}}</string>
                                                                        <reference key="NSSuperview" ref="419137310"/>
-                                                                       <reference key="NSWindow"/>
                                                                        <reference key="NSNextKeyView" ref="310368570"/>
                                                                        <string key="NSReuseIdentifierKey">_NS:1847</string>
                                                                        <int key="NSsFlags">1</int>
                                                                        <reference key="NSNextKeyView" ref="310368570"/>
                                                                        <string key="NSReuseIdentifierKey">_NS:1847</string>
                                                                        <int key="NSsFlags">1</int>
                                                                        </object>
                                                                        <string key="NSFrame">{{1, 0}, {118, 17}}</string>
                                                                        <reference key="NSSuperview" ref="419137310"/>
                                                                        </object>
                                                                        <string key="NSFrame">{{1, 0}, {118, 17}}</string>
                                                                        <reference key="NSSuperview" ref="419137310"/>
-                                                                       <reference key="NSWindow"/>
                                                                        <reference key="NSNextKeyView" ref="152792208"/>
                                                                        <string key="NSReuseIdentifierKey">_NS:1831</string>
                                                                        <reference key="NSDocView" ref="152792208"/>
                                                                        <reference key="NSNextKeyView" ref="152792208"/>
                                                                        <string key="NSReuseIdentifierKey">_NS:1831</string>
                                                                        <reference key="NSDocView" ref="152792208"/>
                                                        </object>
                                                        <string key="NSFrame">{{20, 47}, {120, 233}}</string>
                                                        <reference key="NSSuperview" ref="369507901"/>
                                                        </object>
                                                        <string key="NSFrame">{{20, 47}, {120, 233}}</string>
                                                        <reference key="NSSuperview" ref="369507901"/>
-                                                       <reference key="NSWindow"/>
                                                        <reference key="NSNextKeyView" ref="316124907"/>
                                                        <string key="NSReuseIdentifierKey">_NS:1824</string>
                                                        <int key="NSsFlags">133682</int>
                                                        <reference key="NSNextKeyView" ref="316124907"/>
                                                        <string key="NSReuseIdentifierKey">_NS:1824</string>
                                                        <int key="NSsFlags">133682</int>
                                                        <int key="NSvFlags">18</int>
                                                        <string key="NSFrame">{{147, 37}, {265, 249}}</string>
                                                        <reference key="NSSuperview" ref="369507901"/>
                                                        <int key="NSvFlags">18</int>
                                                        <string key="NSFrame">{{147, 37}, {265, 249}}</string>
                                                        <reference key="NSSuperview" ref="369507901"/>
-                                                       <reference key="NSWindow"/>
                                                        <reference key="NSNextKeyView" ref="646624756"/>
                                                        <string key="NSReuseIdentifierKey">_NS:608</string>
                                                        <object class="NSMutableArray" key="NSTabViewItems">
                                                        <reference key="NSNextKeyView" ref="646624756"/>
                                                        <string key="NSReuseIdentifierKey">_NS:608</string>
                                                        <object class="NSMutableArray" key="NSTabViewItems">
                                                                                                <int key="NSvFlags">268</int>
                                                                                                <string key="NSFrame">{{14, 183}, {41, 14}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
                                                                                                <int key="NSvFlags">268</int>
                                                                                                <string key="NSFrame">{{14, 183}, {41, 14}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
-                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="96425952"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="9695847">
                                                                                                <reference key="NSNextKeyView" ref="96425952"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="9695847">
                                                                                                <int key="NSvFlags">266</int>
                                                                                                <string key="NSFrame">{{60, 181}, {168, 19}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
                                                                                                <int key="NSvFlags">266</int>
                                                                                                <string key="NSFrame">{{60, 181}, {168, 19}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
-                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="571994001"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="34677607">
                                                                                                <reference key="NSNextKeyView" ref="571994001"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="34677607">
                                                                                                <int key="NSvFlags">266</int>
                                                                                                <string key="NSFrame">{{60, 123}, {168, 19}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
                                                                                                <int key="NSvFlags">266</int>
                                                                                                <string key="NSFrame">{{60, 123}, {168, 19}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
-                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="1017221490"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="1001750419">
                                                                                                <reference key="NSNextKeyView" ref="1017221490"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="1001750419">
                                                                                                <int key="NSvFlags">266</int>
                                                                                                <string key="NSFrame">{{60, 96}, {168, 19}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
                                                                                                <int key="NSvFlags">266</int>
                                                                                                <string key="NSFrame">{{60, 96}, {168, 19}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
-                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="525437489"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="350801514">
                                                                                                <reference key="NSNextKeyView" ref="525437489"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="350801514">
                                                                                                <int key="NSvFlags">266</int>
                                                                                                <string key="NSFrame">{{60, 69}, {168, 19}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
                                                                                                <int key="NSvFlags">266</int>
                                                                                                <string key="NSFrame">{{60, 69}, {168, 19}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
-                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="666198740"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="772611148">
                                                                                                <reference key="NSNextKeyView" ref="666198740"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="772611148">
                                                                                                <int key="NSvFlags">268</int>
                                                                                                <string key="NSFrame">{{14, 125}, {41, 14}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
                                                                                                <int key="NSvFlags">268</int>
                                                                                                <string key="NSFrame">{{14, 125}, {41, 14}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
-                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="287579732"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="993321662">
                                                                                                <reference key="NSNextKeyView" ref="287579732"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="993321662">
                                                                                                <int key="NSvFlags">268</int>
                                                                                                <string key="NSFrame">{{14, 71}, {41, 14}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
                                                                                                <int key="NSvFlags">268</int>
                                                                                                <string key="NSFrame">{{14, 71}, {41, 14}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
-                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="92717922"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="887494614">
                                                                                                <reference key="NSNextKeyView" ref="92717922"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="887494614">
                                                                                                <int key="NSvFlags">268</int>
                                                                                                <string key="NSFrame">{{14, 98}, {41, 14}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
                                                                                                <int key="NSvFlags">268</int>
                                                                                                <string key="NSFrame">{{14, 98}, {41, 14}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
-                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="773004803"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="1037784646">
                                                                                                <reference key="NSNextKeyView" ref="773004803"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="1037784646">
                                                                                                <int key="NSvFlags">268</int>
                                                                                                <string key="NSFrame">{{14, 150}, {86, 14}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
                                                                                                <int key="NSvFlags">268</int>
                                                                                                <string key="NSFrame">{{14, 150}, {86, 14}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
-                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="507142965"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="784421446">
                                                                                                <reference key="NSNextKeyView" ref="507142965"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="784421446">
                                                                                                <int key="NSvFlags">-2147483634</int>
                                                                                                <string key="NSFrame">{{-3, 170}, {251, 5}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
                                                                                                <int key="NSvFlags">-2147483634</int>
                                                                                                <string key="NSFrame">{{-3, 170}, {251, 5}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
-                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="992895966"/>
                                                                                                <string key="NSOffsets">{0, 0}</string>
                                                                                                <object class="NSTextFieldCell" key="NSTitleCell">
                                                                                                <reference key="NSNextKeyView" ref="992895966"/>
                                                                                                <string key="NSOffsets">{0, 0}</string>
                                                                                                <object class="NSTextFieldCell" key="NSTitleCell">
                                                                                                <int key="NSvFlags">268</int>
                                                                                                <string key="NSFrame">{{57, 45}, {63, 18}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
                                                                                                <int key="NSvFlags">268</int>
                                                                                                <string key="NSFrame">{{57, 45}, {63, 18}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
-                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="764785507"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSButtonCell" key="NSCell" id="269907300">
                                                                                                <reference key="NSNextKeyView" ref="764785507"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSButtonCell" key="NSCell" id="269907300">
                                                                                                <int key="NSvFlags">289</int>
                                                                                                <string key="NSFrame">{{161, 4}, {72, 28}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
                                                                                                <int key="NSvFlags">289</int>
                                                                                                <string key="NSFrame">{{161, 4}, {72, 28}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
-                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSButtonCell" key="NSCell" id="950873176">
                                                                                                <reference key="NSNextKeyView"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSButtonCell" key="NSCell" id="950873176">
                                                                                                <int key="NSvFlags">289</int>
                                                                                                <string key="NSFrame">{{91, 4}, {72, 28}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
                                                                                                <int key="NSvFlags">289</int>
                                                                                                <string key="NSFrame">{{91, 4}, {72, 28}}</string>
                                                                                                <reference key="NSSuperview" ref="646624756"/>
-                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="750494034"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSButtonCell" key="NSCell" id="327493266">
                                                                                                <reference key="NSNextKeyView" ref="750494034"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSButtonCell" key="NSCell" id="327493266">
                                                                                </object>
                                                                                <string key="NSFrame">{{10, 33}, {245, 203}}</string>
                                                                                <reference key="NSSuperview" ref="247568729"/>
                                                                                </object>
                                                                                <string key="NSFrame">{{10, 33}, {245, 203}}</string>
                                                                                <reference key="NSSuperview" ref="247568729"/>
-                                                                               <reference key="NSWindow"/>
                                                                                <reference key="NSNextKeyView" ref="1055886655"/>
                                                                                <string key="NSReuseIdentifierKey">_NS:610</string>
                                                                        </object>
                                                                                <reference key="NSNextKeyView" ref="1055886655"/>
                                                                                <string key="NSReuseIdentifierKey">_NS:610</string>
                                                                        </object>
                                                                                                <int key="NSvFlags">289</int>
                                                                                                <string key="NSFrame">{{161, 4}, {72, 28}}</string>
                                                                                                <reference key="NSSuperview" ref="689284120"/>
                                                                                                <int key="NSvFlags">289</int>
                                                                                                <string key="NSFrame">{{161, 4}, {72, 28}}</string>
                                                                                                <reference key="NSSuperview" ref="689284120"/>
+                                                                                               <reference key="NSNextKeyView"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSButtonCell" key="NSCell" id="592322209">
                                                                                                        <int key="NSCellFlags">-2080244224</int>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSButtonCell" key="NSCell" id="592322209">
                                                                                                        <int key="NSCellFlags">-2080244224</int>
                                                                                                                                <int key="NSvFlags">256</int>
                                                                                                                                <string key="NSFrameSize">{209, 95}</string>
                                                                                                                                <reference key="NSSuperview" ref="490888020"/>
                                                                                                                                <int key="NSvFlags">256</int>
                                                                                                                                <string key="NSFrameSize">{209, 95}</string>
                                                                                                                                <reference key="NSSuperview" ref="490888020"/>
-                                                                                                                               <reference key="NSNextKeyView" ref="677192773"/>
+                                                                                                                               <reference key="NSNextKeyView" ref="140942393"/>
                                                                                                                                <string key="NSReuseIdentifierKey">_NS:13</string>
                                                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                                                <object class="NSTableHeaderView" key="NSHeaderView" id="1047592526">
                                                                                                                                <string key="NSReuseIdentifierKey">_NS:13</string>
                                                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                                                <object class="NSTableHeaderView" key="NSHeaderView" id="1047592526">
                                                                                                </object>
                                                                                                <string key="NSFrame">{{17, 40}, {211, 113}}</string>
                                                                                                <reference key="NSSuperview" ref="689284120"/>
                                                                                                </object>
                                                                                                <string key="NSFrame">{{17, 40}, {211, 113}}</string>
                                                                                                <reference key="NSSuperview" ref="689284120"/>
-                                                                                               <reference key="NSNextKeyView" ref="490888020"/>
+                                                                                               <reference key="NSNextKeyView" ref="677192773"/>
                                                                                                <string key="NSReuseIdentifierKey">_NS:9</string>
                                                                                                <int key="NSsFlags">133682</int>
                                                                                                <reference key="NSVScroller" ref="140942393"/>
                                                                                                <string key="NSReuseIdentifierKey">_NS:9</string>
                                                                                                <int key="NSsFlags">133682</int>
                                                                                                <reference key="NSVScroller" ref="140942393"/>
                                                                                                                                <int key="NSvFlags">4352</int>
                                                                                                                                <string key="NSFrameSize">{103, 116}</string>
                                                                                                                                <reference key="NSSuperview" ref="748581994"/>
                                                                                                                                <int key="NSvFlags">4352</int>
                                                                                                                                <string key="NSFrameSize">{103, 116}</string>
                                                                                                                                <reference key="NSSuperview" ref="748581994"/>
-                                                                                                                               <reference key="NSNextKeyView" ref="881351662"/>
+                                                                                                                               <reference key="NSNextKeyView" ref="613407224"/>
                                                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                                                <object class="NSTableHeaderView" key="NSHeaderView" id="94922151">
                                                                                                                                        <reference key="NSNextResponder" ref="5455797"/>
                                                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                                                <object class="NSTableHeaderView" key="NSHeaderView" id="94922151">
                                                                                                                                        <reference key="NSNextResponder" ref="5455797"/>
                                                                                                                                                        <int key="NSCellFlags2">2048</int>
                                                                                                                                                        <string key="NSContents">Text Cell</string>
                                                                                                                                                        <reference key="NSSupport" ref="26"/>
                                                                                                                                                        <int key="NSCellFlags2">2048</int>
                                                                                                                                                        <string key="NSContents">Text Cell</string>
                                                                                                                                                        <reference key="NSSupport" ref="26"/>
+                                                                                                                                                       <string key="NSPlaceholderString">Group</string>
                                                                                                                                                        <reference key="NSControlView" ref="199904301"/>
                                                                                                                                                        <reference key="NSBackgroundColor" ref="512560731"/>
                                                                                                                                                        <reference key="NSTextColor" ref="44104873"/>
                                                                                                                                                        <reference key="NSControlView" ref="199904301"/>
                                                                                                                                                        <reference key="NSBackgroundColor" ref="512560731"/>
                                                                                                                                                        <reference key="NSTextColor" ref="44104873"/>
                                                                                                </object>
                                                                                                <string key="NSFrame">{{17, 66}, {105, 134}}</string>
                                                                                                <reference key="NSSuperview" ref="635100516"/>
                                                                                                </object>
                                                                                                <string key="NSFrame">{{17, 66}, {105, 134}}</string>
                                                                                                <reference key="NSSuperview" ref="635100516"/>
-                                                                                               <reference key="NSNextKeyView" ref="748581994"/>
+                                                                                               <reference key="NSNextKeyView" ref="881351662"/>
                                                                                                <int key="NSsFlags">133682</int>
                                                                                                <reference key="NSVScroller" ref="881351662"/>
                                                                                                <reference key="NSHScroller" ref="613407224"/>
                                                                                                <int key="NSsFlags">133682</int>
                                                                                                <reference key="NSVScroller" ref="881351662"/>
                                                                                                <reference key="NSHScroller" ref="613407224"/>
                                                                                                                                <int key="NSvFlags">4352</int>
                                                                                                                                <string key="NSFrameSize">{103, 116}</string>
                                                                                                                                <reference key="NSSuperview" ref="441382477"/>
                                                                                                                                <int key="NSvFlags">4352</int>
                                                                                                                                <string key="NSFrameSize">{103, 116}</string>
                                                                                                                                <reference key="NSSuperview" ref="441382477"/>
-                                                                                                                               <reference key="NSNextKeyView" ref="176697034"/>
+                                                                                                                               <reference key="NSNextKeyView" ref="79495429"/>
                                                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                                                <object class="NSTableHeaderView" key="NSHeaderView" id="459733499">
                                                                                                                                        <reference key="NSNextResponder" ref="302523439"/>
                                                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                                                <object class="NSTableHeaderView" key="NSHeaderView" id="459733499">
                                                                                                                                        <reference key="NSNextResponder" ref="302523439"/>
                                                                                                                                                        <int key="NSCellFlags2">2048</int>
                                                                                                                                                        <string key="NSContents">Text Cell</string>
                                                                                                                                                        <reference key="NSSupport" ref="26"/>
                                                                                                                                                        <int key="NSCellFlags2">2048</int>
                                                                                                                                                        <string key="NSContents">Text Cell</string>
                                                                                                                                                        <reference key="NSSupport" ref="26"/>
+                                                                                                                                                       <string key="NSPlaceholderString">User</string>
                                                                                                                                                        <reference key="NSControlView" ref="801276999"/>
                                                                                                                                                        <reference key="NSBackgroundColor" ref="512560731"/>
                                                                                                                                                        <reference key="NSTextColor" ref="44104873"/>
                                                                                                                                                        <reference key="NSControlView" ref="801276999"/>
                                                                                                                                                        <reference key="NSBackgroundColor" ref="512560731"/>
                                                                                                                                                        <reference key="NSTextColor" ref="44104873"/>
                                                                                                </object>
                                                                                                <string key="NSFrame">{{123, 66}, {105, 134}}</string>
                                                                                                <reference key="NSSuperview" ref="635100516"/>
                                                                                                </object>
                                                                                                <string key="NSFrame">{{123, 66}, {105, 134}}</string>
                                                                                                <reference key="NSSuperview" ref="635100516"/>
-                                                                                               <reference key="NSNextKeyView" ref="441382477"/>
+                                                                                               <reference key="NSNextKeyView" ref="176697034"/>
                                                                                                <int key="NSsFlags">133682</int>
                                                                                                <reference key="NSVScroller" ref="176697034"/>
                                                                                                <reference key="NSHScroller" ref="79495429"/>
                                                                                                <int key="NSsFlags">133682</int>
                                                                                                <reference key="NSVScroller" ref="176697034"/>
                                                                                                <reference key="NSHScroller" ref="79495429"/>
                                                                                                <int key="NSvFlags">289</int>
                                                                                                <string key="NSFrame">{{161, 4}, {72, 28}}</string>
                                                                                                <reference key="NSSuperview" ref="635100516"/>
                                                                                                <int key="NSvFlags">289</int>
                                                                                                <string key="NSFrame">{{161, 4}, {72, 28}}</string>
                                                                                                <reference key="NSSuperview" ref="635100516"/>
+                                                                                               <reference key="NSNextKeyView"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSButtonCell" key="NSCell" id="683879656">
                                                                                                        <int key="NSCellFlags">-2080244224</int>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSButtonCell" key="NSCell" id="683879656">
                                                                                                        <int key="NSCellFlags">-2080244224</int>
                                                        <int key="NSvFlags">292</int>
                                                        <string key="NSFrame">{{20, 19}, {20, 20}}</string>
                                                        <reference key="NSSuperview" ref="369507901"/>
                                                        <int key="NSvFlags">292</int>
                                                        <string key="NSFrame">{{20, 19}, {20, 20}}</string>
                                                        <reference key="NSSuperview" ref="369507901"/>
-                                                       <reference key="NSWindow"/>
                                                        <reference key="NSNextKeyView" ref="862152318"/>
                                                        <string key="NSReuseIdentifierKey">_NS:2510</string>
                                                        <bool key="NSEnabled">YES</bool>
                                                        <reference key="NSNextKeyView" ref="862152318"/>
                                                        <string key="NSReuseIdentifierKey">_NS:2510</string>
                                                        <bool key="NSEnabled">YES</bool>
                                                        <int key="NSvFlags">292</int>
                                                        <string key="NSFrame">{{39, 19}, {20, 20}}</string>
                                                        <reference key="NSSuperview" ref="369507901"/>
                                                        <int key="NSvFlags">292</int>
                                                        <string key="NSFrame">{{39, 19}, {20, 20}}</string>
                                                        <reference key="NSSuperview" ref="369507901"/>
-                                                       <reference key="NSWindow"/>
-                                                       <reference key="NSNextKeyView" ref="247568729"/>
                                                        <string key="NSReuseIdentifierKey">_NS:2510</string>
                                                        <bool key="NSEnabled">YES</bool>
                                                        <object class="NSButtonCell" key="NSCell" id="850026501">
                                                        <string key="NSReuseIdentifierKey">_NS:2510</string>
                                                        <bool key="NSEnabled">YES</bool>
                                                        <object class="NSButtonCell" key="NSCell" id="850026501">
                                        </object>
                                        <string key="NSFrameSize">{425, 300}</string>
                                        <reference key="NSSuperview"/>
                                        </object>
                                        <string key="NSFrameSize">{425, 300}</string>
                                        <reference key="NSSuperview"/>
-                                       <reference key="NSWindow"/>
                                        <reference key="NSNextKeyView" ref="419137310"/>
                                </object>
                                <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string>
                                        <reference key="NSNextKeyView" ref="419137310"/>
                                </object>
                                <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string>
                                <string key="NSInitialKey">key</string>
                                <string key="NSInitialValue">value</string>
                        </object>
                                <string key="NSInitialKey">key</string>
                                <string key="NSInitialValue">value</string>
                        </object>
-                       <object class="NSCustomObject" id="894212860">
-                               <string key="NSClassName">GroupAndGroupMemberFormatter</string>
-                       </object>
                        <object class="NSCustomObject" id="548435475">
                                <string key="NSClassName">NonEmptyStringFormatter</string>
                        </object>
                        <object class="NSCustomObject" id="548435475">
                                <string key="NSClassName">NonEmptyStringFormatter</string>
                        </object>
                                </object>
                                <object class="IBConnectionRecord">
                                        <object class="IBBindingConnection" key="connection">
                                </object>
                                <object class="IBConnectionRecord">
                                        <object class="IBBindingConnection" key="connection">
-                                               <string key="label">contentDictionary: selection.accountNode.pithosAccount.groups</string>
+                                               <string key="label">contentDictionary: selection.accountNode.translatedGroups</string>
                                                <reference key="source" ref="980977849"/>
                                                <reference key="destination" ref="994230656"/>
                                                <object class="NSNibBindingConnector" key="connector">
                                                        <reference key="NSSource" ref="980977849"/>
                                                        <reference key="NSDestination" ref="994230656"/>
                                                <reference key="source" ref="980977849"/>
                                                <reference key="destination" ref="994230656"/>
                                                <object class="NSNibBindingConnector" key="connector">
                                                        <reference key="NSSource" ref="980977849"/>
                                                        <reference key="NSDestination" ref="994230656"/>
-                                                       <string key="NSLabel">contentDictionary: selection.accountNode.pithosAccount.groups</string>
+                                                       <string key="NSLabel">contentDictionary: selection.accountNode.translatedGroups</string>
                                                        <string key="NSBinding">contentDictionary</string>
                                                        <string key="NSBinding">contentDictionary</string>
-                                                       <string key="NSKeyPath">selection.accountNode.pithosAccount.groups</string>
+                                                       <string key="NSKeyPath">selection.accountNode.translatedGroups</string>
                                                        <int key="NSNibBindingConnectorVersion">2</int>
                                                </object>
                                        </object>
                                                        <int key="NSNibBindingConnectorVersion">2</int>
                                                </object>
                                        </object>
-                                       <int key="connectionID">864</int>
+                                       <int key="connectionID">908</int>
                                </object>
                                <object class="IBConnectionRecord">
                                        <object class="IBBindingConnection" key="connection">
                                </object>
                                <object class="IBConnectionRecord">
                                        <object class="IBBindingConnection" key="connection">
                                                <reference key="parent" ref="183740387"/>
                                        </object>
                                        <object class="IBObjectRecord">
                                                <reference key="parent" ref="183740387"/>
                                        </object>
                                        <object class="IBObjectRecord">
-                                               <int key="objectID">449</int>
-                                               <reference key="object" ref="894212860"/>
-                                               <reference key="parent" ref="0"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
                                                <int key="objectID">484</int>
                                                <reference key="object" ref="548435475"/>
                                                <reference key="parent" ref="0"/>
                                                <int key="objectID">484</int>
                                                <reference key="object" ref="548435475"/>
                                                <reference key="parent" ref="0"/>
                                        <string>338.IBPluginDependency</string>
                                        <string>396.IBPluginDependency</string>
                                        <string>433.IBPluginDependency</string>
                                        <string>338.IBPluginDependency</string>
                                        <string>396.IBPluginDependency</string>
                                        <string>433.IBPluginDependency</string>
-                                       <string>449.IBPluginDependency</string>
                                        <string>484.IBPluginDependency</string>
                                        <string>5.IBPluginDependency</string>
                                        <string>505.IBPluginDependency</string>
                                        <string>484.IBPluginDependency</string>
                                        <string>5.IBPluginDependency</string>
                                        <string>505.IBPluginDependency</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <reference ref="22221536"/>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <reference ref="22221536"/>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                <reference key="dict.values" ref="0"/>
                        </object>
                        <nil key="sourceID"/>
                                <reference key="dict.values" ref="0"/>
                        </object>
                        <nil key="sourceID"/>
-                       <int key="maxID">905</int>
-               </object>
-               <object class="IBClassDescriber" key="IBDocument.Classes">
-                       <object class="NSMutableArray" key="referencedPartialClassDescriptions">
-                               <bool key="EncodedWithXMLCoder">YES</bool>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">GroupAndGroupMemberFormatter</string>
-                                       <string key="superclassName">NSFormatter</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBProjectSource</string>
-                                               <string key="minorKey">./Classes/GroupAndGroupMemberFormatter.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NonEmptyStringFormatter</string>
-                                       <string key="superclassName">NSFormatter</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBProjectSource</string>
-                                               <string key="minorKey">./Classes/NonEmptyStringFormatter.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">PithosPreferencesController</string>
-                                       <string key="superclassName">NSWindowController</string>
-                                       <object class="NSMutableDictionary" key="actions">
-                                               <bool key="EncodedWithXMLCoder">YES</bool>
-                                               <object class="NSArray" key="dict.sortedKeys">
-                                                       <bool key="EncodedWithXMLCoder">YES</bool>
-                                                       <string>addAccount:</string>
-                                                       <string>groupsApply:</string>
-                                                       <string>groupsRevert:</string>
-                                                       <string>login:</string>
-                                                       <string>loginCancel:</string>
-                                                       <string>removeAccount:</string>
-                                                       <string>syncApply:</string>
-                                                       <string>syncCancel:</string>
-                                                       <string>syncRefresh:</string>
-                                               </object>
-                                               <object class="NSArray" key="dict.values">
-                                                       <bool key="EncodedWithXMLCoder">YES</bool>
-                                                       <string>id</string>
-                                                       <string>id</string>
-                                                       <string>id</string>
-                                                       <string>id</string>
-                                                       <string>id</string>
-                                                       <string>id</string>
-                                                       <string>id</string>
-                                                       <string>id</string>
-                                                       <string>id</string>
-                                               </object>
-                                       </object>
-                                       <object class="NSMutableDictionary" key="actionInfosByName">
-                                               <bool key="EncodedWithXMLCoder">YES</bool>
-                                               <object class="NSArray" key="dict.sortedKeys">
-                                                       <bool key="EncodedWithXMLCoder">YES</bool>
-                                                       <string>addAccount:</string>
-                                                       <string>groupsApply:</string>
-                                                       <string>groupsRevert:</string>
-                                                       <string>login:</string>
-                                                       <string>loginCancel:</string>
-                                                       <string>removeAccount:</string>
-                                                       <string>syncApply:</string>
-                                                       <string>syncCancel:</string>
-                                                       <string>syncRefresh:</string>
-                                               </object>
-                                               <object class="NSArray" key="dict.values">
-                                                       <bool key="EncodedWithXMLCoder">YES</bool>
-                                                       <object class="IBActionInfo">
-                                                               <string key="name">addAccount:</string>
-                                                               <string key="candidateClassName">id</string>
-                                                       </object>
-                                                       <object class="IBActionInfo">
-                                                               <string key="name">groupsApply:</string>
-                                                               <string key="candidateClassName">id</string>
-                                                       </object>
-                                                       <object class="IBActionInfo">
-                                                               <string key="name">groupsRevert:</string>
-                                                               <string key="candidateClassName">id</string>
-                                                       </object>
-                                                       <object class="IBActionInfo">
-                                                               <string key="name">login:</string>
-                                                               <string key="candidateClassName">id</string>
-                                                       </object>
-                                                       <object class="IBActionInfo">
-                                                               <string key="name">loginCancel:</string>
-                                                               <string key="candidateClassName">id</string>
-                                                       </object>
-                                                       <object class="IBActionInfo">
-                                                               <string key="name">removeAccount:</string>
-                                                               <string key="candidateClassName">id</string>
-                                                       </object>
-                                                       <object class="IBActionInfo">
-                                                               <string key="name">syncApply:</string>
-                                                               <string key="candidateClassName">id</string>
-                                                       </object>
-                                                       <object class="IBActionInfo">
-                                                               <string key="name">syncCancel:</string>
-                                                               <string key="candidateClassName">id</string>
-                                                       </object>
-                                                       <object class="IBActionInfo">
-                                                               <string key="name">syncRefresh:</string>
-                                                               <string key="candidateClassName">id</string>
-                                                       </object>
-                                               </object>
-                                       </object>
-                                       <object class="NSMutableDictionary" key="outlets">
-                                               <bool key="EncodedWithXMLCoder">YES</bool>
-                                               <object class="NSArray" key="dict.sortedKeys">
-                                                       <bool key="EncodedWithXMLCoder">YES</bool>
-                                                       <string>accountsArrayController</string>
-                                                       <string>groupsDictionaryController</string>
-                                                       <string>selectedGroupMembersDictionaryController</string>
-                                                       <string>syncAccountsOutlineView</string>
-                                               </object>
-                                               <object class="NSArray" key="dict.values">
-                                                       <bool key="EncodedWithXMLCoder">YES</bool>
-                                                       <string>NSArrayController</string>
-                                                       <string>NSDictionaryController</string>
-                                                       <string>NSDictionaryController</string>
-                                                       <string>NSOutlineView</string>
-                                               </object>
-                                       </object>
-                                       <object class="NSMutableDictionary" key="toOneOutletInfosByName">
-                                               <bool key="EncodedWithXMLCoder">YES</bool>
-                                               <object class="NSArray" key="dict.sortedKeys">
-                                                       <bool key="EncodedWithXMLCoder">YES</bool>
-                                                       <string>accountsArrayController</string>
-                                                       <string>groupsDictionaryController</string>
-                                                       <string>selectedGroupMembersDictionaryController</string>
-                                                       <string>syncAccountsOutlineView</string>
-                                               </object>
-                                               <object class="NSArray" key="dict.values">
-                                                       <bool key="EncodedWithXMLCoder">YES</bool>
-                                                       <object class="IBToOneOutletInfo">
-                                                               <string key="name">accountsArrayController</string>
-                                                               <string key="candidateClassName">NSArrayController</string>
-                                                       </object>
-                                                       <object class="IBToOneOutletInfo">
-                                                               <string key="name">groupsDictionaryController</string>
-                                                               <string key="candidateClassName">NSDictionaryController</string>
-                                                       </object>
-                                                       <object class="IBToOneOutletInfo">
-                                                               <string key="name">selectedGroupMembersDictionaryController</string>
-                                                               <string key="candidateClassName">NSDictionaryController</string>
-                                                       </object>
-                                                       <object class="IBToOneOutletInfo">
-                                                               <string key="name">syncAccountsOutlineView</string>
-                                                               <string key="candidateClassName">NSOutlineView</string>
-                                                       </object>
-                                               </object>
-                                       </object>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBProjectSource</string>
-                                               <string key="minorKey">./Classes/PithosPreferencesController.h</string>
-                                       </object>
-                               </object>
-                       </object>
+                       <int key="maxID">909</int>
                </object>
                </object>
+               <object class="IBClassDescriber" key="IBDocument.Classes"/>
                <int key="IBDocument.localizationMode">0</int>
                <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
                <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
                <int key="IBDocument.localizationMode">0</int>
                <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
                <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">