Merge jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Tue, 01 Sep 2015 06:43:01 +0100
branchjv
changeset 15825 462e872a3fb6
parent 15824 6e92a0aa4e55 (current diff)
parent 15823 682d7a61504c (diff)
child 15828 833ae1c37126
child 15839 aac7b8d588ce
Merge
AbstractFileApplicationNoteBookComponent.st
FileApplicationNoteBook.st
FileBrowserV2.st
Tools__LintHighlighter.st
Tools__MethodRewriter.st
Tools__NavigationState.st
Tools__NewSystemBrowser.st
WorkspaceApplication.st
--- a/AbstractFileApplicationNoteBookComponent.st	Mon Aug 31 09:35:59 2015 +0100
+++ b/AbstractFileApplicationNoteBookComponent.st	Tue Sep 01 06:43:01 2015 +0100
@@ -131,6 +131,10 @@
     ^ ''
 !
 
+cursorLineAndColumnLabelHolder
+    ^ ''
+!
+
 cursorLineLabelHolder
     ^ ''
 !
@@ -348,10 +352,10 @@
 !AbstractFileApplicationNoteBookComponent class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/AbstractFileApplicationNoteBookComponent.st,v 1.26 2015-04-22 17:21:44 stefan Exp $'
+    ^ '$Header$'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/AbstractFileApplicationNoteBookComponent.st,v 1.26 2015-04-22 17:21:44 stefan Exp $'
+    ^ '$Header$'
 ! !
 
--- a/FileApplicationNoteBook.st	Mon Aug 31 09:35:59 2015 +0100
+++ b/FileApplicationNoteBook.st	Tue Sep 01 06:43:01 2015 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 2002 by eXept Software AG
               All Rights Reserved
@@ -938,6 +940,14 @@
         ]
 !
 
+cursorLineAndColumnLabelHolder
+    ^ self 
+        aspectFor:#cursorLineAndColumnLabelHolder 
+        ifAbsent:[
+            IndirectValue for:(' ' asValue)
+        ]
+!
+
 cursorLineLabelHolder
     ^ self 
         aspectFor:#cursorLineLabelHolder 
@@ -1055,6 +1065,7 @@
 
     self cursorLineLabelHolder valueHolder: (app cursorLineLabelHolder).
     self cursorColLabelHolder valueHolder: (app cursorColLabelHolder).
+    self cursorLineAndColumnLabelHolder valueHolder: (app cursorLineAndColumnLabelHolder).
     self modeLabelHolder valueHolder: (app modeLabelHolder).
     self fileEncodingHolder valueHolder: (app fileEncodingHolder).
 
@@ -4967,7 +4978,6 @@
             label: 'Save'
             itemValue: accept
             nameKey: Save
-            translateLabel: true
             isButton: true
             isVisible: saveButtonVisible
             labelImage: (ResourceRetriever ToolbarIconLibrary saveTextToFileIcon)
@@ -4978,7 +4988,6 @@
             label: 'Save As...'
             itemValue: saveFileAs
             nameKey: SaveAs
-            translateLabel: true
             isButton: true
             isVisible: saveAsButtonVisible
             labelImage: (ResourceRetriever ToolbarIconLibrary saveToFileAsIcon)
@@ -4989,7 +4998,6 @@
             label: 'Reload'
             itemValue: reload
             nameKey: Reload
-            translateLabel: true
             isButton: true
             isVisible: reloadButtonVisible
             labelImage: (ResourceRetriever ToolbarIconLibrary reloadTextFromFileIcon)
@@ -5000,7 +5008,6 @@
             label: 'Select in Browser'
             itemValue: selectInBrowser
             nameKey: SelectInBrowser
-            translateLabel: true
             isButton: true
             isVisible: selectInBrowserButtonVisible
             labelImage: (ResourceRetriever ToolbarIconLibrary searchFileIcon)
@@ -5014,7 +5021,6 @@
             label: 'Print'
             itemValue: doPrint
             nameKey: Print
-            translateLabel: true
             isButton: true
             labelImage: (ResourceRetriever ToolbarIconLibrary printerIcon)
           )
@@ -5022,10 +5028,17 @@
             label: '-'
           )
          (MenuItem
+            activeHelpKey: showDifferences
+            label: 'Diff to Current'
+            itemValue: openDiffView
+            isButton: true
+            isVisible: diffTextButtonVisible
+            labelImage: (ResourceRetriever ToolbarIconLibrary diffIcon)
+          )
+         (MenuItem
             activeHelpKey: toggleHexDisplay
             enabled: enableHexToggle
             label: 'Hex'
-            translateLabel: true
             isButton: true
             indication: printAsHexDump
             labelImage: (ResourceRetriever ToolbarIconLibrary hexToggleIcon)
@@ -5035,19 +5048,9 @@
             isVisible: diffTextButtonVisible
           )
          (MenuItem
-            activeHelpKey: showDifferences
-            label: 'Diff to Current'
-            itemValue: openDiffView
-            translateLabel: true
-            isButton: true
-            isVisible: diffTextButtonVisible
-            labelImage: (ResourceRetriever ToolbarIconLibrary diffIcon)
-          )
-         (MenuItem
             activeHelpKey: closeTabButton
             label: 'Close'
             itemValue: doClose
-            translateLabel: true
             isButton: true
             startGroup: right
             isVisible: closeButtonShown
@@ -6096,6 +6099,10 @@
         argument:editView cursorColHolder.
 !
 
+cursorLineAndColumnLabelHolder
+    ^ editView cursorLineAndColumnLabelHolder.
+!
+
 cursorLineLabelHolder
     ^ BlockValue 
         with:[:v | v printString]
@@ -7489,10 +7496,10 @@
 !FileApplicationNoteBook class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/FileApplicationNoteBook.st,v 1.320 2015-05-26 01:26:59 cg Exp $'
+    ^ '$Header$'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/FileApplicationNoteBook.st,v 1.320 2015-05-26 01:26:59 cg Exp $'
+    ^ '$Header$'
 ! !
 
--- a/FileBrowserV2.st	Mon Aug 31 09:35:59 2015 +0100
+++ b/FileBrowserV2.st	Tue Sep 01 06:43:01 2015 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 2002 by eXept Software AG
 	      All Rights Reserved
@@ -326,6 +328,9 @@
 #columnLabel
 'The text-cursor''s column number'
 
+#lineAndColumnLabel
+'The text-cursor''s line and column number'
+
 #encodingLabel
 'The file''s encoding (Right-click to change)'
 
@@ -523,7 +528,7 @@
                          comboList: listOfDeviceDrives
                          useIndex: false
                          hidePullDownMenuButton: false
-                         extent: (Point 53 23)
+                         extent: (Point 53 21)
                        )
                       (VariableHorizontalPanelSpec
                          name: 'VariableHorizontalPanel1'
@@ -639,7 +644,7 @@
            )
           (ViewSpec
              name: 'InfoBox'
-             layout: (LayoutFrame 0 0 -26 1 0 1 0 1)
+             layout: (LayoutFrame 0 0 -26 1 -16 1 0 1)
              level: 0
              visibilityChannel: infoBarVisibleHolder
              component: 
@@ -660,6 +665,7 @@
                    layout: (LayoutFrame -318 1 2 0.0 -235 1 0 1.0)
                    activeHelpKey: encodingLabel
                    level: 0
+                   translateLabel: true
                    labelChannel: fileEncodingHolder
                    adjust: right
                    menu: encodingMenu
@@ -669,6 +675,7 @@
                    layout: (LayoutFrame -235 1 2 0.0 -220 1 20 0.0)
                    activeHelpKey: encodingLockedLabel
                    level: 0
+                   translateLabel: true
                    labelChannel: fileEncodingLockImageHolder
                    adjust: right
                    menu: encodingMenu
@@ -694,7 +701,7 @@
                       (ProgressIndicatorSpec
                          name: 'ProgressIndicator1'
                          layout: (LayoutFrame 5 0.0 -7 0.5 -5 1.0 7 0.5)
-                         backgroundColor: (Color 0.0 66.666666666666671 66.666666666666671)
+                         backgroundColor: (Color 0.0 66.75 66.75)
                          isActivityIndicator: true
                        )
                       )
@@ -723,24 +730,13 @@
                    postBuildCallback: postBuildEditModeInfoLabel:
                  )
                 (LabelSpec
-                   label: 'L'
-                   name: 'LineLabel'
-                   layout: (LayoutFrame -55 1 1 0.0 -20 1 1 1.0)
-                   activeHelpKey: lineLabel
+                   label: 'L : C'
+                   name: 'LineAndColumnLabel'
+                   layout: (LayoutFrame -55 1 1 0.0 0 1 1 1.0)
+                   activeHelpKey: lineAndColumnLabel
                    level: -1
-                   translateLabel: true
-                   labelChannel: cursorLineLabelHolder
-                   adjust: right
-                 )
-                (LabelSpec
-                   label: 'C'
-                   name: 'ColLabel'
-                   layout: (LayoutFrame -20 1 1 0.0 0 1 1 1.0)
-                   activeHelpKey: columnLabel
-                   level: -1
-                   translateLabel: true
-                   labelChannel: cursorColLabelHolder
-                   adjust: right
+                   labelChannel: cursorLineAndColumnLabelHolder
+                   adjust: left
                  )
                 )
               
@@ -754,7 +750,7 @@
              level: 0
              borderWidth: 1
              visibilityChannel: previewVisibleHolder
-             backgroundColor: (Color 86.999313344014652 86.999313344014652 86.999313344014652)
+             backgroundColor: (Color 87.0 87.0 87.0)
              translateLabel: true
            )
           (ArbitraryComponentSpec
@@ -1886,6 +1882,16 @@
 	]
 !
 
+cursorLineAndColumnLabelHolder
+    ^ self
+        aspectFor:#cursorLineAndColumnLabelHolder
+        ifAbsent:[
+            self
+                applicationNamed:#FileApplicationNoteBook
+                ifPresentDo:[:appl | appl cursorLineAndColumnLabelHolder].
+        ]
+!
+
 cursorLineLabelHolder
     ^ self
 	aspectFor:#cursorLineLabelHolder
