Merged with /trunk jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Sat, 05 May 2012 23:06:53 +0100
branchjv
changeset 12240 a2a5f4c906de
parent 12239 9a8aa0b0e982
child 12241 af9f27007630
Merged with /trunk
AbstractFileBrowser.st
AbstractLauncherApplication.st
MultiViewToolApplication.st
NewLauncher.st
Tools__NewSystemBrowser.st
WorkspaceApplication.st
resources/de.rs
--- a/AbstractFileBrowser.st	Sat May 05 22:28:49 2012 +0100
+++ b/AbstractFileBrowser.st	Sat May 05 23:06:53 2012 +0100
@@ -5950,7 +5950,6 @@
     "Created: / 15-01-2012 / 19:43:08 / cg"
 ! !
 
-
 !AbstractFileBrowser methodsFor:'menu actions-tools'!
 
 allFilesInSelectedDirectoriesForWhich:aBlock
@@ -7446,8 +7445,8 @@
         ].
 
         self withActivityIndicationDo:[
-            ((name1 notNil and:[name1 fileSize > (1024*1024*8)])
-            or:[ name2 fileSize > (1024*1024*8) ]) ifTrue:[
+            ((name1 notNil and:[name1 fileSize > (1024*1024*32)])
+            or:[ name2 fileSize > (1024*1024*32) ]) ifTrue:[
                 name1 fileSize = name2 fileSize ifTrue:[
                     ProgressIndicator
                         displayBusyIndicator:'Comparing...'
@@ -7494,7 +7493,7 @@
         ]
     ]
 
-    "Modified: / 05-01-2012 / 14:26:20 / cg"
+    "Modified: / 03-05-2012 / 08:03:16 / cg"
 !
 
 openDirectoryDiffView
@@ -8279,7 +8278,6 @@
     ^ false
 ! !
 
-
 !AbstractFileBrowser methodsFor:'presentation'!
 
 getModeString:modeBits
@@ -8464,6 +8462,8 @@
     "Modified: / 19-01-2012 / 10:43:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+
+
 initialCommandFor:fileName into:aBox
     "set a useful initial command for execute box."
 
@@ -9194,13 +9194,13 @@
 !AbstractFileBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Id: AbstractFileBrowser.st 7979 2012-04-13 18:16:04Z vranyj1 $'
+    ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.493 2012/05/03 06:04:27 cg Exp $'
 !
 
 version_CVS
-    ^ '§Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.492 2012/02/28 10:16:29 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.493 2012/05/03 06:04:27 cg Exp §'
 !
 
 version_SVN
-    ^ '$Id: AbstractFileBrowser.st 7979 2012-04-13 18:16:04Z vranyj1 $'
+    ^ '$Id: AbstractFileBrowser.st 7990 2012-05-05 22:06:53Z vranyj1 $'
 ! !
--- a/AbstractLauncherApplication.st	Sat May 05 22:28:49 2012 +0100
+++ b/AbstractLauncherApplication.st	Sat May 05 23:06:53 2012 +0100
@@ -594,6 +594,82 @@
 
 !AbstractLauncherApplication methodsFor:'private'!
 
+allTopViewsAndLabelsSortedFilteringWindowGroups: windowGroupFilterOrNil
+    "helper returning all windows on all screens sorted by a label to suite"
+
+    |knownTopViewsAndLabels|
+
+    knownTopViewsAndLabels := OrderedCollection new.
+    self allTopViewsFilteringWindowGroups: windowGroupFilterOrNil withLabelsDo: [:v :lbl |
+        knownTopViewsAndLabels add:(lbl -> v)
+    ].
+    knownTopViewsAndLabels sort:[:a :b | a key < b key].
+    ^ knownTopViewsAndLabels
+
+    "Created: / 27-04-2012 / 13:04:21 / cg"
+!
+
+allTopViewsFilteringWindowGroups: windowGroupFilterOrNil withLabelsDo: aBlock
+    "helper enumerating all windows on all screens with a label to suite"
+
+    |knownTopViews genLabel|
+
+
+    genLabel := [:v | 
+                    |app appName busyOrNot sensor pending|
+
+                    app := v application.
+                    appName := (app isNil 
+                                    ifTrue:[''] 
+                                    ifFalse:[app class nameWithoutPrefix,': ']).
+                    busyOrNot := ''.
+                    (sensor := v windowGroup sensor) notNil ifTrue:[
+                        (pending := sensor pendingEvent) notNil ifTrue:[
+                            (Timestamp now - pending timeStamp) > 1 ifTrue:[
+                                busyOrNot := ' [busy]' allBold colorizeAllWith:Color red
+                            ]
+                        ]
+                    ].
+                    appName,'"',(v label ? 'aView'),'"',busyOrNot
+                ].
+
+    knownTopViews := IdentitySet new.
+    Screen allScreens do:[:aScreen |
+        aScreen knownViews do:[:aView |
+            |top showIt wg|
+
+            aView notNil ifTrue:[
+                top := aView topView.
+                (knownTopViews includes:top) ifFalse:[
+
+                    (top isKindOf:DebugView) ifTrue:[
+                        "/ although modal, show it.
+                        showIt := top realized
+                    ] ifFalse:[
+                        (top isKindOf:TopView) ifTrue:[
+                            wg := top windowGroup.
+                            showIt := (wg notNil and:[wg isModal not]).
+                            showIt ifTrue:[
+                                windowGroupFilterOrNil notNil ifTrue:[
+                                    showIt := windowGroupFilterOrNil includes:wg
+                                ]
+                            ]
+                        ] ifFalse:[
+                            showIt := false
+                        ].
+                    ].
+                    showIt ifTrue:[
+                        aBlock value: top value:(genLabel value:top).
+                        knownTopViews add: top.
+                    ]
+                ]
+            ]
+        ]
+    ].
+
+    "Created: / 27-04-2012 / 12:56:53 / cg"
+!
+
 findApplicationClass:classOrClassName nameSpace:aNameSpace
     "find some application, given the classes name.
      Look for it in Smalltalk and the given nameSpace"
@@ -632,51 +708,19 @@
     "a helper for find & destroy and find & raise operations;
      let user choose a view and return it; return nil on cancel"
 
-    |knownTopViews nameList box genLabel|
-
-    knownTopViews := IdentitySet new.
-    Screen allScreens do:[:aScreen |
-        aScreen knownViews do:[:aView |
-            |top showIt wg|
-
-            aView notNil ifTrue:[
-                top := aView topView.
-                (top isKindOf:DebugView) ifTrue:[
-                    "/ although modal, show it.
-                    showIt := top realized
-                ] ifFalse:[
-                    wg := top windowGroup.
-                    showIt := (wg notNil and:[wg isModal not]).
-                    showIt ifTrue:[
-                        windowGroupFilterOrNil notNil ifTrue:[
-                            showIt := windowGroupFilterOrNil includes:wg
-                        ]
-                    ]
-                ].
-                showIt ifTrue:[
-                    knownTopViews add:top
-                ]
-            ]
-        ]
-    ].
-
-    genLabel := [:v | |app appName|
-                    app := v application.
-                    appName := (app isNil 
-                                    ifTrue:[''] 
-                                    ifFalse:[app class nameWithoutPrefix,': ']).
-                    appName , '"' , (v label ? 'aView') , '"'
-                ].
-
-    knownTopViews := knownTopViews asOrderedCollection.
-    knownTopViews sort:[:v1 :v2 |
-                                (genLabel value:v1) < (genLabel value:v2).
-                       ].
-
-    nameList := knownTopViews collect:[:v |
-                                        |isDead wg p l|
-
-                                        l := genLabel value:v.
+    |knownTopViewsAndLabels nameList box|
+
+    knownTopViewsAndLabels := OrderedCollection new.
+    self allTopViewsFilteringWindowGroups: windowGroupFilterOrNil withLabelsDo: [:v :lbl |
+        knownTopViewsAndLabels add:(lbl -> v)
+    ].
+    knownTopViewsAndLabels sort:[:a :b | a key < b key].
+
+    nameList := knownTopViewsAndLabels collect:[:lblAndView |
+                                        |v l isDead wg p|
+
+                                        l := lblAndView key.
+                                        v := lblAndView value.
                                         v device == Display ifFalse:[
                                             l := l , ' [' , (v device displayName ? '?') , ']'
                                         ].
@@ -691,7 +735,7 @@
 
     box := ListSelectionBox new.
     box selectionChangeCallback:[:selectionIndex |   |v|
-                                    v := knownTopViews at:box selectionIndex.
+                                    v := (knownTopViewsAndLabels at:box selectionIndex) value.
                                     v raise. box raise
                                 ].
     box noEnterField.
@@ -701,7 +745,7 @@
     box action:[:selection |
         |v|
 
-        v := knownTopViews at:box selectionIndex.
+        v := (knownTopViewsAndLabels at:box selectionIndex) value.
         box destroy.
         ^ v
     ].
@@ -709,7 +753,7 @@
     box open.
     ^ nil
 
-    "Modified: / 03-03-2012 / 05:15:11 / cg"
+    "Modified: / 27-04-2012 / 12:59:37 / cg"
 !
 
 openApplication: classOrClassName
@@ -2039,6 +2083,22 @@
         afterSeconds:(self window sensor shiftDown ifTrue:5 ifFalse:1)
 !
 
+hardcopyOfView: aView
+    "after a second (to allow redraw of views under menu ...),
+     save a view's contents as bitmap image."
+
+    aView topView raiseDeiconified.
+    aView topView makeFullyVisible.
+    "do a pushEvent, in case its me myself and I have to redraw first..."
+    self enqueueDelayedAction:[
+        Delay waitForSeconds:1.   "/ give view a chance to redraw itself.
+        self saveScreenImage:(Image fromView:(aView topView)) defaultName:'hardcopy'
+    ].
+    aView windowGroup processExposeEvents
+
+    "Created: / 27-04-2012 / 13:23:40 / cg"
+!
+
 iconifyAllWindows
     |setOfViews currentScreen|
 
@@ -2085,8 +2145,11 @@
         self warn:'Sorry - I cannot migrate a modalBox; please migrate the owning View.'.
         ^ self
     ].
-    self migrateWindow:aWindow withBackOption:(self confirm:'Show ''Return Back'' Button on the other display ?')
-
+    self 
+        migrateWindow:aWindow 
+        withBackOption:(self confirm:'Show ''Return Back'' Button on the other display ?')
+
+    "Modified (format): / 27-04-2012 / 13:15:23 / cg"
 !
 
 migrateWindow:aWindow withBackOption:withBackOption
@@ -2262,13 +2325,12 @@
         addTimedBlock:[
                         |v|
                         (v := Screen current viewFromUser) notNil ifTrue:[
-                            v topView raise.
-                            v topView makeFullyVisible.
-                            Delay waitForSeconds:0.5.   "/ give view a chance to redraw itself.
-                            self saveScreenImage:(Image fromView:(v topView)) defaultName:'hardcopy'
+                            self hardcopyOfView: v
                         ]
                       ]
         afterSeconds:(self window sensor shiftDown ifTrue:5 ifFalse:1)
+
+    "Modified: / 27-04-2012 / 13:24:23 / cg"
 !
 
 viewInspect
@@ -6909,13 +6971,13 @@
 !AbstractLauncherApplication class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/AbstractLauncherApplication.st,v 1.413 2012/03/26 09:54:15 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/AbstractLauncherApplication.st,v 1.415 2012/04/27 13:33:33 cg Exp $'
 !
 
 version_CVS
-    ^ '§Header: /cvs/stx/stx/libtool/AbstractLauncherApplication.st,v 1.413 2012/03/26 09:54:15 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libtool/AbstractLauncherApplication.st,v 1.415 2012/04/27 13:33:33 cg Exp §'
 !
 
 version_SVN
-    ^ '$Id: AbstractLauncherApplication.st 7978 2012-04-13 13:15:47Z vranyj1 $'
+    ^ '$Id: AbstractLauncherApplication.st 7990 2012-05-05 22:06:53Z vranyj1 $'
 ! !
--- a/MultiViewToolApplication.st	Sat May 05 22:28:49 2012 +0100
+++ b/MultiViewToolApplication.st	Sat May 05 23:06:53 2012 +0100
@@ -1177,7 +1177,16 @@
     |v|
 
     v := (workspaceHolder value) ? (self selectedWorkspacesTextView).
-    v perform:#paste: with:aString ifNotUnderstood:[].
+    [
+        v perform:#paste: with:aString.
+    ] on:MessageNotUnderstood do:[:ex|
+        "special code, to catch exeception sent from a scrolled view,
+         which has a different receiver tha v"
+        (ex selector ~~ #paste:) ifTrue:[
+            ex reject.
+        ].
+        "else ignore it"
+    ].
 
     "Modified: / 16-11-2010 / 15:27:39 / cg"
 !
@@ -1348,9 +1357,9 @@
 !MultiViewToolApplication class methodsFor:'documentation'!
 
 version_CVS
-    ^ '§Header: /cvs/stx/stx/libtool/MultiViewToolApplication.st,v 1.42 2011/07/07 14:12:48 vrany Exp §'
+    ^ '§Header: /cvs/stx/stx/libtool/MultiViewToolApplication.st,v 1.43 2012/04/21 18:38:24 stefan Exp §'
 !
 
 version_SVN
-    ^ '$Id: MultiViewToolApplication.st 7854 2012-01-30 17:49:41Z vranyj1 $'
+    ^ '$Id: MultiViewToolApplication.st 7990 2012-05-05 22:06:53Z vranyj1 $'
 ! !
--- a/NewLauncher.st	Sat May 05 22:28:49 2012 +0100
+++ b/NewLauncher.st	Sat May 05 23:06:53 2012 +0100
@@ -1330,6 +1330,17 @@
             showBusyCursorWhilePerforming: true
           )
          (MenuItem
+            label: 'Method Finder'
+            itemValue: openMethodFinder
+            translateLabel: true
+          )
+         (MenuItem
+            activeHelpKey: classesResourceMethods
+            label: 'Find Resource Methods...'
+            itemValue: browseResources
+            translateLabel: true
+          )
+         (MenuItem
             label: '-'
           )
          (MenuItem
@@ -1367,8 +1378,6 @@
         nil
         nil
       )
-
-    "Modified: / 28-02-2012 / 11:50:23 / cg"
 !
 
 classesSpecialBrowserMenu
@@ -1378,84 +1387,59 @@
     "Do not manually edit this!! If it is corrupted,
      the MenuEditor may not be able to read the specification."
 
+
     "
-     MenuEditor new openOnClass:NewLauncher andSelector:#classesMenu
-     (Menu new fromLiteralArrayEncoding:(NewLauncher classesMenu)) startUp
+     MenuEditor new openOnClass:NewLauncher andSelector:#classesSpecialBrowserMenu
+     (Menu new fromLiteralArrayEncoding:(NewLauncher classesSpecialBrowserMenu)) startUp
     "
 
     <resource: #menu>
 
     ^ 
      #(Menu
-              (
-               (MenuItem
-                  activeHelpKey: classesClassBrowser
-                  label: 'Class Browser On...'
-                  itemValue: startClassBrowser
-                  nameKey: classBrowserOn
-                  translateLabel: true
-                  showBusyCursorWhilePerforming: true
-                )
-               (MenuItem
-                  activeHelpKey: classesFullClassBrowser
-                  label: 'Full Class Browser On...'
-                  itemValue: startFullClassBrowser
-                  translateLabel: true
-                  showBusyCursorWhilePerforming: true
-                )
-               (MenuItem
-                  activeHelpKey: classesClassHierarchyBrowser
-                  label: 'Class Hierarchy Browser On...'
-                  itemValue: startClassHierarchyBrowser
-                  translateLabel: true
-                  showBusyCursorWhilePerforming: true
-                )
-               (MenuItem
-                  label: '-'
-                )
-               (MenuItem
-                  label: 'Method Finder'
-                  itemValue: openMethodFinder
-                  translateLabel: true
-                )
-               (MenuItem
-                  activeHelpKey: classesResourceMethods
-                  label: 'Find Resource Methods...'
-                  itemValue: browseResources
-                  translateLabel: true
-                )
-               (MenuItem
-                  label: '-'
-                )
-               (MenuItem
-                  enabled: monticelloRepositoryAvailable
-                  label: 'Monticello Repository Browser'
-                  itemValue: startMonticelloRepositoryBrowser
-                  translateLabel: true
-                  showBusyCursorWhilePerforming: true
-                )
-               (MenuItem
-                  label: '-'
-                )
-               (MenuItem
-                  label: 'Snapshot Image Browser...'
-                  itemValue: startSnapshotImageBrowser
-                  translateLabel: true
-                  showBusyCursorWhilePerforming: true
-                )
-               (MenuItem
-                  enabled: remoteImageBrowserAvailable
-                  label: 'Remote Image Browser...'
-                  itemValue: startRemoteImageBrowser
-                  translateLabel: true
-                  showBusyCursorWhilePerforming: true
-                )
-               )
-              nil
-              nil
-            )
-
-    "Modified: / 01-12-2011 / 21:35:52 / cg"
+        (
+         (MenuItem
+            activeHelpKey: classesClassBrowser
+            label: 'Class Browser On...'
+            itemValue: startClassBrowser
+            nameKey: classBrowserOn
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            activeHelpKey: classesFullClassBrowser
+            label: 'Full Class Browser On...'
+            itemValue: startFullClassBrowser
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            activeHelpKey: classesClassHierarchyBrowser
+            label: 'Class Hierarchy Browser On...'
+            itemValue: startClassHierarchyBrowser
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Snapshot Image Browser...'
+            itemValue: startSnapshotImageBrowser
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
+            enabled: remoteImageBrowserAvailable
+            label: 'Remote Image Browser...'
+            itemValue: startRemoteImageBrowser
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+         )
+        nil
+        nil
+      )
 !
 
 demosMenu
@@ -3057,6 +3041,7 @@
     "Do not manually edit this!! If it is corrupted,
      the MenuEditor may not be able to read the specification."
 
+
     "
      MenuEditor new openOnClass:NewLauncher andSelector:#windowsMenu
      (Menu new fromLiteralArrayEncoding:(NewLauncher windowsMenu)) startUp
@@ -3068,6 +3053,14 @@
      #(Menu
         (
          (MenuItem
+            label: 'Window'
+            translateLabel: true
+            submenuChannel: allWindowsMenu
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
             activeHelpKey: windowsRedrawAll
             label: 'Redraw All'
             itemValue: redrawAllWindows
@@ -3150,36 +3143,37 @@
             isVisible: windowTreeViewAvailable
           )
          (MenuItem
+            activeHelpKey: windowsViewTree
+            label: 'Window Tree'
+            itemValue: openWindowTreeInspector
+            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary viewInspect22x22Icon 'Window Tree')
+          )
+         (MenuItem
             activeHelpKey: flyByWindowInformation
             label: 'FlyBy Window Information'
             itemValue: showFlyByWindowInformation
             translateLabel: true
-            labelImage: (ResourceRetriever ToolbarIconLibrary viewInspect22x22Icon 'FlyBy Window Information')
-          )
-         (MenuItem
-            activeHelpKey: flyByWindowInformation
-            label: 'Window Tree Inspector'
-            itemValue: openWindowTreeInspector
-            translateLabel: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary viewFlyByInfo22x22Icon 'FlyBy Window Information')
           )
          (MenuItem
             label: '-'
           )
          (MenuItem
             activeHelpKey: windowsSelectAndInspect
-            label: 'Select and Inspect'
+            label: 'Select and Inspect...'
             itemValue: viewInspect
             translateLabel: true
           )
          (MenuItem
             activeHelpKey: windowsSelectAndInspect
-            label: 'Select and Browse'
+            label: 'Select and Browse...'
             itemValue: viewBrowse
             translateLabel: true
           )
          (MenuItem
             activeHelpKey: windowsSelectAndDestroy
-            label: 'Select and Destroy'
+            label: 'Select and Destroy...'
             itemValue: viewDestroy
             translateLabel: true
           )
