Index: trunk/Cocoa/F-Script Anywhere/Source/FSAController.m
===================================================================
--- trunk/Cocoa/F-Script Anywhere/Source/FSAController.m	(revision 224)
+++ trunk/Cocoa/F-Script Anywhere/Source/FSAController.m	(revision 226)
@@ -104,6 +104,8 @@
             item = [fsaMenu addItemWithTitle: NSLocalizedStringFromTableInBundle(@"New F-Script Workspace", @"FSA", bundle, @"Title of F-Script Workspace menu item") action:@selector(createInterpreterWindow:) keyEquivalent: @""];
             [item setTarget: self];
+            item = [fsaMenu addItemWithTitle: NSLocalizedStringFromTableInBundle(@"Browser for Target...", @"FSA", bundle, @"Title of F-Script Workspace menu item") action:@selector(createBrowserForSelection:) keyEquivalent: @""];
+            [item setTarget: self];
             [fsaMenu addItem: [NSMenuItem separatorItem]];
-            item = [fsaMenu addItemWithTitle: NSLocalizedStringFromTableInBundle(@"About F-Script Anywhere...", @"FSA", bundle, @"Title of Info Panel menu item") action:@selector(showInfo:) keyEquivalent: @""];
+            item = [fsaMenu addItemWithTitle: NSLocalizedStringFromTableInBundle(@"About F-Script Anywhere", @"FSA", bundle, @"Title of Info Panel menu item") action:@selector(showInfo:) keyEquivalent: @""];
             [item setTarget: self];
             [[FSAWindowManager sharedManager] setWindowMenu: fsaMenu];
@@ -118,5 +120,5 @@
     NSAssert([menuItem target] == self, @"menu item does not target FSAController!");
     sel = [menuItem action];
-    if (sel == @selector(showInfo:) || sel == @selector(createInterpreterWindow:)) return YES;
+    if (sel == @selector(showInfo:) || sel == @selector(createInterpreterWindow:) || sel == @selector(createBrowserForSelection:)) return YES;
     FSALog(@"+[FSAController validateMenuItem:] unknown menu item for validation: %@", menuItem);
     return NO;
@@ -125,5 +127,10 @@
 + (void)createInterpreterWindow:(id)sender;
 {
-    [[self alloc] init];
+    [[self alloc] initShowingInterpreter:YES];
+}
+
++ (void)createBrowserForSelection:(id)sender;
+{
+    [[[self alloc] initShowingInterpreter:NO] FSA_associateAndOpenBrowser:sender];
 }
 
@@ -136,27 +143,29 @@
 }
 
-- (id)init {
+- (id)initShowingInterpreter:(BOOL)showInterpreter {
     self = [super initWithWindowNibName: @"FSAInterpreterPanel"];
-
+    
     if (self != nil) {
         NSWindow *window = [self window];
         NSString *label;
         static unsigned numInterpWindows = 0;
-
-        NSAssert(window != nil, @"Can't get interpreter window!");
-        if (interpreterNum == 0) interpreterNum = ++numInterpWindows;
-        if ( (label = [self interpreterLabel]) != nil) {
-            [window setTitle: [NSString stringWithFormat: @"%@: %@", [window title], label]];
-        }
-
-        [window setLevel: NSNormalWindowLevel]; // XXX if set floating, it is globally floating!
-        [self showWindow: self];
-        [window makeKeyAndOrderFront: self];
+	
+	if(showInterpreter){
+	    NSAssert(window != nil, @"Can't get interpreter window!");
+	    if (interpreterNum == 0) interpreterNum = ++numInterpWindows;
+	    if ( (label = [self interpreterLabel]) != nil) {
+		[window setTitle: [NSString stringWithFormat: @"%@: %@", [window title], label]];
+	    }
+	    
+	    [window setLevel: NSNormalWindowLevel]; // XXX if set floating, it is globally floating!
+	    [self showWindow: self];
+	    [window makeKeyAndOrderFront: self];
 #warning this should go away when F-Script properly accepts firstResponder on the InterpreterView
-        [window makeFirstResponder: (NSView *)[[[self interpreterView] cliView] shellView]];
-        [[FSAWindowManager sharedManager] registerWindow: window];
-        system = [[[self interpreterView] interpreter] objectForIdentifier: @"sys" found: NULL];
-        [system retain];
-        NSAssert1([system isKindOfClass: [System class]], @"Initial value bound to identifier 'sys' is not a System object, but %@", system);
+	    [window makeFirstResponder: (NSView *)[[[self interpreterView] cliView] shellView]];
+	    [[FSAWindowManager sharedManager] registerWindow: window];
+	}
+	system = [[[self interpreterView] interpreter] objectForIdentifier: @"sys" found: NULL];
+	[system retain];
+	NSAssert1([system isKindOfClass: [System class]], @"Initial value bound to identifier 'sys' is not a System object, but %@", system);
     }
     
@@ -211,20 +220,3 @@
 }
 
-- (IBAction)FSA_associateWithInterface:(id)sender;
-{
-    NS_DURING
-        FSAWindowManager *wm = [FSAWindowManager sharedManager];
-        if (viewAssociationController == nil) {
-            viewAssociationController = [[FSAViewAssociationController alloc] initWithFSAController: self];
-        }
-        [viewAssociationController showWindow: self];
-        if (![wm windowIsRegistered: [viewAssociationController window]]) {
-            [wm registerSubordinateWindow: [viewAssociationController window]
-                                forWindow: [self window]];
-        }
-    NS_HANDLER
-        FSALog(@"%@", localException);
-    NS_ENDHANDLER
-}
-
 @end