@@ -2331,7 +2337,7 @@
                     viewsName := eventView name.
 
                     anEvent isButtonMultiPressEvent ifTrue:[
-                        viewsName = 'LineLabel' ifTrue:[
+                        (viewsName = 'LineLabel' or:[viewsName = 'LineAndColumnLabel']) ifTrue:[
                             editor := subApp perform:#editView ifNotUnderstood:nil.
                             editor notNil ifTrue:[
                                 editor gotoLine
@@ -2589,11 +2595,11 @@
 !FileBrowserV2 class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2.st,v 1.231 2015-02-13 10:54:10 cg Exp $'
+    ^ '$Header$'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2.st,v 1.231 2015-02-13 10:54:10 cg Exp $'
+    ^ '$Header$'
 ! !
 
 
--- a/Tools__LintHighlighter.st	Mon Aug 31 09:35:59 2015 +0100
+++ b/Tools__LintHighlighter.st	Tue Sep 01 06:43:01 2015 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "
  COPYRIGHT (c) 2006 by eXept Software AG
               All Rights Reserved
@@ -148,7 +146,7 @@
 formatClassDefinition:source in:class elementsInto: elements
 
     formattingMethod := false.
-    ^ self format: source asText in: class
+    ^ self format: source asString asText in: class
 
     "Created: / 04-08-2011 / 23:44:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 02-12-2014 / 11:29:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
--- a/Tools__MethodRewriter.st	Mon Aug 31 09:35:59 2015 +0100
+++ b/Tools__MethodRewriter.st	Tue Sep 01 06:43:01 2015 +0100
@@ -77,20 +77,20 @@
 
 templateReplaceAtIfAbsentByAtAifAbsentPut
 
-    ^Array 
-        with:('Replace ','Dictionary>>#at:ifAbsent:'allBold,' by ','#at:ifAbsentPut:' allBold)
+    ^Array
+	with:('Replace ','Dictionary>>#at:ifAbsent:'allBold,' by ','#at:ifAbsentPut:' allBold)
 with: '``@dictionary
     at: ``@key
     ifAbsent:
-        [| `@temps |
-        `@.statements.
-        ``@dictionary at: ``@key put: ``@object]'
+	[| `@temps |
+	`@.statements.
+	``@dictionary at: ``@key put: ``@object]'
 with:'``@dictionary
     at: ``@key
     ifAbsentPut:
-        [| `@temps |
-        `@.statements.
-        ``@object]'
+	[| `@temps |
+	`@.statements.
+	``@object]'
 
     "Created: / 12-12-2007 / 11:08:01 / janfrog"
     "Modified: / 17-02-2008 / 08:35:17 / janfrog"
@@ -99,28 +99,28 @@
 
 templateReplaceIfNilByIsNilIfTrue
 
-    ^Array 
-        with:('Replace ','ifNil:' allBold,' by ','isNil ifTrue:' allBold)
-        with: '``@receiver ifNil: ``@block'
-        with: '``@receiver isNil ifTrue: ``@block'
+    ^Array
+	with:('Replace ','ifNil:' allBold,' by ','isNil ifTrue:' allBold)
+	with: '``@receiver ifNil: ``@block'
+	with: '``@receiver isNil ifTrue: ``@block'
 
     "Created: / 04-07-2011 / 19:25:06 / cg"
 !
 
 templateReplaceIfNotNilByNotNilIfTrue
 
-    ^Array 
-        with:('Replace ','ifNotNil:' allBold,' by ','notNil ifTrue:' allBold)
-        with: '``@receiver ifNotNil: ``@block'
-        with: '``@receiver notNil ifTrue: ``@block'
+    ^Array
+	with:('Replace ','ifNotNil:' allBold,' by ','notNil ifTrue:' allBold)
+	with: '``@receiver ifNotNil: ``@block'
+	with: '``@receiver notNil ifTrue: ``@block'
 !
 
 templateReplaceIsNilOrEmptyCollectionByIsEmptyOrNil
 
-    ^Array 
-        with:('Replace ','isNilOrEmptyCollection' allBold,' by ','isEmptyOrNil' allBold)
-        with: '``@receiver isNilOrEmptyCollection'
-        with: '``@receiver isEmptyOrNil'''
+    ^Array
+	with:('Replace ','isNilOrEmptyCollection' allBold,' by ','isEmptyOrNil' allBold)
+	with: '``@receiver isNilOrEmptyCollection'
+	with: '``@receiver isEmptyOrNil'''
 
     "Created: / 03-07-2011 / 21:59:47 / cg"
 !
@@ -130,10 +130,10 @@
 
     initials := OperatingSystem getLoginName.
 
-    ^Array 
-        with:('Replace ','self halt' allBold,' by ','self breakPoint: #' allBold ,initials)
-        with: 'self halt'
-        with: 'self breakPoint: #',initials
+    ^Array
+	with:('Replace ','self halt' allBold,' by ','self breakPoint: #' allBold ,initials)
+	with: 'self halt'
+	with: 'self breakPoint: #',initials
 
     "Modified: / 17-02-2008 / 08:35:09 / janfrog"
     "Created: / 04-07-2011 / 17:43:46 / cg"
@@ -141,10 +141,10 @@
 
 templateReplaceSelfHaltBySelfError
 
-    ^Array 
-        with:('Replace ','self halt'allBold,' by ','self error:''was: self halt''' allBold)
-        with: 'self halt'
-        with: 'self error:''was: self halt'''
+    ^Array
+	with:('Replace ','self halt'allBold,' by ','self error:''was: self halt''' allBold)
+	with: 'self halt'
+	with: 'self error:''was: self halt'''
 
     "Created: / 12-12-2007 / 11:29:51 / janfrog"
     "Modified: / 17-02-2008 / 08:35:09 / janfrog"
@@ -156,13 +156,13 @@
 
     |templateSelectors templatesHere|
 
-    templateSelectors := 
-        (self class selectors select:[:e|(e startsWith:'template') 
-            and:[e ~= #templates and:[e ~= #templatesSpec]]]).
+    templateSelectors :=
+	(self class selectors select:[:e|(e startsWith:'template')
+	    and:[e ~= #templates and:[e ~= #templatesSpec]]]).
 
     templatesHere := templateSelectors collect:[:e| (self perform:e) copyWith:nil ].
     templatesHere := templatesHere sort:[:a :b | a first < b first].
-    ^ templatesHere 
+    ^ templatesHere
 
     "
      self templates
@@ -181,7 +181,7 @@
      the UIHelpTool may not be able to read the specification."
 
     "
-     UIHelpTool openOnClass:Tools::MethodRewriter    
+     UIHelpTool openOnClass:Tools::MethodRewriter
     "
 
     <resource: #help>
@@ -216,75 +216,75 @@
 
     <resource: #canvas>
 
-    ^ 
+    ^
     #(FullSpec
        name: classesSpec
-       window: 
+       window:
       (WindowSpec
-         label: 'Classes'
-         name: 'Classes'
-         min: (Point 10 10)
-         bounds: (Rectangle 0 0 300 300)
+	 label: 'Classes'
+	 name: 'Classes'
+	 min: (Point 10 10)
+	 bounds: (Rectangle 0 0 300 300)
        )
-       component: 
+       component:
       (SpecCollection
-         collection: (
-          (LabelSpec
-             label: 'Hint: drag''n''drop classes, methods or packages from browser'
-             name: 'HintLabel'
-             layout: (LayoutFrame 0 0 0 0 0 1 30 0)
-             translateLabel: true
-             adjust: left
-           )
-          (SelectionInListModelViewSpec
-             name: 'ClassesList'
-             layout: (LayoutFrame 0 0 30 0 0 1 -60 1)
-             model: selectedClassesHolder
-             hasHorizontalScrollBar: true
-             hasVerticalScrollBar: true
-             listModel: classes
-             multipleSelectOk: true
-             useIndex: false
-             highlightMode: line
-             properties: 
-            (PropertyListDictionary
-               canDropSelector: canDropClasses:
-               dropArgument: nil
-               dropSelector: doDropClasses:
-               dragArgument: nil
-             )
-           )
-          (LabelSpec
-             name: 'ClassInfoLabel'
-             layout: (LayoutFrame 0 0 -60 1 0 1 -30 1)
-             translateLabel: true
-             labelChannel: classesInfoTextHolder
-             adjust: left
-           )
-          (HorizontalPanelViewSpec
-             name: 'HorizontalPanel1'
-             layout: (LayoutFrame 0 0 -30 1 -16 1 0 1)
-             horizontalLayout: center
-             verticalLayout: center
-             horizontalSpace: 3
-             verticalSpace: 3
-             component: 
-            (SpecCollection
-               collection: (
-                (ActionButtonSpec
-                   label: 'Remove Selected Classes'
-                   name: 'RemoveClassesButton'
-                   translateLabel: true
-                   model: removeSeletedClassesAction
-                   useDefaultExtent: true
-                 )
-                )
-              
-             )
-             keepSpaceForOSXResizeHandleH: true
-           )
-          )
-        
+	 collection: (
+	  (LabelSpec
+	     label: 'Hint: drag''n''drop classes, methods or packages from browser'
+	     name: 'HintLabel'
+	     layout: (LayoutFrame 0 0 0 0 0 1 30 0)
+	     translateLabel: true
+	     adjust: left
+	   )
+	  (SelectionInListModelViewSpec
+	     name: 'ClassesList'
+	     layout: (LayoutFrame 0 0 30 0 0 1 -60 1)
+	     model: selectedClassesHolder
+	     hasHorizontalScrollBar: true
+	     hasVerticalScrollBar: true
+	     listModel: classes
+	     multipleSelectOk: true
+	     useIndex: false
+	     highlightMode: line
+	     properties:
+	    (PropertyListDictionary
+	       canDropSelector: canDropClasses:
+	       dropArgument: nil
+	       dropSelector: doDropClasses:
+	       dragArgument: nil
+	     )
+	   )
+	  (LabelSpec
+	     name: 'ClassInfoLabel'
+	     layout: (LayoutFrame 0 0 -60 1 0 1 -30 1)
+	     translateLabel: true
+	     labelChannel: classesInfoTextHolder
+	     adjust: left
+	   )
+	  (HorizontalPanelViewSpec
+	     name: 'HorizontalPanel1'
+	     layout: (LayoutFrame 0 0 -30 1 -16 1 0 1)
+	     horizontalLayout: center
+	     verticalLayout: center
+	     horizontalSpace: 3
+	     verticalSpace: 3
+	     component:
+	    (SpecCollection
+	       collection: (
+		(ActionButtonSpec
+		   label: 'Remove Selected Classes'
+		   name: 'RemoveClassesButton'
+		   translateLabel: true
+		   model: removeSeletedClassesAction
+		   useDefaultExtent: true
+		 )
+		)
+
+	     )
+	     keepSpaceForOSXResizeHandleH: true
+	   )
+	  )
+
        )
      )
 !
@@ -303,28 +303,28 @@
 
     <resource: #canvas>
 
-    ^ 
+    ^
     #(FullSpec
        name: howToUseSpec
-       window: 
+       window:
       (WindowSpec
-         label: 'Classes'
-         name: 'Classes'
-         min: (Point 10 10)
-         bounds: (Rectangle 0 0 300 300)
+	 label: 'Classes'
+	 name: 'Classes'
+	 min: (Point 10 10)
+	 bounds: (Rectangle 0 0 300 300)
        )
-       component: 
+       component:
       (SpecCollection
-         collection: (
-          (HTMLViewSpec
-             name: 'HTMLBrowser1'
-             layout: (LayoutFrame 0 0 0 0 0 1 0 1)
-             model: howToUseRewriteToolURL
-             hasHorizontalScrollBar: true
-             hasVerticalScrollBar: true
-           )
-          )
-        
+	 collection: (
+	  (HTMLViewSpec
+	     name: 'HTMLBrowser1'
+	     layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+	     model: howToUseRewriteToolURL
+	     hasHorizontalScrollBar: true
+	     hasVerticalScrollBar: true
+	   )
+	  )
+
        )
      )
 !
@@ -343,89 +343,89 @@
 
     <resource: #canvas>
 
-    ^ 
+    ^
     #(FullSpec
        name: rulesSpec
-       window: 
+       window:
       (WindowSpec
-         label: 'Method Rewriter'
-         name: 'Method Rewriter'
-         min: (Point 10 10)
-         bounds: (Rectangle 0 0 472 354)
+	 label: 'Method Rewriter'
+	 name: 'Method Rewriter'
+	 min: (Point 10 10)
+	 bounds: (Rectangle 0 0 472 354)
        )
-       component: 
+       component:
       (SpecCollection
-         collection: (
-          (VariableVerticalPanelSpec
-             name: 'FindAndReplacePanel'
-             layout: (LayoutFrame 0 0 0 0 0 1 -30 1)
-             showHandle: true
-             snapMode: both
-             component: 
-            (SpecCollection
-               collection: (
-                (SelectionInListModelViewSpec
-                   name: 'SelectionInListModelView1'
-                   model: selectedRuleIndex
-                   hasHorizontalScrollBar: true
-                   hasVerticalScrollBar: true
-                   listModel: ruleNameList
-                   highlightMode: line
-                 )
-                (ViewSpec
-                   name: 'ReplaceBox'
-                   component: 
-                  (SpecCollection
-                     collection: (
-                      (LabelSpec
-                         label: 'Finds and Replaces With:'
-                         name: 'ReplaceLabel'
-                         layout: (LayoutFrame 0 0 0 0 0 1 20 0)
-                         translateLabel: true
-                         adjust: left
-                       )
-                      (TextEditorSpec
-                         name: 'ReplaceText'
-                         layout: (LayoutFrame 0 0 20 0 0 1 0 1)
-                         model: ruleSearchAndReplacePatternHolder
-                         hasHorizontalScrollBar: true
-                         hasVerticalScrollBar: true
-                         isReadOnly: true
-                         hasKeyboardFocusInitially: false
-                       )
-                      )
-                    
-                   )
-                 )
-                )
-              
-             )
-             handles: (Any 0.5 1.0)
-           )
-          (HorizontalPanelViewSpec
-             name: 'HorizontalPanel1'
-             layout: (LayoutFrame 0 0 -30 1 -16 1 0 1)
-             horizontalLayout: center
-             verticalLayout: center
-             horizontalSpace: 3
-             verticalSpace: 3
-             component: 
-            (SpecCollection
-               collection: (
-                (ActionButtonSpec
-                   label: 'Use Rule'
-                   name: 'UseAsRuleButton'
-                   translateLabel: true
-                   model: useAsRuleAction
-                   useDefaultExtent: true
-                 )
-                )
-              
-             )
-             keepSpaceForOSXResizeHandleH: true
-           )
-          )
-        
+	 collection: (
+	  (VariableVerticalPanelSpec
+	     name: 'FindAndReplacePanel'
+	     layout: (LayoutFrame 0 0 0 0 0 1 -30 1)
+	     showHandle: true
+	     snapMode: both
+	     component:
+	    (SpecCollection
+	       collection: (
+		(SelectionInListModelViewSpec
+		   name: 'SelectionInListModelView1'
+		   model: selectedRuleIndex
+		   hasHorizontalScrollBar: true
+		   hasVerticalScrollBar: true
+		   listModel: ruleNameList
+		   highlightMode: line
+		 )
+		(ViewSpec
+		   name: 'ReplaceBox'
+		   component:
+		  (SpecCollection
+		     collection: (
+		      (LabelSpec
+			 label: 'Finds and Replaces With:'
+			 name: 'ReplaceLabel'
+			 layout: (LayoutFrame 0 0 0 0 0 1 20 0)
+			 translateLabel: true
+			 adjust: left
+		       )
+		      (TextEditorSpec
+			 name: 'ReplaceText'
+			 layout: (LayoutFrame 0 0 20 0 0 1 0 1)
+			 model: ruleSearchAndReplacePatternHolder
+			 hasHorizontalScrollBar: true
+			 hasVerticalScrollBar: true
+			 isReadOnly: true
+			 hasKeyboardFocusInitially: false
+		       )
+		      )
+
+		   )
+		 )
+		)
+
+	     )
+	     handles: (Any 0.5 1.0)
+	   )
+	  (HorizontalPanelViewSpec
+	     name: 'HorizontalPanel1'
+	     layout: (LayoutFrame 0 0 -30 1 -16 1 0 1)
+	     horizontalLayout: center
+	     verticalLayout: center
+	     horizontalSpace: 3
+	     verticalSpace: 3
+	     component:
+	    (SpecCollection
+	       collection: (
+		(ActionButtonSpec
+		   label: 'Use Rule'
+		   name: 'UseAsRuleButton'
+		   translateLabel: true
+		   model: useAsRuleAction
+		   useDefaultExtent: true
+		 )
+		)
+
+	     )
+	     keepSpaceForOSXResizeHandleH: true
+	   )
+	  )
+
        )
      )
 !
@@ -444,176 +444,176 @@
 
     <resource: #canvas>
 
-    ^ 
+    ^
     #(FullSpec
        name: searchAndReplaceSpec
-       window: 
+       window:
       (WindowSpec
-         label: 'Method Rewriter'
-         name: 'Method Rewriter'
-         min: (Point 10 10)
-         bounds: (Rectangle 0 0 418 294)
+	 label: 'Method Rewriter'
+	 name: 'Method Rewriter'
+	 min: (Point 10 10)
+	 bounds: (Rectangle 0 0 418 294)
        )
-       component: 
+       component:
       (SpecCollection
-         collection: (
-          (ViewSpec
-             name: 'MethodPatternBox'
-             layout: (LayoutFrame 0 0 0 0 0 1 30 0)
-             component: 
-            (SpecCollection
-               collection: (
-                (CheckBoxSpec
-                   label: 'Method Pattern'
-                   name: 'CheckBox1'
-                   layout: (LayoutFrame 0 0 8 0 136 0 30 0)
-                   activeHelpKey: isMethodPattern
-                   model: isMethodPatternHolder
-                   translateLabel: true
-                 )
-                )
-              
-             )
-           )
-          (VariableVerticalPanelSpec
-             name: 'FindAndReplacePanel'
-             layout: (LayoutFrame 0 0 30 0 0 1 -30 1)
-             visibilityChannel: adHocFindAndReplaceVisibleHolder
-             showHandle: true
-             snapMode: both
-             component: 
-            (SpecCollection
-               collection: (
-                (ViewSpec
-                   name: 'FindBox'
-                   component: 
-                  (SpecCollection
-                     collection: (
-                      (LabelSpec
-                         label: 'Find:'
-                         name: 'FindLabel'
-                         layout: (LayoutFrame 0 0 0 0 0 1 20 0)
-                         translateLabel: true
-                         adjust: left
-                       )
-                      (TextEditorSpec
-                         name: 'FindText'
-                         layout: (LayoutFrame 0 0 20 0 0 1 0 1)
-                         hasHorizontalScrollBar: true
-                         hasVerticalScrollBar: true
-                         hasKeyboardFocusInitially: false
-                         postBuildCallback: postBuildFindTextView:
-                       )
-                      )
-                    
-                   )
-                 )
-                (ViewSpec
-                   name: 'ReplaceBox'
-                   component: 
-                  (SpecCollection
-                     collection: (
-                      (LabelSpec
-                         label: 'Replace with:'
-                         name: 'ReplaceLabel'
-                         layout: (LayoutFrame 0 0 0 0 0 1 20 0)
-                         translateLabel: true
-                         adjust: left
-                       )
-                      (TextEditorSpec
-                         name: 'ReplaceText'
-                         layout: (LayoutFrame 0 0 20 0 0 1 0 1)
-                         hasHorizontalScrollBar: true
-                         hasVerticalScrollBar: true
-                         hasKeyboardFocusInitially: false
-                         postBuildCallback: postBuildReplaceTextView:
-                       )
-                      )
-                    
-                   )
-                 )
-                )
-              
-             )
-             handles: (Any 0.5 1.0)
-           )
-          (ViewSpec
-             name: 'ExecuteRuleBox'
-             layout: (LayoutFrame 0 0 30 0 0 1 -30 1)
-             visibilityChannel: ruleExecutionVisibleHolder
-             component: 
-            (SpecCollection
-               collection: (
-                (LabelSpec
-                   label: 'Rule:'
-                   name: 'Label2'
-                   layout: (LayoutFrame 0 0 0 0 100 0 25 0)
-                   translateLabel: true
-                   adjust: left
-                 )
-                (LabelSpec
-                   name: 'Label4'
-                   layout: (LayoutFrame 100 0 0 0 0 1 25 0)
-                   translateLabel: true
-                   labelChannel: ruleNameHolder
-                 )
-                (TextEditorSpec
-                   name: 'TextEditor1'
-                   layout: (LayoutFrame 0 0 25 0 0 1 0 1)
-                   model: ruleSearchAndReplacePatternHolder
-                   hasHorizontalScrollBar: true
-                   hasVerticalScrollBar: true
-                   isReadOnly: true
-                   hasKeyboardFocusInitially: false
-                 )
-                )
-              
-             )
-           )
-          (ViewSpec
-             name: 'Box1'
-             layout: (LayoutFrame 0 0 -30 1 -16 1 0 1)
-             component: 
-            (SpecCollection
-               collection: (
-                (LabelSpec
-                   label: 'Enjoy'
-                   name: 'Label1'
-                   layout: (LayoutFrame 5 0 -25 1 255 0 -5 1)
-                   xxvisibilityChannel: actionInProgressHolder
-                   translateLabel: true
-                   labelChannel: infoHolder
-                   adjust: left
-                 )
-                (ProgressIndicatorSpec
-                   name: 'ProgressIndicator1'
-                   layout: (LayoutFrame 260 0 -25 1 -215 1 -5 1)
-                   xxvisibilityChannel: actionInProgressHolder
-                   model: progressHolder
-                 )
-                (ActionButtonSpec
-                   label: 'Search'
-                   name: 'Button2'
-                   layout: (LayoutFrame -210 1 -26 1 -110 1 -5 1)
-                   activeHelpKey: doSearchAction
-                   translateLabel: true
-                   model: doSearchAction
-                 )
-                (ActionButtonSpec
-                   label: 'Rewrite...'
-                   name: 'Button1'
-                   layout: (LayoutFrame -105 1 -25 1 -5 1 -5 1)
-                   activeHelpKey: doRewriteAction
-                   translateLabel: true
-                   model: doRewriteAction
-                 )
-                )
-              
-             )
-             keepSpaceForOSXResizeHandleH: true
-           )
-          )
-        
+	 collection: (
+	  (ViewSpec
+	     name: 'MethodPatternBox'
+	     layout: (LayoutFrame 0 0 0 0 0 1 30 0)
+	     component:
+	    (SpecCollection
+	       collection: (
+		(CheckBoxSpec
+		   label: 'Method Pattern'
+		   name: 'CheckBox1'
+		   layout: (LayoutFrame 0 0 8 0 136 0 30 0)
+		   activeHelpKey: isMethodPattern
+		   model: isMethodPatternHolder
+		   translateLabel: true
+		 )
+		)
+
+	     )
+	   )
+	  (VariableVerticalPanelSpec
+	     name: 'FindAndReplacePanel'
+	     layout: (LayoutFrame 0 0 30 0 0 1 -30 1)
+	     visibilityChannel: adHocFindAndReplaceVisibleHolder
+	     showHandle: true
+	     snapMode: both
+	     component:
+	    (SpecCollection
+	       collection: (
+		(ViewSpec
+		   name: 'FindBox'
+		   component:
+		  (SpecCollection
+		     collection: (
+		      (LabelSpec
+			 label: 'Find:'
+			 name: 'FindLabel'
+			 layout: (LayoutFrame 0 0 0 0 0 1 20 0)
+			 translateLabel: true
+			 adjust: left
+		       )
+		      (TextEditorSpec
+			 name: 'FindText'
+			 layout: (LayoutFrame 0 0 20 0 0 1 0 1)
+			 hasHorizontalScrollBar: true
+			 hasVerticalScrollBar: true
+			 hasKeyboardFocusInitially: false
+			 postBuildCallback: postBuildFindTextView:
+		       )
+		      )
+
+		   )
+		 )
+		(ViewSpec
+		   name: 'ReplaceBox'
+		   component:
+		  (SpecCollection
+		     collection: (
+		      (LabelSpec
+			 label: 'Replace with:'
+			 name: 'ReplaceLabel'
+			 layout: (LayoutFrame 0 0 0 0 0 1 20 0)
+			 translateLabel: true
+			 adjust: left
+		       )
+		      (TextEditorSpec
+			 name: 'ReplaceText'
+			 layout: (LayoutFrame 0 0 20 0 0 1 0 1)
+			 hasHorizontalScrollBar: true
+			 hasVerticalScrollBar: true
+			 hasKeyboardFocusInitially: false
+			 postBuildCallback: postBuildReplaceTextView:
+		       )
+		      )
+
+		   )
+		 )
+		)
+
+	     )
+	     handles: (Any 0.5 1.0)
+	   )
+	  (ViewSpec
+	     name: 'ExecuteRuleBox'
+	     layout: (LayoutFrame 0 0 30 0 0 1 -30 1)
+	     visibilityChannel: ruleExecutionVisibleHolder
+	     component:
+	    (SpecCollection
+	       collection: (
+		(LabelSpec
+		   label: 'Rule:'
+		   name: 'Label2'
+		   layout: (LayoutFrame 0 0 0 0 100 0 25 0)
+		   translateLabel: true
+		   adjust: left
+		 )
+		(LabelSpec
+		   name: 'Label4'
+		   layout: (LayoutFrame 100 0 0 0 0 1 25 0)
+		   translateLabel: true
+		   labelChannel: ruleNameHolder
+		 )
+		(TextEditorSpec
+		   name: 'TextEditor1'
+		   layout: (LayoutFrame 0 0 25 0 0 1 0 1)
+		   model: ruleSearchAndReplacePatternHolder
+		   hasHorizontalScrollBar: true
+		   hasVerticalScrollBar: true
+		   isReadOnly: true
+		   hasKeyboardFocusInitially: false
+		 )
+		)
+
+	     )
+	   )
+	  (ViewSpec
+	     name: 'Box1'
+	     layout: (LayoutFrame 0 0 -30 1 -16 1 0 1)
+	     component:
+	    (SpecCollection
+	       collection: (
+		(LabelSpec
+		   label: 'Enjoy'
+		   name: 'Label1'
+		   layout: (LayoutFrame 5 0 -25 1 255 0 -5 1)
+		   xxvisibilityChannel: actionInProgressHolder
+		   translateLabel: true
+		   labelChannel: infoHolder
+		   adjust: left
+		 )
+		(ProgressIndicatorSpec
+		   name: 'ProgressIndicator1'
+		   layout: (LayoutFrame 260 0 -25 1 -215 1 -5 1)
+		   xxvisibilityChannel: actionInProgressHolder
+		   model: progressHolder
+		 )
+		(ActionButtonSpec
+		   label: 'Search'
+		   name: 'Button2'
+		   layout: (LayoutFrame -210 1 -26 1 -110 1 -5 1)
+		   activeHelpKey: doSearchAction
+		   translateLabel: true
+		   model: doSearchAction
+		 )
+		(ActionButtonSpec
+		   label: 'Rewrite...'
+		   name: 'Button1'
+		   layout: (LayoutFrame -105 1 -25 1 -5 1 -5 1)
+		   activeHelpKey: doRewriteAction
+		   translateLabel: true
+		   model: doRewriteAction
+		 )
+		)
+
+	     )
+	     keepSpaceForOSXResizeHandleH: true
+	   )
+	  )
+
        )
      )
 !
@@ -632,28 +632,28 @@
 
     <resource: #canvas>
 
-    ^ 
+    ^
     #(FullSpec
        name: searchPatternHelpSpec
-       window: 
+       window:
       (WindowSpec
-         label: 'Classes'
-         name: 'Classes'
-         min: (Point 10 10)
-         bounds: (Rectangle 0 0 300 300)
+	 label: 'Classes'
+	 name: 'Classes'
+	 min: (Point 10 10)
+	 bounds: (Rectangle 0 0 300 300)
        )
-       component: 
+       component:
       (SpecCollection
-         collection: (
-          (HTMLViewSpec
-             name: 'HTMLBrowser1'
-             layout: (LayoutFrame 0 0 0 0 0 1 0 1)
-             model: searchPatternHelpURL
-             hasHorizontalScrollBar: true
-             hasVerticalScrollBar: true
-           )
-          )
-        
+	 collection: (
+	  (HTMLViewSpec
+	     name: 'HTMLBrowser1'
+	     layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+	     model: searchPatternHelpURL
+	     hasHorizontalScrollBar: true
+	     hasVerticalScrollBar: true
+	   )
+	  )
+
        )
      )
 !
@@ -672,114 +672,114 @@
 
     <resource: #canvas>
 
-    ^ 
+    ^
     #(FullSpec
        name: templatesSpec
-       window: 
+       window:
       (WindowSpec
-         label: 'Method Rewriter'
-         name: 'Method Rewriter'
-         min: (Point 10 10)
-         bounds: (Rectangle 0 0 472 354)
+	 label: 'Method Rewriter'
+	 name: 'Method Rewriter'
+	 min: (Point 10 10)
+	 bounds: (Rectangle 0 0 472 354)
        )
-       component: 
+       component:
       (SpecCollection
-         collection: (
-          (VariableVerticalPanelSpec
-             name: 'FindAndReplacePanel'
-             layout: (LayoutFrame 0 0 0 0 0 1 -30 1)
-             showHandle: true
-             snapMode: both
-             component: 
-            (SpecCollection
-               collection: (
-                (SelectionInListModelViewSpec
-                   name: 'SelectionInListModelView1'
-                   model: selectedTemplateIndex
-                   hasHorizontalScrollBar: true
-                   hasVerticalScrollBar: true
-                   listModel: templateNameList
-                   highlightMode: line
-                 )
-                (ViewSpec
-                   name: 'FindBox'
-                   component: 
-                  (SpecCollection
-                     collection: (
-                      (LabelSpec
-                         label: 'Find:'
-                         name: 'FindLabel'
-                         layout: (LayoutFrame 0 0 0 0 0 1 20 0)
-                         translateLabel: true
-                         adjust: left
-                       )
-                      (TextEditorSpec
-                         name: 'FindText'
-                         layout: (LayoutFrame 0 0 20 0 0 1 0 1)
-                         enableChannel: templateSearchPatternIsEditable
-                         model: templateSearchPatternHolder
-                         hasHorizontalScrollBar: true
-                         hasVerticalScrollBar: true
-                         hasKeyboardFocusInitially: false
-                       )
-                      )
-                    
-                   )
-                 )
-                (ViewSpec
-                   name: 'ReplaceBox'
-                   component: 
-                  (SpecCollection
-                     collection: (
-                      (LabelSpec
-                         label: 'Replace With:'
-                         name: 'ReplaceLabel'
-                         layout: (LayoutFrame 0 0 0 0 0 1 20 0)
-                         translateLabel: true
-                         adjust: left
-                       )
-                      (TextEditorSpec
-                         name: 'ReplaceText'
-                         layout: (LayoutFrame 0 0 20 0 0 1 0 1)
-                         enableChannel: templateReplacePatternIsEditable
-                         model: templateReplacePatternHolder
-                         hasHorizontalScrollBar: true
-                         hasVerticalScrollBar: true
-                         hasKeyboardFocusInitially: false
-                       )
-                      )
-                    
-                   )
-                 )
-                )
-              
-             )
-             handles: (Any 0.20000000000000001 0.59999999999999998 1.0)
-           )
-          (HorizontalPanelViewSpec
-             name: 'HorizontalPanel1'
-             layout: (LayoutFrame 0 0 -30 1 -16 1 0 1)
-             horizontalLayout: center
-             verticalLayout: center
-             horizontalSpace: 3
-             verticalSpace: 3
-             component: 
-            (SpecCollection
-               collection: (
-                (ActionButtonSpec
-                   label: 'Use as Template'
-                   name: 'UseAsTemplateButton'
-                   translateLabel: true
-                   model: useAsTemplateAction
-                   useDefaultExtent: true
-                 )
-                )
-              
-             )
-             keepSpaceForOSXResizeHandleH: true
-           )
-          )
-        
+	 collection: (
+	  (VariableVerticalPanelSpec
+	     name: 'FindAndReplacePanel'
+	     layout: (LayoutFrame 0 0 0 0 0 1 -30 1)
+	     showHandle: true
+	     snapMode: both
+	     component:
+	    (SpecCollection
+	       collection: (
+		(SelectionInListModelViewSpec
+		   name: 'SelectionInListModelView1'
+		   model: selectedTemplateIndex
+		   hasHorizontalScrollBar: true
+		   hasVerticalScrollBar: true
+		   listModel: templateNameList
+		   highlightMode: line
+		 )
+		(ViewSpec
+		   name: 'FindBox'
+		   component:
+		  (SpecCollection
+		     collection: (
+		      (LabelSpec
+			 label: 'Find:'
+			 name: 'FindLabel'
+			 layout: (LayoutFrame 0 0 0 0 0 1 20 0)
+			 translateLabel: true
+			 adjust: left
+		       )
+		      (TextEditorSpec
+			 name: 'FindText'
+			 layout: (LayoutFrame 0 0 20 0 0 1 0 1)
+			 enableChannel: templateSearchPatternIsEditable
+			 model: templateSearchPatternHolder
+			 hasHorizontalScrollBar: true
+			 hasVerticalScrollBar: true
+			 hasKeyboardFocusInitially: false
+		       )
+		      )
+
+		   )
+		 )
+		(ViewSpec
+		   name: 'ReplaceBox'
+		   component:
+		  (SpecCollection
+		     collection: (
+		      (LabelSpec
+			 label: 'Replace With:'
+			 name: 'ReplaceLabel'
+			 layout: (LayoutFrame 0 0 0 0 0 1 20 0)
+			 translateLabel: true
+			 adjust: left
+		       )
+		      (TextEditorSpec
+			 name: 'ReplaceText'
+			 layout: (LayoutFrame 0 0 20 0 0 1 0 1)
+			 enableChannel: templateReplacePatternIsEditable
+			 model: templateReplacePatternHolder
+			 hasHorizontalScrollBar: true
+			 hasVerticalScrollBar: true
+			 hasKeyboardFocusInitially: false
+		       )
+		      )
+
+		   )
+		 )
+		)
+
+	     )
+	     handles: (Any 0.20000000000000001 0.59999999999999998 1.0)
+	   )
+	  (HorizontalPanelViewSpec
+	     name: 'HorizontalPanel1'
+	     layout: (LayoutFrame 0 0 -30 1 -16 1 0 1)
+	     horizontalLayout: center
+	     verticalLayout: center
+	     horizontalSpace: 3
+	     verticalSpace: 3
+	     component:
+	    (SpecCollection
+	       collection: (
+		(ActionButtonSpec
+		   label: 'Use as Template'
+		   name: 'UseAsTemplateButton'
+		   translateLabel: true
+		   model: useAsTemplateAction
+		   useDefaultExtent: true
+		 )
+		)
+
+	     )
+	     keepSpaceForOSXResizeHandleH: true
+	   )
+	  )
+
        )
      )
 !
@@ -799,30 +799,30 @@
 
     <resource: #canvas>
 
-    ^ 
+    ^
      #(FullSpec
-        name: windowSpec
-        window: 
+	name: windowSpec
+	window:
        (WindowSpec
-          label: 'Method Rewriter'
-          name: 'Method Rewriter'
-          min: (Point 10 10)
-          bounds: (Rectangle 0 0 658 490)
-        )
-        component: 
+	  label: 'Method Rewriter'
+	  name: 'Method Rewriter'
+	  min: (Point 10 10)
+	  bounds: (Rectangle 0 0 658 490)
+	)
+	component:
        (SpecCollection
-          collection: (
-           (NoteBookViewSpec
-              name: 'NoteBook'
-              layout: (LayoutFrame 0 0 0 0 0 1 0 1)
-              model: selectedTabIndex
-              menu: tabList
-              useIndex: true
-              fitLastRow: false
-            )
-           )
-         
-        )
+	  collection: (
+	   (NoteBookViewSpec
+	      name: 'NoteBook'
+	      layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+	      model: selectedTabIndex
+	      menu: tabList
+	      useIndex: true
+	      fitLastRow: false
+	    )
+	   )
+
+	)
       )
 
     "Modified: / 12-12-2007 / 11:39:31 / janfrog"
@@ -845,37 +845,37 @@
 
     ^     #(
        (TabItem
-          label: 'Search and Replace'
-          createNewBuilder: false
-          minorKey: searchAndReplaceSpec
-        )
+	  label: 'Search and Replace'
+	  createNewBuilder: false
+	  minorKey: searchAndReplaceSpec
+	)
        (TabItem
-          label: 'Classes'
-          createNewBuilder: false
-          minorKey: classesSpec
-        )
+	  label: 'Classes'
+	  createNewBuilder: false
+	  minorKey: classesSpec
+	)
        (TabItem
-          label: 'Templates'
-          createNewBuilder: false
-          minorKey: templatesSpec
-        )
+	  label: 'Templates'
+	  createNewBuilder: false
+	  minorKey: templatesSpec
+	)
        (TabItem
-          label: 'Existing Rules'
-          createNewBuilder: false
-          minorKey: rulesSpec
-        )
+	  label: 'Existing Rules'
+	  createNewBuilder: false
+	  minorKey: rulesSpec
+	)
        (TabItem
-          label: 'How To Use This Tool'
-          createNewBuilder: false
-          minorKey: howToUseSpec
-        )
+	  label: 'How To Use This Tool'
+	  createNewBuilder: false
+	  minorKey: howToUseSpec
+	)
        (TabItem
-          label: 'Pattern Info'
-          createNewBuilder: false
-          minorKey: searchPatternHelpSpec
-        )
+	  label: 'Pattern Info'
+	  createNewBuilder: false
+	  minorKey: searchPatternHelpSpec
+	)
        )