@@ -3205,13 +3199,13 @@
           )
          (MenuItem
             activeHelpKey: windowsGrapWindow
-            label: 'Grab Window...'
+            label: 'Select and Grab Window...'
             itemValue: viewHardcopy
             translateLabel: true
           )
          (MenuItem
             activeHelpKey: windowsGrapWidget
-            label: 'Grab Widget...'
+            label: 'Select and Grab Widget...'
             itemValue: widgetHardcopy
             translateLabel: true
           )
@@ -4184,6 +4178,80 @@
 
 !NewLauncher methodsFor:'menus-dynamic'!
 
+allWindowsMenu
+    "returns a subMenu with one oeprations-submenu entry per open window"
+
+    |menu|
+
+    menu := Menu new receiver: self.
+    (self allTopViewsAndLabelsSortedFilteringWindowGroups:nil) do:[:assoc |
+        |view label submenu|
+
+        view := assoc value.
+        label := assoc key.
+
+        submenu := Menu new.
+        submenu addItem:(MenuItem new
+                            label: 'Raise Deiconified'; 
+                            value: [view raiseDeiconified; setForegroundWindow]; 
+                            translateLabel: true).
+        submenu addItem:(MenuItem new
+                            label: 'Iconify'; 
+                            value: [view collapse]; 
+                            translateLabel: true).
+        submenu addItem:(MenuItem new
+                            label: 'Migrate'; 
+                            value: [self migrateWindow:view]; 
+                            enabled:(view windowGroup isModal not);
+                            translateLabel: true).
+
+        submenu addSeparator.
+        submenu addItem:(MenuItem new
+                            label: 'Hardcopy'; 
+                            value: [self hardcopyOfView:view]; 
+                            translateLabel: true).
+        submenu addItem:(MenuItem new
+                            label: 'Inspect View'; 
+                            value: [view inspect]; 
+                            translateLabel: true).
+        submenu addItem:(MenuItem new
+                            label: 'Inspect Application'; 
+                            value: [view application inspect]; 
+                            enabled:(view application notNil);
+                            translateLabel: true).
+        submenu addSeparator.
+        submenu addItem:(MenuItem new
+                            label: 'Browse View Class'; 
+                            value: [view class browse]; 
+                            translateLabel: true).
+        submenu addItem:(MenuItem new
+                            label: 'Browse Application Class'; 
+                            value: [view application class browse]; 
+                            enabled:(view application notNil);
+                            translateLabel: true).
+        submenu addItem:(MenuItem new
+                            label: 'Debug Application'; 
+                            value: [Debugger openOn:view windowGroup process]; 
+                            translateLabel: true).
+
+        submenu addSeparator.
+        submenu addItem:(MenuItem new
+                            label: 'Close'; 
+                            value: [view destroy]; 
+                            translateLabel: true).
+
+        menu addItem:(MenuItem new
+                            label: label;                
+                            submenu: submenu; 
+                            translateLabel: false).
+    ].
+
+    menu findGuiResourcesIn:self.
+    ^menu
+
+    "Created: / 27-04-2012 / 13:20:06 / cg"
+!
+
 menuChangeHistory
     "returns a sub menu on the last changes"
 
@@ -4907,13 +4975,13 @@
 !NewLauncher class methodsFor:'documentation'!
 
 version
-    ^ '$Id: NewLauncher.st 7989 2012-05-05 21:28:49Z vranyj1 $'
+    ^ '$Header: /cvs/stx/stx/libtool/NewLauncher.st,v 1.433 2012/05/02 12:29:02 cg Exp $'
 !
 
 version_CVS
-    ^ '§Header: /cvs/stx/stx/libtool/NewLauncher.st,v 1.428 2012/03/27 10:44:45 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libtool/NewLauncher.st,v 1.433 2012/05/02 12:29:02 cg Exp §'
 !
 
 version_SVN
-    ^ '$Id: NewLauncher.st 7989 2012-05-05 21:28:49Z vranyj1 $'
+    ^ '$Id: NewLauncher.st 7990 2012-05-05 22:06:53Z vranyj1 $'
 ! !
--- a/Tools__NewSystemBrowser.st	Sat May 05 22:28:49 2012 +0100
+++ b/Tools__NewSystemBrowser.st	Sat May 05 23:06:53 2012 +0100
@@ -5785,6 +5785,12 @@
                   showBusyCursorWhilePerforming: true
                 )
                (MenuItem
+                  label: 'All Shared Pools'
+                  itemValue: browseMenuSharedPoolClasses
+                  translateLabel: true
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
                   label: '-'
                 )
                (MenuItem
@@ -6092,8 +6098,6 @@
         nil
         nil
       )