-     
+
       collect:[:aTab| TabItem new fromLiteralArrayEncoding:aTab ]
 
     "Modified: / 12-12-2007 / 11:21:27 / janfrog"
@@ -890,10 +890,10 @@
 !
 
 classes: aCollection
-    self classes contents:((aCollection collect:[:cls|cls theNonMetaclass]) 
-                            sortBySelector:#name).
+    self classes contents:((aCollection collect:[:cls|cls theNonMetaclass])
+			    sortBySelector:#name).
     self classesChanged
-            
+
 
     "Created: / 20-07-2007 / 16:31:18 / janfrog"
     "Modified: / 12-12-2007 / 09:47:01 / janfrog"
@@ -918,7 +918,7 @@
 
     allClasses := OrderedCollection new.
     aCollection do:[:eachPackage |
-        allClasses addAll:(Smalltalk allClassesInPackage:eachPackage)
+	allClasses addAll:(Smalltalk allClassesInPackage:eachPackage)
     ].
     self classes:allClasses.
 !
@@ -942,41 +942,41 @@
 
 rules
     RBTransformationRule isNil ifTrue:[
-        Smalltalk loadPackage:'stx:goodies/refactoryBrowser/lint'.
+	Smalltalk loadPackage:'stx:goodies/refactoryBrowser/lint'.
     ].
 
     rules isNil ifTrue:[
-        |knownRules separator1 separator2 separator3|
+	|knownRules separator1 separator2 separator3|
 
-        "/ construct a pseudo list from existing transformation rules
-        separator1 := '----------- search for:' asText colorizeAllWith:Color grey.
-        separator2 := '----------- replace by:' asText colorizeAllWith:Color grey.   
-        separator3 := '\=================================================================================\' withCRs asText colorizeAllWith:Color grey.
+	"/ construct a pseudo list from existing transformation rules
+	separator1 := '----------- search for:' asText colorizeAllWith:Color grey.
+	separator2 := '----------- replace by:' asText colorizeAllWith:Color grey.
+	separator3 := '\=================================================================================\' withCRs asText colorizeAllWith:Color grey.
 
-        knownRules := OrderedCollection new.
-        (RBTransformationRule allSubclasses asNewOrderedCollection sort:[:a :b | a basicNew name < b basicNew name]) 
-        do:[:each |
-            |rule | 
+	knownRules := OrderedCollection new.
+	(RBTransformationRule allSubclasses asNewOrderedCollection sort:[:a :b | a basicNew name < b basicNew name])
+	do:[:each |
+	    |rule |
 
-            rule := each new.
-            knownRules add:{ rule .
-                             (rule rewriteRule searches 
-                                collectAll:[:each |
-                                    { 
-                                      separator1.
-                                      each searchString 
-                                        asText backgroundColorizeAllWith:(Color red lightened lightened lightened) .
-                                      separator2.
-                                      each replaceString asText 
-                                        asText backgroundColorizeAllWith:(Color green lightened lightened lightened) .
-                                      separator3
-                                    }
-                                ]
-                             ) asStringCollection asString.
-                           }
-        ].
+	    rule := each new.
+	    knownRules add:{ rule .
+			     (rule rewriteRule searches
+				collectAll:[:each |
+				    {
+				      separator1.
+				      each searchString
+					asText backgroundColorizeAllWith:(Color red lightened lightened lightened) .
+				      separator2.
+				      each replaceString asText
+					asText backgroundColorizeAllWith:(Color green lightened lightened lightened) .
+				      separator3
+				    }
+				]
+			     ) asStringCollection asString.
+			   }
+	].
 
-        rules := knownRules
+	rules := knownRules
     ].
     ^ rules
 
@@ -1024,7 +1024,7 @@
 
 templates
     templates isNil ifTrue:[
-        templates := self class templates.
+	templates := self class templates.
     ].
     ^ templates
 
@@ -1036,29 +1036,29 @@
 doRewrite: methodsMatching
     | changes compositeChangeCollector |
 
-    changes := ChangeSet new name:'Rewrite Changes'.    
+    changes := ChangeSet new name:'Rewrite Changes'.
 
     methodsMatching isEmptyOrNil ifTrue:[^Dialog warn:(resources string:'No methods matching')].
 
     self withMethods: methodsMatching do:[:mth|
-        | rewriter newTree change |
+	| rewriter newTree change |
 
-        rewriter := ParseTreeSourceRewriter new.
-        (self isMethodPatternHolder value) ifTrue:[
-            rewriter replaceMethod: self searchPattern with: self replacePattern
-        ] ifFalse:[
-            rewriter replace: self searchPattern with: self replacePattern
-        ].
-        newTree := rewriter
-                        executeTree: mth parseTree;
-                        tree.
+	rewriter := ParseTreeSourceRewriter new.
+	(self isMethodPatternHolder value) ifTrue:[
+	    rewriter replaceMethod: self searchPattern with: self replacePattern
+	] ifFalse:[
+	    rewriter replace: self searchPattern with: self replacePattern
+	].
+	newTree := rewriter
+			executeTree: mth parseTree;
+			tree.
 
-        change := InteractiveAddMethodChange compile: newTree newSource in:(mth mclass ? mth getMclass) classified:mth category.
+	change := InteractiveAddMethodChange compile: newTree newSource in:(mth mclass ? mth getMclass) classified:mth category.
 
-        "/ collect in order to have only one change in the undo-list (instead of many)
-        changes add: change.
+	"/ collect in order to have only one change in the undo-list (instead of many)
+	changes add: change.
 
-"/        mth mclass 
+"/        mth mclass
 "/            compile: newTree formattedCode
 "/            classified: mth category
     ].
@@ -1085,16 +1085,16 @@
 doRewriteAction
 
     self replacePattern isEmptyOrNil ifTrue:[
-        (Dialog confirm:'No replace-pattern given.\\Proceed to delete that code.') ifFalse:[
-            AbortSignal raise
-        ].
+	(Dialog confirm:'No replace-pattern given.\\Proceed to delete that code.') ifFalse:[
+	    AbortSignal raise
+	].
     ].
 
-    self 
-        doSearchPattern: self searchPattern 
-        withResultDo: [:methodsMatching|
-            self doRewrite:  methodsMatching
-        ].
+    self
+	doSearchPattern: self searchPattern
+	withResultDo: [:methodsMatching|
+	    self doRewrite:  methodsMatching
+	].
 
     "Created: / 12-12-2007 / 11:14:19 / janfrog"
     "Modified: / 22-03-2012 / 18:23:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -1104,33 +1104,33 @@
     |methods what|
 
     ruleForRewriteOrNilForAdHoc notNil ifTrue:[
-       self 
-            doSearchRule: self selectedRule 
-            withResultDo:[:matchingMethods|
-                matchingMethods isEmpty
-                    ifTrue:[
-                        Dialog warn:'No methods found by rule: ', self selectedRule name
-                    ]
-                    ifFalse:[
-                        self
-                            showMethods: matchingMethods asArray
-                            title: 'Methods matching rule: ', self selectedRule name
-                    ]
-            ]
+       self
+	    doSearchRule: self selectedRule
+	    withResultDo:[:matchingMethods|
+		matchingMethods isEmpty
+		    ifTrue:[
+			Dialog warn:'No methods found by rule: ', self selectedRule name
+		    ]
+		    ifFalse:[
+			self
+			    showMethods: matchingMethods asArray
+			    title: 'Methods matching rule: ', self selectedRule name
+		    ]
+	    ]
     ] ifFalse:[
-       self 
-            doSearchPattern: self searchPattern 
-            withResultDo:[:matchingMethods|
-                matchingMethods isEmpty
-                    ifTrue:[
-                        Dialog warn:'No methods found for search pattern'
-                    ]
-                    ifFalse:[
-                        self
-                            showMethods: matchingMethods asArray
-                            title: 'Methods matching ', self searchPattern
-                    ]
-            ]
+       self
+	    doSearchPattern: self searchPattern
+	    withResultDo:[:matchingMethods|
+		matchingMethods isEmpty
+		    ifTrue:[
+			Dialog warn:'No methods found for search pattern'
+		    ]
+		    ifFalse:[
+			self
+			    showMethods: matchingMethods asArray
+			    title: 'Methods matching ', self searchPattern
+		    ]
+	    ]
     ]
 
     "Created: / 12-12-2007 / 11:14:25 / janfrog"
@@ -1149,7 +1149,7 @@
     self adHocFindAndReplaceVisibleHolder value:false.
     ruleForRewriteOrNilForAdHoc := self selectedRule.
     ruleNameHolder value: ruleForRewriteOrNilForAdHoc name.
-    
+
     self selectedTabIndex value:1
 !
 
@@ -1167,7 +1167,7 @@
 
 actionInProgressHolder
     actionInProgressHolder isNil ifTrue:[
-        actionInProgressHolder := false asValue.
+	actionInProgressHolder := false asValue.
     ].
     ^ actionInProgressHolder.
 
@@ -1176,14 +1176,14 @@
 
 adHocFindAndReplaceVisibleHolder
     adHocFindAndReplaceVisibleHolder isNil ifTrue:[
-        adHocFindAndReplaceVisibleHolder := true asValue.
+	adHocFindAndReplaceVisibleHolder := true asValue.
     ].
     ^ adHocFindAndReplaceVisibleHolder.
 !
 
 classesInfoTextHolder
     classesInfoTextHolder isNil ifTrue:[
-        classesInfoTextHolder := '' asValue.
+	classesInfoTextHolder := '' asValue.
     ].
     ^ classesInfoTextHolder.
 !
@@ -1194,7 +1194,7 @@
 
 infoHolder
     infoHolder isNil ifTrue:[
-        infoHolder := 'Really cool tool!!' asValue.
+	infoHolder := 'Really cool tool!!' asValue.
     ].
     ^ infoHolder.
 
@@ -1204,14 +1204,14 @@
 
 isMethodPatternHolder
     isMethodPatternHolder isNil ifTrue:[
-        isMethodPatternHolder := false asValue
+	isMethodPatternHolder := false asValue
     ].
     ^ isMethodPatternHolder.
 !
 
 progressHolder
     progressHolder isNil ifTrue:[
-        progressHolder := 0 asValue
+	progressHolder := 0 asValue
     ].
     ^ progressHolder.
 
@@ -1219,12 +1219,12 @@
 !
 
 ruleExecutionVisibleHolder
-    ^ BlockValue forLogicalNot:self adHocFindAndReplaceVisibleHolder 
+    ^ BlockValue forLogicalNot:self adHocFindAndReplaceVisibleHolder
 !
 
 ruleNameHolder
     ruleNameHolder isNil ifTrue:[
-        ruleNameHolder := '' asValue.
+	ruleNameHolder := '' asValue.
     ].
     ^ ruleNameHolder.
 !
@@ -1236,7 +1236,7 @@
 
 ruleSearchAndReplacePatternHolder
     ruleSearchAndReplacePatternHolder isNil ifTrue:[
-        ruleSearchAndReplacePatternHolder := '' asValue.
+	ruleSearchAndReplacePatternHolder := '' asValue.
     ].
     ^ ruleSearchAndReplacePatternHolder.
 !
@@ -1247,7 +1247,7 @@
 
 selectedClassesHolder
     selectedClassesHolder isNil ifTrue:[
-        selectedClassesHolder := ValueHolder new.
+	selectedClassesHolder := ValueHolder new.
     ].
     ^ selectedClassesHolder.
 
@@ -1257,15 +1257,15 @@
 selectedRuleIndex
 
     selectedRuleIndex isNil ifTrue:[
-        selectedRuleIndex := ValueHolder new.
-        selectedRuleIndex onChangeSend:#selectedRuleIndexChanged to:self.
+	selectedRuleIndex := ValueHolder new.
+	selectedRuleIndex onChangeSend:#selectedRuleIndexChanged to:self.
     ].
     ^ selectedRuleIndex.
 !
 
 selectedTabIndex
     selectedTabIndex isNil ifTrue:[
-        selectedTabIndex := ValueHolder new.
+	selectedTabIndex := ValueHolder new.
     ].
     ^ selectedTabIndex.
 
@@ -1275,8 +1275,8 @@
 selectedTemplateIndex
 
     selectedTemplateIndex isNil ifTrue:[
-        selectedTemplateIndex := ValueHolder new.
-        selectedTemplateIndex onChangeSend:#selectedTemplateIndexChanged to:self.
+	selectedTemplateIndex := ValueHolder new.
+	selectedTemplateIndex onChangeSend:#selectedTemplateIndexChanged to:self.
     ].
     ^ selectedTemplateIndex.
 
@@ -1289,7 +1289,7 @@
     |list|
 
     (list := builder bindingAt:#tabList) isNil ifTrue:[
-        builder aspectAt:#tabList put:(list := self class tabList).
+	builder aspectAt:#tabList put:(list := self class tabList).
     ].
     ^ list
 
@@ -1305,7 +1305,7 @@
 
 templateReplacePatternHolder
     templateReplacePatternHolder isNil ifTrue:[
-        templateReplacePatternHolder := '' asValue.
+	templateReplacePatternHolder := '' asValue.
     ].
     ^ templateReplacePatternHolder.
 
@@ -1316,14 +1316,14 @@
     |holder|
 
     (holder := builder bindingAt:#templateReplacePatternIsEditable) isNil ifTrue:[
-        builder aspectAt:#templateReplacePatternIsEditable put:(holder := true asValue).
+	builder aspectAt:#templateReplacePatternIsEditable put:(holder := true asValue).
     ].
     ^ holder.
 !
 
 templateSearchPatternHolder
     templateSearchPatternHolder isNil ifTrue:[
-        templateSearchPatternHolder := '' asValue.
+	templateSearchPatternHolder := '' asValue.
     ].
     ^ templateSearchPatternHolder.
 
@@ -1334,7 +1334,7 @@
     |holder|
 
     (holder := builder bindingAt:#templateSearchPatternIsEditable) isNil ifTrue:[
-        builder aspectAt:#templateSearchPatternIsEditable put:(holder := true asValue).
+	builder aspectAt:#templateSearchPatternIsEditable put:(holder := true asValue).
     ].
     ^ holder.
 ! !
@@ -1345,10 +1345,10 @@
     cachedMethodsFromClasses := nil. "/ flush
     methods := nil.
 
-    self classesInfoTextHolder 
-        value:(((classes size == 1) ifTrue:['%1 class / %2 method(s)'] ifFalse:['%1 classes / %2 methods']) 
-                    bindWith:classes size                    
-                    with:self methods size)
+    self classesInfoTextHolder
+	value:(((classes size == 1) ifTrue:['%1 class / %2 method(s)'] ifFalse:['%1 classes / %2 methods'])
+		    bindWith:classes size
+		    with:self methods size)
 !
 
 selectedRuleIndexChanged
@@ -1372,13 +1372,13 @@
     "/ 3) replacement pattern
     "/ 4) rule or nil; nil for ad-hoc rewrite
     selectedTemplate fourth isNil ifTrue:[
-        "/ ad hoc
-        self templateReplacePatternIsEditable value:true.
-        self templateSearchPatternIsEditable value:true.
+	"/ ad hoc
+	self templateReplacePatternIsEditable value:true.
+	self templateSearchPatternIsEditable value:true.
     ] ifFalse:[
-        "/ existing rule
-        self templateReplacePatternIsEditable value:false.
-        self templateSearchPatternIsEditable value:false.
+	"/ existing rule
+	self templateReplacePatternIsEditable value:false.
+	self templateSearchPatternIsEditable value:false.
     ].
     self templateSearchPatternHolder value: selectedTemplate second.
     self templateReplacePatternHolder value: selectedTemplate third.
@@ -1391,11 +1391,11 @@
 canDropClasses: dropContext
     "I accept classes, methods and packages"
 
-    ^dropContext dropObjects 
-        allSatisfy: [:obj|
-            obj isClassObject 
-            or:[ obj isMethodObject 
-            or:[ obj isProjectObject ]]]
+    ^dropContext dropObjects
+	allSatisfy: [:obj|
+	    obj isClassObject
+	    or:[ obj isMethodObject
+	    or:[ obj isProjectObject ]]]
 
     "Created: / 20-07-2007 / 16:58:13 / janfrog"
 !
@@ -1405,33 +1405,33 @@
 
     | droppedProjects droppedClasses newClasses classesAlready|
 
-    droppedProjects := dropContext dropObjects 
-                    select:[:obj| obj isProjectObject]
-                    thenCollect:[:obj | obj theObject].  
+    droppedProjects := dropContext dropObjects
+		    select:[:obj| obj isProjectObject]
+		    thenCollect:[:obj | obj theObject].
 
-    droppedClasses := dropContext dropObjects 
-                    select:[:obj| obj isClassObject or:[obj isMethodObject]]
-                    thenCollect:[:obj| 
-                        |clsOrMethod|
+    droppedClasses := dropContext dropObjects
+		    select:[:obj| obj isClassObject or:[obj isMethodObject]]
+		    thenCollect:[:obj|
+			|clsOrMethod|
 
-                        clsOrMethod := obj theObject.
-                        clsOrMethod isMethod ifTrue:[
-                            clsOrMethod containingClass
-                        ] ifFalse:[
-                            clsOrMethod
-                        ]
-                    ] as:IdentitySet.
+			clsOrMethod := obj theObject.
+			clsOrMethod isMethod ifTrue:[
+			    clsOrMethod containingClass
+			] ifFalse:[
+			    clsOrMethod
+			]
+		    ] as:IdentitySet.
 
     droppedProjects do:[:eachPackage |
-        droppedClasses addAll:(Smalltalk allClassesInPackage:eachPackage)
+	droppedClasses addAll:(Smalltalk allClassesInPackage:eachPackage)
     ].
 
     classesAlready := self classes asSet.
     newClasses := droppedClasses reject:[:cls | classesAlready includes:cls].
 
-    self classes 
-        addAll: newClasses;
-        sortBySelector:#name.
+    self classes
+	addAll: newClasses;
+	sortBySelector:#name.
     self classesChanged
 
     "Created: / 20-07-2007 / 16:58:16 / janfrog"
@@ -1468,35 +1468,35 @@
     | matchingMethods |
 
     pattern isEmptyOrNil ifTrue:[
-        Dialog warn:'No searchpattern given.'.
-        AbortSignal raise
+	Dialog warn:'No searchpattern given.'.
+	AbortSignal raise
     ].
 
     matchingMethods := Set new.
     self
-        withMethodsDo:[:mthd| 
-            | tree searcher |
-            tree := mthd parseTree.
-            tree 
-                ifNil:[
-                    Transcript showCR:'MethodRewriter: parse tree error in ',mthd whoString.
-                    self breakPoint: #jv
-                ] 
-                ifNotNil:[
-                    searcher := ParseTreeSearcher new.
-                    (self isMethodPatternHolder value)
-                        ifTrue:[
-                            searcher matchesMethod:pattern do:[:aNode :answer | matchingMethods add:mthd ]
-                        ]
-                        ifFalse:[
-                            searcher matches:pattern do:[:aNode :answer | matchingMethods add:mthd ]
-                        ].
-                    searcher executeTree: tree
-                ]
-        ]
-        finallyDo:[
-            block value: matchingMethods
-        ]
+	withMethodsDo:[:mthd|
+	    | tree searcher |
+	    tree := mthd parseTree.
+	    tree
+		ifNil:[
+		    Transcript showCR:'MethodRewriter: parse tree error in ',mthd whoString.
+		    self breakPoint: #jv
+		]
+		ifNotNil:[
+		    searcher := ParseTreeSearcher new.
+		    (self isMethodPatternHolder value)
+			ifTrue:[
+			    searcher matchesMethod:pattern do:[:aNode :answer | matchingMethods add:mthd ]
+			]
+			ifFalse:[
+			    searcher matches:pattern do:[:aNode :answer | matchingMethods add:mthd ]
+			].
+		    searcher executeTree: tree
+		]
+	]
+	finallyDo:[
+	    block value: matchingMethods
+	]
 
     "Created: / 12-12-2007 / 10:34:50 / janfrog"
     "Modified: / 07-04-2011 / 22:02:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -1507,40 +1507,40 @@
     | matchingMethods searcher currentMethod|
 
     rule isNil ifTrue:[
-        Dialog warn:'No rule selected.'.
-        AbortSignal raise
+	Dialog warn:'No rule selected.'.
+	AbortSignal raise
     ].
 
     searcher := ParseTreeSearcher new.
     rule rewriteRule searches do:[:eachSearch |
-        searcher 
-            matchesTree:eachSearch searchTree 
-            do:[:aNode :answer | 
-                (eachSearch canMatch: aNode) ifTrue:[
-                    matchingMethods add:currentMethod 
-                ] 
-            ] 
+	searcher
+	    matchesTree:eachSearch searchTree
+	    do:[:aNode :answer |
+		(eachSearch canMatch: aNode) ifTrue:[
+		    matchingMethods add:currentMethod
+		]
+	    ]
     ].
 
     matchingMethods := Set new.
     self
-        withMethodsDo:[:mthd| 
-            | tree |
+	withMethodsDo:[:mthd|
+	    | tree |
 
-            tree := mthd parseTree.
-            tree 
-                ifNil:[
-                    Transcript showCR:'MethodRewriter: parse tree error in ',mthd whoString.
-                    self breakPoint: #jv
-                ] 
-                ifNotNil:[
-                    currentMethod := mthd.
-                    searcher executeTree: tree
-                ]
-        ]
-        finallyDo:[
-            block value: matchingMethods
-        ]
+	    tree := mthd parseTree.
+	    tree
+		ifNil:[
+		    Transcript showCR:'MethodRewriter: parse tree error in ',mthd whoString.
+		    self breakPoint: #jv
+		]
+		ifNotNil:[
+		    currentMethod := mthd.
+		    searcher executeTree: tree
+		]
+	]
+	finallyDo:[
+	    block value: matchingMethods
+	]
 
     "Created: / 12-12-2007 / 10:34:50 / janfrog"
     "Modified: / 07-04-2011 / 22:02:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -1565,15 +1565,15 @@
 
 methodsForClasses
     cachedMethodsFromClasses isNil ifTrue:[
-        cachedMethodsFromClasses :=
-            (classes
-                inject: OrderedCollection new
-                into:[:methods :cls|
-                    methods
-                        addAll: cls methodDictionary values;
-                        addAll: cls class methodDictionary values;
-                        yourself]
-            ) asArray.
+	cachedMethodsFromClasses :=
+	    (classes
+		inject: OrderedCollection new
+		into:[:methods :cls|
+		    methods
+			addAll: cls methodDictionary values;
+			addAll: cls class methodDictionary values;
+			yourself]
+	    ) asArray.
     ].
     ^ cachedMethodsFromClasses
 !
@@ -1582,16 +1582,16 @@
     |methods matchingMethods|
 
     searchPattern isEmptyOrNil ifTrue:[
-        Dialog warn:'No searchpattern given'.
-        AbortSignal raise
+	Dialog warn:'No searchpattern given'.
+	AbortSignal raise
     ].
     methods := self methodsToSearchOrAbortIfNone.
 
     matchingMethods := OrderedCollection new.
-    methods do:[:mth | 
-        (ParseTreeSearcher new)
-            matches:searchPattern do:[:aNode :answer | matchingMethods add:mth ];
-            executeTree:mth parseTree.
+    methods do:[:mth |
+	(ParseTreeSearcher new)
+	    matches:searchPattern do:[:aNode :answer | matchingMethods add:mth ];
+	    executeTree:mth parseTree.
     ].
     ^ matchingMethods
 
@@ -1602,17 +1602,17 @@
     |methods matchingMethods|
 
     rule isNil ifTrue:[
-        Dialog warn:'No rule given'.
-        AbortSignal raise
+	Dialog warn:'No rule given'.
+	AbortSignal raise
     ].
     methods := self methodsToSearchOrAbortIfNone.
 
     matchingMethods := OrderedCollection new.
-    methods do:[:mth | 
-        |searcher|
+    methods do:[:mth |
+	|searcher|
 
-        searcher := ParseTreeSearcher new.
-        rule searches halt.
+	searcher := ParseTreeSearcher new.
+	rule searches halt.
 "/            matches:searchPattern do:[:aNode :answer | matchingMethods add:mth ];
 "/            executeTree:mth parseTree.
     ].
@@ -1621,23 +1621,23 @@
 
 methodsToSearchOrAbortIfNone
     (methods := self methods) isEmptyOrNil ifTrue:[
-        Dialog warn:'No methods or classes defined for search'.
-        AbortSignal raise.
+	Dialog warn:'No methods or classes defined for search'.
+	AbortSignal raise.
     ].
     ^ methods
 !
 
 showMethods: methods title: title
 
-    NewSystemBrowser 
-                browseMethods:methods
-                title:title
-                sort:true
+    NewSystemBrowser
+		browseMethods:methods
+		title:title
+		sort:true
 
     "Created: / 21-07-2007 / 06:51:36 / janfrog"
 !
 
-withMethods: givenMethods do: methodBlock 
+withMethods: givenMethods do: methodBlock
 
     ^self withMethods: givenMethods do: methodBlock finallyDo: []
 
@@ -1647,27 +1647,27 @@
 withMethods: methods do: methodBlock finallyDo: finallyBlock
 
     [
-        |numMethods|
+	|numMethods|
 
-        numMethods := methods size.
+	numMethods := methods size.
 
-        self actionInProgress: true.
-        self progress: 0.
+	self actionInProgress: true.
+	self progress: 0.
 
-        methods asArray keysAndValuesDo:[:idx :mth|
-            numMethods > 100 ifTrue:[
-                self info: mth mclass name.
-            ] ifFalse:[
-                self info: mth selector storeString.
-            ].
-            methodBlock value: mth.
-            self progress: ((100 / methods size) * idx) rounded
-        ].
-        finallyBlock value
+	methods asArray keysAndValuesDo:[:idx :mth|
+	    numMethods > 100 ifTrue:[
+		self info: mth mclass name.
+	    ] ifFalse:[
+		self info: mth selector storeString.
+	    ].
+	    methodBlock value: mth.
+	    self progress: ((100 / methods size) * idx) rounded
+	].
+	finallyBlock value
     ] ensure:[
-        "/self actionInProgress: false.
-        self progress: 0.
-        self info: ''
+	"/self actionInProgress: false.
+	self progress: 0.
+	self info: ''
     ]
 
     "Created: / 12-12-2007 / 10:32:16 / janfrog"
@@ -1676,10 +1676,10 @@
 
 withMethodsDo: methodBlock finallyDo: finallyBlock
 
-   ^self 
-        withMethods: self methodsToSearchOrAbortIfNone asArray
-        do: methodBlock
-        finallyDo: finallyBlock
+   ^self
+	withMethods: self methodsToSearchOrAbortIfNone asArray
+	do: methodBlock
+	finallyDo: finallyBlock
 
     "Modified: / 12-12-2007 / 10:32:48 / janfrog"
 ! !
@@ -1696,11 +1696,11 @@
 !MethodRewriter class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__MethodRewriter.st,v 1.26 2015-05-23 12:47:03 cg Exp $'
+    ^ '$Header$'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__MethodRewriter.st,v 1.26 2015-05-23 12:47:03 cg Exp $'
+    ^ '$Header$'
 !
 
 version_HG
@@ -1709,6 +1709,5 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__MethodRewriter.st,v 1.26 2015-05-23 12:47:03 cg Exp $'
+    ^ '$Id$'
 ! !
-
--- a/Tools__NavigationState.st	Mon Aug 31 09:35:59 2015 +0100
+++ b/Tools__NavigationState.st	Tue Sep 01 06:43:01 2015 +0100
@@ -721,6 +721,10 @@
     ^ cursorColLabelHolder
 !
 
+cursorLineAndColumnLabelHolder
+    ^ self codeView cursorLineAndColumnLabelHolder.
+!
+
 cursorLineLabelHolder
     cursorLineLabelHolder isNil ifTrue:[
 "/        self codeView isNil ifTrue:[^ nil].
@@ -1724,15 +1728,15 @@
 !NavigationState class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NavigationState.st,v 1.61 2015-05-20 10:27:52 cg Exp $'
+    ^ '$Header$'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NavigationState.st,v 1.61 2015-05-20 10:27:52 cg Exp $'
+    ^ '$Header$'
 !
 
 version_SVN
-    ^ '$Id: Tools__NavigationState.st,v 1.61 2015-05-20 10:27:52 cg Exp $'
+    ^ '$Id$'
 ! !
 
 
--- a/Tools__NewSystemBrowser.st	Mon Aug 31 09:35:59 2015 +0100
+++ b/Tools__NewSystemBrowser.st	Tue Sep 01 06:43:01 2015 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 2000 by eXept Software AG
               All Rights Reserved
@@ -1394,165 +1396,156 @@
 
     <resource: #canvas>
 
-    ^
-     #(FullSpec
-        name: codePaneSpec
-        window:
-       (WindowSpec
-          label: 'SystemBrowser'
-          name: 'SystemBrowser'
-          min: (Point 0 0)
-          bounds: (Rectangle 0 0 998 535)
-          icon: defaultIcon
-        )
-        component:
-       (SpecCollection
-          collection: (
-           (VariableHorizontalPanelSpec
-              name: 'EditorAndBrowsletBox'
-              layout: (LayoutFrame 0 0 0 0 0 1 0 1)
-              component:
-             (SpecCollection
-                collection: (
-                 (ViewSpec
-                    name: 'EditorBox'
-                    component:
-                   (SpecCollection
-                      collection: (
-                       (NoteBookViewSpec
-                          name: 'EditorNoteBook'
-                          layout: (LayoutFrame 0 0 0 0 0 1 -26 1)
-                          level: 0
-                          model: selectedEditorNoteBookTabIndexHolder
-                          menu: editorNoteBookListHolder
-                          useIndex: true
-                          canvas: editorNoteBookCanvasHolder
-                          keepCanvasAlive: true
-                          postBuildCallback: postBuildEditorNoteBook:
-              translateLabel: false
-                        )
-                       (SubCanvasSpec
-                          name: 'StringSearchToolCanvas'
-                          layout: (LayoutFrame 0 0 -24 1 0 1 0 1)
-                          visibilityChannel: stringSearchToolVisibleHolder
-                          hasHorizontalScrollBar: false
-                          hasVerticalScrollBar: false
-                          majorKey: StringSearchToolForTextView
-                          createNewApplication: true
-                          createNewBuilder: false
-                          postBuildCallback: postBuildStringSearchTool:
-                        )
+    ^ 
+    #(FullSpec
+       name: codePaneSpec
+       window: 
+      (WindowSpec
+         label: 'SystemBrowser'
+         name: 'SystemBrowser'
+         min: (Point 0 0)
+         bounds: (Rectangle 0 0 998 535)
+         icon: defaultIcon
+       )
+       component: 
+      (SpecCollection
+         collection: (
+          (VariableHorizontalPanelSpec
+             name: 'EditorAndBrowsletBox'
+             layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+             component: 
+            (SpecCollection
+               collection: (
+                (ViewSpec
+                   name: 'EditorBox'
+                   component: 
+                  (SpecCollection
+                     collection: (
+                      (NoteBookViewSpec
+                         name: 'EditorNoteBook'
+                         layout: (LayoutFrame 0 0 0 0 0 1 -26 1)
+                         level: 0
+                         model: selectedEditorNoteBookTabIndexHolder
+                         menu: editorNoteBookListHolder
+                         useIndex: true
+                         translateLabel: false
+                         canvas: editorNoteBookCanvasHolder
+                         keepCanvasAlive: true
+                         postBuildCallback: postBuildEditorNoteBook:
+                       )
+                      (SubCanvasSpec
+                         name: 'StringSearchToolCanvas'
+                         layout: (LayoutFrame 0 0 -24 1 0 1 0 1)
+                         visibilityChannel: stringSearchToolVisibleHolder
+                         hasHorizontalScrollBar: false
+                         hasVerticalScrollBar: false
+                         majorKey: StringSearchToolForTextView
+                         createNewApplication: true
+                         createNewBuilder: false
+                         postBuildCallback: postBuildStringSearchTool:
                        )
-
-                    )
-                  )
-                 )
-
-              )
-              handles: (Any 1.0)
-              postBuildCallback: postBuildCodePaneAndPluginView:
-            )
-           (ViewSpec
-              name: 'InfoBox'
-              layout: (LayoutFrame 0 0 -24 1 0 1 0 1)
-              visibilityChannel: codeInfoVisible
-              component:
-             (SpecCollection
-                collection: (
-                 (VariableHorizontalPanelSpec
-                    name: 'InfoBoxPanel'
-                    layout: (LayoutFrame 0 0.0 0 0.0 -60 1.0 0 1.0)
-                    showHandle: false
-                    component:
-                   (SpecCollection
-                      collection: (
-                       (LabelSpec
-                          label: 'Info'
-                          name: 'InfoLabel'
-                          level: -1
-                          translateLabel: true
-                          labelChannel: infoLabelHolder
-                          adjust: left
-                        )
-                       (HorizontalPanelViewSpec
-                          name: 'PackageInfoPanel'
-                          level: -1
-                          horizontalLayout: rightSpaceFit
-                          verticalLayout: fitSpace
-                          horizontalSpace: 0
-                          verticalSpace: 0
-                          elementsChangeSize: true
-                          component:
-                         (SpecCollection
-                            collection: (
-                             (LabelSpec
-                                label: 'Package'
-                                name: 'PackageLabel'
-                                activeHelpKey: packageInfoLabel
-                                level: 0
-                                backgroundChannel: packageInfoBackgroundColorHolder
-                                translateLabel: true
-                                labelChannel: packageLabelHolder
-                                adjust: left
-                                useDefaultExtent: true
-                              )
-                             (ActionButtonSpec
-                                label: 'Info'
-                                name: 'PackageInfoButton'
-                                level: 0
-                                initiallyInvisible: true
-                                backgroundChannel: packageInfoBackgroundColorHolder
-                                foregroundColor: (Color 0.0 0.0 100.0)
-                                translateLabel: true
-                                resizeForLabel: true
-                                extent: (Point 36 23)
-                                postBuildCallback: postBuildPackageInfoButton:
-                              )
+                      )
+                    
+                   )
+                 )
+                )
+              
+             )
+             handles: (Any 1.0)
+             postBuildCallback: postBuildCodePaneAndPluginView:
+           )
+          (ViewSpec
+             name: 'InfoBox'
+             layout: (LayoutFrame 0 0 -24 1 -16 1 0 1)
+             visibilityChannel: codeInfoVisible
+             component: 
+            (SpecCollection
+               collection: (
+                (VariableHorizontalPanelSpec
+                   name: 'InfoBoxPanel'
+                   layout: (LayoutFrame 0 0.0 0 0.0 -60 1.0 0 1.0)
+                   showHandle: false
+                   component: 
+                  (SpecCollection
+                     collection: (
+                      (LabelSpec
+                         label: 'Info'
+                         name: 'InfoLabel'
+                         level: -1
+                         translateLabel: true
+                         labelChannel: infoLabelHolder
+                         adjust: left
+                       )
+                      (HorizontalPanelViewSpec
+                         name: 'PackageInfoPanel'
+                         level: -1
+                         horizontalLayout: rightSpaceFit
+                         verticalLayout: fitSpace
+                         horizontalSpace: 0
+                         verticalSpace: 0
+                         elementsChangeSize: true
+                         component: 
+                        (SpecCollection
+                           collection: (
+                            (LabelSpec
+                               label: 'Package'
+                               name: 'PackageLabel'
+                               activeHelpKey: packageInfoLabel
+                               level: 0
+                               backgroundChannel: packageInfoBackgroundColorHolder
+                               translateLabel: true
+                               labelChannel: packageLabelHolder
+                               adjust: left
+                               useDefaultExtent: true
                              )
-
-                          )
-                        )
+                            (ActionButtonSpec
+                               label: 'Info'
+                               name: 'PackageInfoButton'
+                               level: 0
+                               initiallyInvisible: true
+                               backgroundChannel: packageInfoBackgroundColorHolder
+                               foregroundColor: (Color 0.0 0.0 100.0)
+                               translateLabel: true
+                               resizeForLabel: true
+                               extent: (Point 36 23)
+                               postBuildCallback: postBuildPackageInfoButton:
+                             )
+                            )
+                          
+                         )
                        )
-
-                    )
-                    handles: (Any 0.66 1.0)
-                  )
-                 (LabelSpec
-                    name: 'ModeLabel'
-                    layout: (LayoutFrame -60 1 0 0.0 -50 1 0 1.0)
-                    activeHelpKey: modeLabel
-                    level: -1
-                    translateLabel: true
-                    labelChannel: modeLabelHolder
-                    postBuildCallback: postBuildEditModeInfoLabel:
-                  )
-                 (LabelSpec
-                    name: 'CursorLineLabel'
-                    layout: (LayoutFrame -50 1 0 0.0 -20 1 0 1.0)
-                    activeHelpKey: lineLabel
-                    level: -1
-                    translateLabel: true
-                    labelChannel: cursorLineLabelHolder
-                    adjust: right
-                  )
-                 (LabelSpec
-                    name: 'CursorColLabel'
-                    layout: (LayoutFrame -20 1 0 0.0 0 1.0 0 1.0)
-                    activeHelpKey: columnLabel
-                    level: -1
-                    translateLabel: true
-                    labelChannel: cursorColLabelHolder
-                    adjust: right
-                  )
-                 )
-
-              )
-              keepSpaceForOSXResizeHandleH: true
-            )
-           )
-
-        )
-      )
+                      )
+                    
+                   )
+                   handles: (Any 0.66000000000000003 1.0)
+                 )
+                (LabelSpec
+                   name: 'ModeLabel'
+                   layout: (LayoutFrame -60 1 0 0.0 -50 1 0 1.0)
+                   activeHelpKey: modeLabel
+                   level: -1
+                   translateLabel: true
+                   labelChannel: modeLabelHolder
+                   postBuildCallback: postBuildEditModeInfoLabel:
+                 )
+                (LabelSpec
+                   name: 'CursorLineAndColumnLabel'
+                   layout: (LayoutFrame -50 1 0 0.0 0 1 0 1.0)
+                   activeHelpKey: lineAndColumnLabel
+                   level: -1
+                   translateLabel: false
+                   labelChannel: cursorLineAndColumnLabelHolder
+                   adjust: left
+                 )
+                )
+              
+             )
+             keepSpaceForOSXResizeHandleH: true
+           )
+          )
+        
+       )
+     )
 !
 
 fullBrowserSpec
@@ -18801,6 +18794,12 @@
     ^ self navigationState cursorColLabelHolder
 !
 
+cursorLineAndColumnLabelHolder
+    "the current buffers cursor position holder (info field)"
+
+    ^ self navigationState cursorLineAndColumnLabelHolder
+!
+
 cursorLineLabelHolder
     "the current buffers cursorLineumn Holder (info field)"
 
@@ -29427,8 +29426,17 @@
 classMenuBrowseClassesPackageDirectory
     "open a filebrowser in the classes package directory"
 
-    UserPreferences fileBrowserClass
-        openIn:(self theSingleSelectedClass theNonMetaclass packageDirectory)
+    |fileBrowser cls dir fn|
+
+    fileBrowser := UserPreferences fileBrowserClass.
+
+    cls := self theSingleSelectedClass theNonMetaclass.
+    dir := cls packageDirectory.
+    (dir asFilename exists and:[(fn := dir / cls classFilename) exists]) ifTrue:[
+        fileBrowser openOn:fn
+    ] ifFalse:[
+        fileBrowser openIn:dir
+    ]
 !
 
 classMenuChangeAspect:aspect
@@ -62169,7 +62177,8 @@
     ].
 
     anEvent isButtonMultiPressEvent ifTrue:[
-        anEvent view name = 'CursorLineLabel' ifTrue:[
+        (anEvent view name = 'CursorLineLabel'
+        or:[ anEvent view name = 'CursorLineAndColumnLabel' ]) ifTrue:[
             self codeView gotoLine
         ].
     ].
--- a/WorkspaceApplication.st	Mon Aug 31 09:35:59 2015 +0100
+++ b/WorkspaceApplication.st	Tue Sep 01 06:43:01 2015 +0100
@@ -20,7 +20,8 @@
 		smalltalkMenuEnabledHolder clipBoardWatcherProcess
 		fetchClipboardLines cursorLineHolder cursorColHolder
 		modeLabelHolder toolBarView namespaceHolder
-		canChangeLanguageHolder'
+		canChangeLanguageHolder cursorLineAndColumnInfoHolder
+		cursorLineAndColumnLabelHolder'
 	classVariableNames:'LastFilterBlockString LastProcessingBlockString
 		LastGeneratorBlockString LastTeaWaitTime DefaultToolBarVisible
 		ClipBoardFetchingInstance LastLanguage MyWorkspaceOpened
@@ -129,6 +130,9 @@
 #addTerminalWindows
 'Add a tab with an embedded console-terminal (windows users: ignore the no-echo bug, please)'
 
+#lineAndColumnLabel
+'The text-cursor''s line and column number'
+
 #columnLabel
 'The text-cursor''s column number'
 
@@ -539,6 +543,7 @@
                    name: 'infoLabel'
                    layout: (LayoutFrame 0 0.0 0 0.0 -220 1.0 0 1.0)
                    level: -1
+                   translateLabel: true
                    labelChannel: infoLabelHolder
                    resizeForLabel: false
                    adjust: left
@@ -548,6 +553,7 @@
                    layout: (LayoutFrame -220 1.0 0 0.0 -136 1.0 0 1.0)
                    activeHelpKey: namespaceSelection
                    level: -1
+                   translateLabel: true
                    labelChannel: namespaceInfoLabelHolder
                    resizeForLabel: false
                    adjust: left
@@ -558,6 +564,7 @@
                    layout: (LayoutFrame -136 1.0 0 0.0 -65 1.0 0 1.0)
                    activeHelpKey: languageSelection
                    level: -1
+                   translateLabel: true
                    labelChannel: languageInfoLabelHolder
                    resizeForLabel: false
                    adjust: left
@@ -573,22 +580,12 @@
                    postBuildCallback: postBuildEditModeInfoLabel:
                  )
                 (LabelSpec
-                   name: 'CursorLineLabel'
-                   layout: (LayoutFrame -50 1 0 0.0 -20 1 0 1.0)
-                   activeHelpKey: lineLabel
+                   name: 'CursorLineAndColLabel'
+                   layout: (LayoutFrame -50 1 0 0.0 0 1 0 1.0)
+                   activeHelpKey: lineAndColumnLabel
                    level: -1
-                   translateLabel: true
-                   labelChannel: cursorLineLabelHolder
-                   adjust: right
-                 )
-                (LabelSpec
-                   name: 'CursorColLabel'
-                   layout: (LayoutFrame -20 1 0 0.0 0 1.0 0 1.0)
-                   activeHelpKey: columnLabel
-                   level: -1
-                   translateLabel: true
-                   labelChannel: cursorColLabelHolder
-                   adjust: right
+                   labelChannel: cursorLineAndColumnLabelHolder
+                   adjust: left
                  )
                 )
               
@@ -2151,6 +2148,13 @@
     "Created: / 22-01-2011 / 11:36:08 / cg"
 !
 
+cursorLineAndColumnLabelHolder
+    cursorLineAndColumnLabelHolder isNil ifTrue:[
+        cursorLineAndColumnLabelHolder := IndirectValue for:(ValueHolder with:1)
+    ].
+    ^ cursorLineAndColumnLabelHolder
+!
+
 cursorLineHolder
     cursorLineHolder isNil ifTrue:[
         cursorLineHolder := IndirectValue for:(ValueHolder with:1)
@@ -4414,10 +4418,12 @@
     self syntaxHolder value:(self syntaxFromEvaluatorClass:compilerClass).
 
     (selectedWorkspace notNil and:[ selectedWorkspace scrolledView isTextView or:[selectedWorkspaceApp notNil] ]) ifTrue:[
+        self cursorLineAndColumnLabelHolder valueHolder:( selectedWorkspaceApp ? selectedWorkspace perform:#cursorLineAndColumnLabelHolder ifNotUnderstood:nil ).
         self cursorLineHolder valueHolder:( selectedWorkspaceApp ? selectedWorkspace perform:#cursorLineHolder ifNotUnderstood:nil ).
         self cursorColHolder valueHolder:( selectedWorkspaceApp ? selectedWorkspace perform:#cursorColHolder ifNotUnderstood:nil ).
         self modeLabelHolder valueHolder:( selectedWorkspaceApp ? selectedWorkspace perform:#modeLabelHolder ifNotUnderstood:nil ).
     ] ifFalse:[
+        self cursorLineAndColumnLabelHolder valueHolder:nil.
         self cursorLineHolder valueHolder:nil.
         self cursorColHolder valueHolder:nil.
         self modeLabelHolder valueHolder:nil.
@@ -4429,7 +4435,7 @@
         "/ client provides one
         self toolBarView client: selectedWorkspaceApp spec: #toolBarSpec
     ] ifFalse:[
-        "/ I provides it
+        "/ I provide it
         self toolBarView client: self spec: #toolBarSpec builder: builder.
     ]
 ! !