-
-    "Modified: / 29-09-2011 / 10:40:06 / cg"
 !
 
 bufferBaseMenu
@@ -16106,7 +16110,6 @@
     "Modified: / 29-09-2006 / 16:11:08 / cg"
 ! !
 
-
 !NewSystemBrowser class methodsFor:'menu specs-popup'!
 
 categoryPopUpMenu
@@ -17887,7 +17890,6 @@
     "Created: / 24.2.2000 / 23:28:06 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'aspects-organization'!
 
 categoryMenuVisible
@@ -18754,14 +18756,15 @@
     |holder|
 
     (holder := builder bindingAt:#sortByNameAndInheritance) isNil ifTrue:[
-        holder := (AspectAdaptor forAspect: #sortAndIndentClassesByInheritance)
-                    subject: UserPreferences current.
+        "now: I do not want that to be automatically forwarded to the prefs"
+        holder := (UserPreferences current sortAndIndentClassesByInheritance) asValue.
         builder aspectAt:#sortByNameAndInheritance put: holder.
     ].
     ^ holder
 
     "Created: / 04-07-2011 / 18:40:19 / cg"
     "Modified: / 08-07-2011 / 10:01:56 / jv"
+    "Modified (format): / 27-04-2012 / 20:02:24 / cg"
 !
 
 sortVariablesByName
@@ -21360,7 +21363,6 @@
     ^ UserPreferences current useSearchBarInBrowser or:[self codeView searchBarActionBlock notNil]
 ! !
 
-
 !NewSystemBrowser methodsFor:'change & update'!
 
 categorySelectionChanged
@@ -22514,21 +22516,11 @@
 browseMenuApplicationClasses
     "add a new buffer on all application classes"
 
-    |searchBlock|
-
-    searchBlock :=
-        [
-            Smalltalk allClassesForWhich:[:eachClass | eachClass isBrowserStartable].
-        ].
-
-    self
-        spawnClassBrowserForSearch:searchBlock
-        spec:#multipleClassBrowserSpec
-        sortBy:nil in:#newBuffer label:'Applications'
-        autoSelectIfOne:true
-        callBack:[:brwsr | brwsr classListApp markApplications:true ].
-
-    "Modified: / 06-10-2006 / 11:42:02 / cg"
+    self 
+        browseMenuClassesForWhich:[:cls | cls isBrowserStartable] 
+        label: 'Applications'
+
+    "Modified: / 18-04-2012 / 16:20:54 / cg"
 !
 
 browseMenuAutoloadedClasses
@@ -22734,6 +22726,35 @@
     "Modified: / 1.3.2000 / 12:01:06 / cg"
 !
 
+browseMenuClassesForWhich: aFilter label: label
+    "add a new buffer on all shared pools"
+
+    |searchBlock|
+
+    searchBlock := [
+                        |classes|
+
+                        classes := OrderedCollection new.
+
+                        Smalltalk allClassesDo:[:eachClass |
+                            (aFilter value: eachClass) ifTrue:[
+                                classes add:eachClass
+                            ]
+                        ].
+                        classes
+                  ].
+
+    self
+        spawnClassBrowserForSearch:searchBlock
+        spec:#multipleClassBrowserSpec
+        sortBy:nil in:#newBuffer label:label
+        autoSelectIfOne:true
+        callBack:[:brwsr | brwsr classListApp markApplications:true ].
+
+    "Modified: / 06-07-2011 / 14:05:37 / cg"
+    "Created: / 18-04-2012 / 16:15:09 / cg"
+!
+
 browseMenuClassesInAllChangeSets
     "add a new buffer on all classes in the all changeSets
      (i.e. that have been changed, but not yet checked into the source repository)"
@@ -23163,20 +23184,10 @@
 browseMenuHTTPServiceClasses
     "add a new buffer on all web service classes"
 
-    |searchBlock|
-
-    searchBlock :=
-        [
-            Smalltalk allClassesForWhich:[:eachClass | eachClass isBrowserStartable
-                                                       and:[eachClass inheritsFrom:HTTPService] ].
-        ].
-
-    self
-        spawnClassBrowserForSearch:searchBlock
-        spec:#multipleClassBrowserSpec
-        sortBy:nil in:#newBuffer label:'Web Services'
-        autoSelectIfOne:true
-        callBack:[:brwsr | brwsr classListApp markApplications:true ].
+    self 
+        browseMenuClassesForWhich:[:cls | cls isBrowserStartable
+                                          and:[cls inheritsFrom:HTTPService]] 
+        label: 'Web Services'
 
     "Created: / 20-07-2007 / 10:02:14 / cg"
 !
@@ -23986,6 +23997,14 @@
     "Modified: / 25-11-2010 / 11:41:10 / cg"
 !
 
+browseMenuSharedPoolClasses
+    "add a new buffer on all shared pools"
+
+    self browseMenuClassesForWhich:[:cls | cls isSharedPool] label: 'Shared Pools'
+
+    "Created: / 18-04-2012 / 16:14:18 / cg"
+!
+
 browseMenuSpawnFullClassSource
     "open a browser showing full classes (file-like)"
 
@@ -24042,29 +24061,9 @@
 browseMenuTestCaseClasses
     "add a new buffer on all testcases"
 
-    |searchBlock|
-
-    searchBlock := [
-                        |classes|
-
-                        classes := OrderedCollection new.
-
-                        Smalltalk allClassesDo:[:eachClass |
-                            (eachClass isTestCaseLike) ifTrue:[
-                                classes add:eachClass
-                            ]
-                        ].
-                        classes
-                  ].
-
-    self
-        spawnClassBrowserForSearch:searchBlock
-        spec:#multipleClassBrowserSpec
-        sortBy:nil in:#newBuffer label:'TestCases'
-        autoSelectIfOne:true
-        callBack:[:brwsr | brwsr classListApp markApplications:true ].
-
-    "Modified: / 06-07-2011 / 14:05:37 / cg"
+    self browseMenuClassesForWhich:[:cls | cls isTestCaseLike] label: 'TestCases'
+
+    "Modified: / 18-04-2012 / 16:16:33 / cg"
 !
 
 browseMenuUnassignedMethods:openHow
@@ -24708,7 +24707,7 @@
 categoryMenuCleanUpChangeSet
     "remove all changes for the selected category-class(es) from the changeSet"
 
-    (self confirm:'This will remove all changes for all classes from the selected categories from the changeSet.\\Really cleanup ?' withCRs)
+    (self confirm:'This will remove all changes for all classes from the selected categories from the internal changeSet.\(They will still be in the change-file, in case of emergency.)\\Really cleanup ?' withCRs)
         ifFalse:[ ^ self].
 
     self withWaitCursorDo:[
@@ -35370,7 +35369,6 @@
     "Modified: / 28-02-2012 / 16:27:44 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-namespace'!
 
 nameSpaceMenuCheckOut
@@ -42796,10 +42794,10 @@
 !
 
 selectorMenuSaveRemove
-    "check for senders (and windowSpec/menuSpec refs) to methods selector,
+    "check for senders (and windowSpec/menuSpec refs) to method's selector,
      then confirm removal of the selected methods"
 
-    |selectorsToRemove selectorsToCheckForInvokation selectorsToCheckForSelectorUse
+    |selectorsToRemove methodsToRemove selectorsToCheckForInvokation selectorsToCheckForSelectorUse
      possiblyInvoked possiblyUsedAsSelector msg isAre answer selInfo methods brwsr numVersionMethods|
 
     selectorsToRemove := IdentitySet new.
@@ -42819,6 +42817,8 @@
     possiblyInvoked := IdentitySet new.
     possiblyUsedAsSelector := IdentitySet new.
 
+    methodsToRemove := self selectedMethodsValue copy.
+
     self withSearchCursorDo:[
         "/ search through all of the system
         Smalltalk allMethodsDo:[:mthd |
@@ -42840,7 +42840,7 @@
                 selectorsToRemove do:[:eachSelectorToRemove |
                     sent := mthd messagesSent.
                    (sent includes:eachSelectorToRemove) ifTrue:[
-                       (self selectedMethodsValue includesIdentical:mthd) ifFalse:[
+                       (methodsToRemove includesIdentical:mthd) ifFalse:[
                            possiblyInvoked add:mthd.
                        ]
                    ]
@@ -42850,7 +42850,7 @@
                 newFound := IdentitySet new.
                 selectorsToRemove do:[:eachSelectorToRemove |
                     (mthd refersToLiteral:eachSelectorToRemove) ifTrue:[
-                        (self selectedMethodsValue includesIdentical:mthd) ifFalse:[
+                        (methodsToRemove includesIdentical:mthd) ifFalse:[
                             possiblyUsedAsSelector add:mthd.
                         ]
                     ].
@@ -42893,17 +42893,19 @@
     ].
 
     answer := OptionBox
-                  request:((resources string:msg with:possiblyInvoked size printString with:possiblyUsedAsSelector size printString)
+                  request:((resources string:msg 
+                                        with:possiblyInvoked size 
+                                        with:possiblyUsedAsSelector size)
                            , '\\Really remove ?') withCRs
                   label:(resources string:'Attention')
                   image:(WarningBox iconBitmap)
-                  buttonLabels:(resources array:#( 'Cancel' 'Remove' 'Browse Methods'))
-                  values:#(false true #browse)
+                  buttonLabels:(resources array:#( 'Cancel' 'Remove' 'Remove then Browse Senders' 'Browse Senders'))
+                  values:#(false true #removeAndBrowse #browse )
                   default:#browse
                   onCancel:false.
 
      answer == false ifTrue:[^ self].
-     answer == #browse ifTrue:[
+     (answer == #browse or:[answer == #removeAndBrowse]) ifTrue:[
         methods := IdentitySet new.
         methods addAll:possiblyInvoked.
         methods addAll:possiblyUsedAsSelector.
@@ -42915,12 +42917,12 @@
         selectorsToRemove size == 1 ifTrue:[
             brwsr autoSearchPattern:selInfo
         ].
-        ^ self
+        answer == #browse ifTrue:[ ^ self ].
+        "/ fall into remove
      ].
-
-     self doRemoveSelectedMethodsUnconfirmed
-
-    "Modified: / 28-02-2012 / 16:30:03 / cg"
+     self doRemoveMethodsUnconfirmed:methodsToRemove
+
+    "Modified: / 28-04-2012 / 11:12:03 / cg"
 !
 
 selectorMenuSelectMethodsWithString
@@ -44038,7 +44040,6 @@
     "Modified: / 28-02-2012 / 16:48:38 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-variables'!
 
 browseVarRefsOrModsWithTitle:browserTitle boxTitle:boxTitle variables:varType access:accessType all:browseAll
@@ -51158,7 +51159,6 @@
     ^ navigationState projectListApplication
 ! !
 
-
 !NewSystemBrowser methodsFor:'private-history'!
 
 lastSearchPatterns
@@ -56097,7 +56097,7 @@
             arguments:#().
         ^ true
     ].
-    (rawKey == #Delete) ifTrue:[
+    ((key == #Cut) or:[rawKey == #Delete]) ifTrue:[
         self
             enqueueMessage:#classMenuRemove
             for:self
@@ -56112,6 +56112,8 @@
         ^ true
     ].
     ^ false
+
+    "Modified: / 27-04-2012 / 13:08:06 / cg"
 !
 
 keyInCodeView:key rawKey:rawKey
@@ -56184,9 +56186,9 @@
             arguments:#().
         ^ true
     ].
-    (rawKey == #Delete) ifTrue:[
+    ((key == #Cut) or:[rawKey == #Delete]) ifTrue:[
         self
-            enqueueMessage:#selectorMenuRemove
+            enqueueMessage:#selectorMenuSaveRemove
             for:self
             arguments:#().
         ^ true
@@ -56221,6 +56223,8 @@
     "/        ^ true
     "/    ].
     ^ false
+
+    "Modified: / 27-04-2012 / 13:08:15 / cg"
 !
 
 keyInProjectListView:key rawKey:rawKey
@@ -56250,7 +56254,7 @@
 
     |variablesToRemove|
 
-    (rawKey == #Delete) ifTrue:[
+    ((key == #Cut) or:[rawKey == #Delete]) ifTrue:[
         variablesToRemove := self selectedVariables value.
         variablesToRemove size > 0 ifTrue:[
             self
@@ -56268,6 +56272,8 @@
         ^ true
     ].
     ^ false
+
+    "Modified: / 27-04-2012 / 13:08:35 / cg"
 !
 
 processEvent:anEvent
@@ -56606,15 +56612,15 @@
 !NewSystemBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__NewSystemBrowser.st 7985 2012-04-21 08:36:31Z vranyj1 $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1741 2012/04/28 16:13:27 cg Exp $'
 !
 
 version_CVS
-    ^ '§Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1738 2012/04/06 14:00:08 stefan Exp §'
+    ^ '§Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1741 2012/04/28 16:13:27 cg Exp §'
 !
 
 version_SVN
-    ^ '$Id: Tools__NewSystemBrowser.st 7985 2012-04-21 08:36:31Z vranyj1 $'
+    ^ '$Id: Tools__NewSystemBrowser.st 7990 2012-05-05 22:06:53Z vranyj1 $'
 ! !
 
 NewSystemBrowser initialize!
--- a/WorkspaceApplication.st	Sat May 05 22:28:49 2012 +0100
+++ b/WorkspaceApplication.st	Sat May 05 23:06:53 2012 +0100
@@ -677,6 +677,7 @@
     "Do not manually edit this!! If it is corrupted,
      the MenuEditor may not be able to read the specification."
 
+
     "
      MenuEditor new openOnClass:WorkspaceApplication andSelector:#editMenu
      (Menu new fromLiteralArrayEncoding:(WorkspaceApplication editMenu)) startUp
@@ -716,16 +717,19 @@
             label: '-'
           )
          (MenuItem
+            enabled: hasSelectionInActiveWorkspace
             label: 'Copy as Sniplet...'
             itemValue: addSelectionToSniplets
             translateLabel: true
           )
          (MenuItem
+            enabled: selectedWorkspaceIsTextView
             label: 'Paste Sniplet...'
             itemValue: pasteSniplet
             translateLabel: true
           )
          (MenuItem
+            enabled: selectedWorkspaceIsTextView
             label: 'Manage Sniplets...'
             itemValue: manageSniplets
             translateLabel: true
@@ -743,12 +747,14 @@
             isVisible: thisIsASmalltalkWorkspace
           )
          (MenuItem
+            enabled: selectedWorkspaceIsTextView
             label: 'Filter Text...'
             itemValue: filterText
             translateLabel: true
             isVisible: thisIsASmalltalkWorkspace
           )
          (MenuItem
+            enabled: selectedWorkspaceIsTextView
             label: 'Process Text...'
             itemValue: processText
             translateLabel: true
@@ -786,6 +792,7 @@
                   isVisible: thisIsASmalltalkWorkspace
                 )
                (MenuItem
+                  enabled: hasSelectionInActiveWorkspace
                   label: 'Translate (babelFish)'
                   translateLabel: true
                   isVisible: thisIsASmalltalkWorkspace
@@ -1017,6 +1024,7 @@
     "Do not manually edit this!! If it is corrupted,
      the MenuEditor may not be able to read the specification."
 
+
     "
      MenuEditor new openOnClass:WorkspaceApplication andSelector:#executionMenu
      (Menu new fromLiteralArrayEncoding:(WorkspaceApplication executionMenu)) startUp
@@ -1060,6 +1068,21 @@
           )
          (MenuItem
             enabled: hasSelectionInActiveWorkspace
+            label: 'TimeIt'
+            itemValue: timeIt
+            translateLabel: true
+          )
+         (MenuItem
+            enabled: hasSelectionInActiveWorkspace
+            label: 'SpyOnIt'
+            itemValue: spyOnIt
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSelectionInActiveWorkspace
             label: 'Browse Class'
             itemValue: browseIt
             translateLabel: true
@@ -1076,21 +1099,6 @@
             itemValue: browseReferencesToIt
             translateLabel: true
           )
-         (MenuItem
-            label: '-'
-          )
-         (MenuItem
-            enabled: hasSelectionInActiveWorkspace
-            label: 'TimeIt'
-            itemValue: timeIt
-            translateLabel: true
-          )
-         (MenuItem
-            enabled: hasSelectionInActiveWorkspace
-            label: 'SpyOnIt'
-            itemValue: spyOnIt
-            translateLabel: true
-          )
          )
         nil
         nil
@@ -1363,6 +1371,7 @@
     "Do not manually edit this!! If it is corrupted,
      the MenuEditor may not be able to read the specification."
 
+
     "
      MenuEditor new openOnClass:WorkspaceApplication andSelector:#smalltalkMenu
      (Menu new fromLiteralArrayEncoding:(WorkspaceApplication smalltalkMenu)) startUp
@@ -1374,11 +1383,13 @@
      #(Menu
         (
          (MenuItem
+            enabled: hasSelectionInActiveWorkspace
             label: 'FileIn Text'
             itemValue: fileInText
             translateLabel: true
           )
          (MenuItem
+            enabled: hasSelectionInActiveWorkspace
             label: 'ChangeList on Text'
             itemValue: changesBrowserOnText
             translateLabel: true
@@ -1387,11 +1398,13 @@
             label: '-'
           )
          (MenuItem
+            enabled: selectedWorkspaceIsTextView
             label: 'Add Global Variable...'
             itemValue: addGlobalVariable
             translateLabel: true
           )
          (MenuItem
+            enabled: selectedWorkspaceIsTextView
             label: 'Remove Global Variable...'
             itemValue: removeGlobalVariable
             translateLabel: true
@@ -1400,11 +1413,13 @@
             label: '-'
           )
          (MenuItem
+            enabled: selectedWorkspaceIsTextView
             label: 'Add SharedPool...'
             itemValue: addSharedPool
             translateLabel: true
           )
          (MenuItem
+            enabled: selectedWorkspaceIsTextView
             label: 'Remove SharedPool...'
             itemValue: removeSharedPool
             translateLabel: true
@@ -1527,6 +1542,7 @@
     "Do not manually edit this!! If it is corrupted,
      the MenuEditor may not be able to read the specification."
 
+
     "
      MenuEditor new openOnClass:WorkspaceApplication andSelector:#workspaceMenu
      (Menu new fromLiteralArrayEncoding:(WorkspaceApplication workspaceMenu)) startUp
@@ -1538,6 +1554,7 @@
      #(Menu
         (
          (MenuItem
+            enabled: selectedWorkspaceIsTextView
             label: 'Add Workspace Variable...'
             itemValue: addWorkspaceVariable
             translateLabel: true
@@ -1711,6 +1728,7 @@
 
     workspace := self new.
     workspace allButOpen.
+    workspace initialSyntax:SmalltalkLanguage instance.
 
     Error handle:[:ex |
         ex reject.
@@ -1730,7 +1748,7 @@
 
     "Modified: / 21-06-2011 / 08:58:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Created: / 14-07-2011 / 13:11:32 / Administrator"
-    "Modified (format): / 28-09-2011 / 07:51:24 / cg"
+    "Modified: / 26-04-2012 / 12:45:50 / cg"
 !
 
 openMyWorkspace_old
@@ -1773,7 +1791,8 @@
     wsApp := self new.
     wsApp allButOpen.
 
-    (wsApp builder componentAt:'NoteBook') destroyTabAction:[].
+    (wsApp builder componentAt:'NoteBook')
+        destroyTabAction:[:tabIndex| wsApp removeWorkspace:tabIndex].
 
     wsApp window extent:640@400.
 
@@ -2029,7 +2048,7 @@
 !
 
 hasHistory
-    ^ Workspace doItHistory size > 0.
+    ^ Workspace doItHistory notEmptyOrNil.
 !
 
 hasInfoLabel
@@ -2042,8 +2061,10 @@
 
 languageInfoLabelHolder
     ^ BlockValue
-        with:[:syntax | 'Syntax: ',syntax name ]
+        with:[:syntax | "'Syntax: ',"syntax name ]
         argument:self syntaxHolder
+
+    "Modified: / 26-04-2012 / 12:53:20 / cg"
 !
 
 modeLabelHolder
@@ -2125,6 +2146,10 @@
     ^(Smalltalk at:#WebKitView) notNil
 
     "Created: / 11-06-2011 / 00:30:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+selectedWorkspaceIsTextView
+    ^ self selectedWorkspacesTextView notNil
 ! !
 
 !WorkspaceApplication methodsFor:'autofetch selection'!
@@ -2330,6 +2355,12 @@
     ^ super closeRequest
 !
 
+initialSyntax: aLanguage
+    self syntaxHolder value: aLanguage.
+
+    "Created: / 26-04-2012 / 12:26:48 / cg"
+!
+
 postBuildEditModeInfoLabel:aLabel
     aLabel menuHolder:self; menuMessage:#editModeInfoLabelMenu.
 
@@ -2422,7 +2453,12 @@
 !
 
 browseIt
-    self selectedWorkspacesTextView browseIt
+    |ws|
+
+    ws := self selectedWorkspacesTextView.
+    ws notNil ifTrue:[
+        ws browseIt
+    ]
 !
 
 browseReferencesToIt
@@ -2434,7 +2470,12 @@
 !
 
 doIt
-    self selectedWorkspacesTextView doIt
+    |ws|
+
+    ws := self selectedWorkspacesTextView.
+    ws notNil ifTrue:[
+        ws doIt
+    ]
 !
 
 inspectIt
@@ -2445,6 +2486,10 @@
     |ws|
 
     ws := self selectedWorkspacesTextView.
+    ws isNil ifTrue:[
+        "there is none - i.e. it is a HTMLDocumentView"
+        ^ self.
+    ].
     ws
         do:(ws selection) 
         withValueDo:[:result | 
@@ -2625,7 +2670,12 @@
 !
 
 printIt
-    self selectedWorkspacesTextView printIt
+    |ws|
+
+    ws := self selectedWorkspacesTextView.
+    ws notNil ifTrue:[
+        ws printIt
+    ]
 !
 
 processText
@@ -2768,8 +2818,12 @@
         ^ self
     ].
     poolsConsideredInDoIts remove:poolToRemove.
-    workspaces do:[:ws |
-        ws poolsConsideredInDoits:poolsConsideredInDoIts.
+    workspaces do:[:eachWs |    
+        |ws|
+        ws := self workspaceViewOfView:eachWs.
+        ws notNil ifTrue:[
+            ws poolsConsideredInDoIts:poolsConsideredInDoIts.
+        ].
     ].
 
     "Modified: / 24-11-2006 / 12:44:16 / cg"
@@ -2827,10 +2881,10 @@
     ].
     aWorkspace compilerClass:(language evaluatorClass "self compilerClassForSyntaxName:syntax").
     self smalltalkMenuEnabledHolder value:(language isSmalltalk).
-    LastLanguage := language.
 
     "Created: / 08-02-2011 / 21:32:39 / cg"
     "Modified: / 17-08-2011 / 08:47:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 26-04-2012 / 12:04:42 / cg"
 !
 
 spyOnIt
@@ -3079,8 +3133,12 @@
         poolsConsideredInDoIts := (Set new).
     ].
     poolsConsideredInDoIts add:poolToAdd.
-    workspaces do:[:ws |
-        ws poolsConsideredInDoIts:poolsConsideredInDoIts.
+    workspaces do:[:eachWs |    
+        |ws|
+        ws := self workspaceViewOfView:eachWs.
+        ws notNil ifTrue:[
+            ws poolsConsideredInDoIts:poolsConsideredInDoIts.
+        ].
     ].
 
     "Modified: / 24-11-2006 / 12:44:16 / cg"
@@ -3179,8 +3237,8 @@
             |remaining wg|
 
             confirmed := false.
-            [AbsoluteTime now < tEnd ] whileTrue:[
-                remaining := tEnd - AbsoluteTime now.
+            [Timestamp now < tEnd ] whileTrue:[
+                remaining := tEnd - Timestamp now.
                 l label:'Waiting... [',(TimeDuration seconds:remaining) printString,']'.
                 Delay waitForSeconds:1.
             ].
@@ -3283,7 +3341,7 @@
         file ifNotNil:[folder add: (Bookmark forFile: file)].
         folder model save.
     ] ifFalse:[
-        self halt:'not yet implemented'
+        self shouldImplement
     ]
 
     "Created: / 21-06-2011 / 08:56:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -3701,10 +3759,11 @@
     (ws respondsTo:#languageHolder:) ifTrue:[
         ws languageHolder:self syntaxHolder
     ].
+    ws compilerClass:(self syntaxHolder value evaluatorClass).
     ^ ws
 
     "Modified: / 14-07-2010 / 18:47:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified (format): / 05-07-2011 / 14:18:56 / cg"
+    "Modified: / 26-04-2012 / 12:58:28 / cg"
 !
 
 isModifiedWorkspace:aView 
@@ -3738,9 +3797,9 @@
     ^ history first
 !
 
-syntaxNameForCompilerClass:aClass 
+syntaxFromEvaluatorClass:aClass 
     ProgrammingLanguage allDo:[:lang | 
-        lang compilerClass = aClass ifTrue:[
+        lang evaluatorClass = aClass ifTrue:[
             ^ lang
         ]
     ].
@@ -3748,9 +3807,11 @@
      "Unknown language - should not happen :-)"
     ^ nil
 
-    "Modified (format): / 05-07-2011 / 14:19:17 / cg"
+    "Created: / 26-04-2012 / 12:59:32 / cg"
 !
 
+
+
 workspaceSelectionChanged
     "attach line, col and mode holders to the current workspace window"
 
@@ -3763,11 +3824,11 @@
         selectedWorkspace := selectedWorkspace scrolledView
     ].
 
-    compilerClass := (selectedWorkspace isKindOf:Workspace) not
-                        ifTrue:[Compiler] 
-                        ifFalse:[selectedWorkspace compilerClass].
-
-    self syntaxHolder setValue:(self syntaxNameForCompilerClass:compilerClass).
+    compilerClass := selectedWorkspace 
+                            perform: #compilerClass 
+                            ifNotUnderstood: [Compiler]. 
+
+    self syntaxHolder value:(self syntaxFromEvaluatorClass:compilerClass).
 
     (selectedWorkspace notNil and:[ selectedWorkspace scrolledView isTextView ]) ifTrue:[
         self cursorLineHolder valueHolder:( selectedWorkspace perform:#cursorLineHolder ifNotUnderstood:nil ).
@@ -3796,6 +3857,7 @@
     ]
 
     "Modified: / 11-06-2011 / 00:06:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 26-04-2012 / 13:01:55 / cg"
 ! !
 
 !WorkspaceApplication methodsFor:'user actions'!
@@ -3807,6 +3869,13 @@
     "Created: / 14-07-2007 / 16:46:58 / cg"
 !
 
+syntaxChangedByUser
+    "remember as default for next new workspace"
+    LastLanguage := self syntaxHolder value.
+
+    "Created: / 26-04-2012 / 12:31:04 / cg"
+!
+
 toolBarVisibilityChanged
     super toolBarVisibilityChanged.
     UserPreferences current toolbarVisibleInWorkspace:(self toolBarVisibleHolder value).
@@ -3818,13 +3887,13 @@
 !WorkspaceApplication class methodsFor:'documentation'!
 
 version
-    ^ '$Id: WorkspaceApplication.st 7943 2012-03-19 10:03:58Z vranyj1 $'
+    ^ '$Header: /cvs/stx/stx/libtool/WorkspaceApplication.st,v 1.219 2012/04/26 12:15:48 cg Exp $'
 !
 
 version_CVS
-    ^ '§Header: /cvs/stx/stx/libtool/WorkspaceApplication.st,v 1.216 2012/02/04 11:00:03 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libtool/WorkspaceApplication.st,v 1.219 2012/04/26 12:15:48 cg Exp §'
 !
 
 version_SVN
-    ^ '$Id: WorkspaceApplication.st 7943 2012-03-19 10:03:58Z vranyj1 $'
+    ^ '$Id: WorkspaceApplication.st 7990 2012-05-05 22:06:53Z vranyj1 $'
 ! !
--- a/resources/de.rs	Sat May 05 22:28:49 2012 +0100
+++ b/resources/de.rs	Sat May 05 23:06:53 2012 +0100
@@ -1,6 +1,6 @@
 #encoding utf8
 
-; $Header: /cvs/stx/stx/libtool/resources/de.rs,v 1.162 2012/03/28 08:03:48 cg Exp $
+; $Header: /cvs/stx/stx/libtool/resources/de.rs,v 1.164 2012/05/03 07:35:30 cg Exp $
 ;
 ; German Workspace (and other tools) resources
 ;
@@ -981,11 +981,14 @@
 'search for resource methods in'               'Resource Methoden suchen in'
 
 'Browse or Search Class'                    'Klasse suchen oder browsen'
+'Browse or Search'                          'Suchen oder browsen'
 'Class to find'                             'Gesuchte Klasse'
 'Class(es) to find'                         'Gesuchte Klasse(n)'
 'Class to browse'                           'Klasse browsen'
 'Class(es) to browse'                       'Klasse(n) browsen'
 '(TAB to complete; matchPattern allowed):'  '(TAB zum vervollständigen; Muster erlaubt):'
+'Matching Classes'                          'Passende Klassen'
+'Show Full Name (Do not Strip off namespace)'   'Gesamten Namen anzeigen (Namensraum nicht abschneiden)'
 
 'Response to'       'Antwort auf'
 'Response to'          'Antwort auf'
@@ -2813,11 +2816,12 @@
 'Window Tree (All on All Screens)'        'Fensterhierarchie (alle Bildschirme)'
 'Inspect view'                          'Fenster inspizieren'
 'Destroy view'                          'Fenster schließen'
-'Select And Inspect View'               'Fenster inspizieren'
-'Select and Inspect'                    'Fenster inspizieren'
-'Select And Destroy View'               'Fenster schließen'
-'Select and Destroy'                    'Fenster schließen'
-'Select and Migrate To'              'Fenster migrieren nach'
+'Select And Inspect View'               'Auswählen und inspizieren'
+'Select and Inspect'                    'Auswählen und inspizieren'
+'Select And Destroy View'               'Auswählen und schließen'
+'Select and Destroy'                    'Auswählen und schließen'
+'Select and Migrate To'                 'Auswählen und migrieren nach'
+'Select and Browse'                     'Auswählen und browsen'
 'Iconify All'                           'Alle Fenster minimieren'
 'Iconify all'                           'Alle Fenster minimieren'
 'De-iconify All'                        'Alle Fenster zeigen'