Tools__ChangeSetDiffTool.st
branchjv
changeset 15566 184cea584be5
parent 13675 36933883999a
parent 15231 37bdad4551ec
child 15934 0dbb17d42cbd
--- a/Tools__ChangeSetDiffTool.st	Sun Jan 12 23:30:25 2014 +0000
+++ b/Tools__ChangeSetDiffTool.st	Wed Apr 01 10:38:01 2015 +0100
@@ -417,32 +417,32 @@
 
     <resource: #canvas>
 
-    ^
+    ^ 
      #(FullSpec
-	name: labelSpec
-	window:
+        name: labelSpec
+        window: 
        (WindowSpec
-	  label: 'Label'
-	  name: 'Label'
-	  min: (Point 10 10)
-	  bounds: (Rectangle 0 0 600 48)
-	)
-	component:
+          label: 'Label'
+          name: 'Label'
+          min: (Point 10 10)
+          bounds: (Rectangle 0 0 600 48)
+        )
+        component: 
        (SpecCollection
-	  collection: (
-	   (UISubSpecification
-	      name: 'LabelA'
-	      layout: (LayoutFrame 0 0 0 0 0 1 0 0.5)
-	      minorKey: versionALabelSpec
-	    )
-	   (UISubSpecification
-	      name: 'LabelB'
-	      layout: (LayoutFrame 0 0 0 0.5 0 1 0 1)
-	      minorKey: versionBLabelSpec
-	    )
-	   )
-
-	)
+          collection: (
+           (UISubSpecification
+              name: 'LabelA'
+              layout: (LayoutFrame 0 0 0 0 0 1 0 0.5)
+              minorKey: versionALabelSpec
+            )
+           (UISubSpecification
+              name: 'LabelB'
+              layout: (LayoutFrame 0 0 0 0.5 0 1 0 1)
+              minorKey: versionBLabelSpec
+            )
+           )
+         
+        )
       )
 !
 
@@ -1038,46 +1038,46 @@
 
     <resource: #canvas>
 
-    ^
+    ^ 
      #(FullSpec
-	name: versionALabelSpec
-	window:
+        name: versionALabelSpec
+        window: 
        (WindowSpec
-	  label: 'Version A'
-	  name: 'Version A'
-	  min: (Point 10 10)
-	  bounds: (Rectangle 0 0 300 30)
-	  backgroundColor: (Color 79.6078431372549 90.5882352941177 69.4117647058823)
-	  forceRecursiveBackground: true
-	)
-	component:
+          label: 'Version A'
+          name: 'Version A'
+          min: (Point 10 10)
+          bounds: (Rectangle 0 0 300 30)
+          backgroundColor: (Color 79.6078431372549 90.5882352941177 69.4117647058823)
+          forceRecursiveBackground: true
+        )
+        component: 
        (SpecCollection
-	  collection: (
-	   (LabelSpec
-	      label: 'versionA24x24'
-	      name: 'VersionAIcon'
-	      layout: (LayoutFrame 0 0 -12 0.5 27 0 12 0.5)
-	      hasCharacterOrientedLabel: false
-	      translateLabel: true
-	    )
-	   (LabelSpec
-	      label: 'Version A'
-	      name: 'VersionALabel'
-	      layout: (LayoutFrame 30 0 0 0 0 1 0 1)
-	      translateLabel: true
-	      labelChannel: versionALabelHolder
-	      resizeForLabel: true
-	      adjust: left
-	    )
-	   (LabelSpec
-	      label: '(A)'
-	      name: 'ALabel'
-	      layout: (LayoutFrame -30 1 0 0 0 1 0 1)
-	      translateLabel: true
-	    )
-	   )
-
-	)
+          collection: (
+           (LabelSpec
+              label: 'versionA24x24'
+              name: 'VersionAIcon'
+              layout: (LayoutFrame 0 0 -12 0.5 27 0 12 0.5)
+              hasCharacterOrientedLabel: false
+              translateLabel: true
+            )
+           (LabelSpec
+              label: 'Version A'
+              name: 'VersionALabel'
+              layout: (LayoutFrame 30 0 0 0 0 1 0 1)
+              translateLabel: true
+              labelChannel: versionALabelHolder
+              resizeForLabel: true
+              adjust: left
+            )
+           (LabelSpec
+              label: '(A)'
+              name: 'ALabel'
+              layout: (LayoutFrame -30 1 0 0 0 1 0 1)
+              translateLabel: true
+            )
+           )
+         
+        )
       )
 !
 
@@ -1095,48 +1095,48 @@
 
     <resource: #canvas>
 
-    ^
+    ^ 
      #(FullSpec
-	name: versionBLabelSpec
-	window:
+        name: versionBLabelSpec
+        window: 
        (WindowSpec
-	  label: 'Version B'
-	  name: 'Version B'
-	  min: (Point 10 10)
-	  bounds: (Rectangle 0 0 300 30)
-	  backgroundColor: (Color 100.0 90.5882352941177 60.0)
-	  forceRecursiveBackground: true
-	)
-	component:
+          label: 'Version B'
+          name: 'Version B'
+          min: (Point 10 10)
+          bounds: (Rectangle 0 0 300 30)
+          backgroundColor: (Color 100.0 90.5882352941177 60.0)
+          forceRecursiveBackground: true
+        )
+        component: 
        (SpecCollection
-	  collection: (
-	   (LabelSpec
-	      label: 'versionB24x24'
-	      name: 'VersionBIcon'
-	      layout: (LayoutFrame 0 0 -12 0.5 27 0 12 0.5)
-	      hasCharacterOrientedLabel: false
-	      translateLabel: true
-	    )
-	   (LabelSpec
-	      label: 'Version B'
-	      name: 'VersionBLabel'
-	      layout: (LayoutFrame 30 0 0 0 167 0 0 1)
-	      translateLabel: true
-	      labelChannel: versionBLabelHolder
-	      resizeForLabel: true
-	      adjust: left
-	      useDynamicPreferredWidth: true
-	      usePreferredWidth: true
-	    )
-	     (LabelSpec
-	     label: '(B)'
-	     name: 'BLabel'
-	     layout: (LayoutFrame -30 1 0 0 0 1 0 1)
-	     translateLabel: true
-	    )
-	   )
-
-	)
+          collection: (
+           (LabelSpec
+              label: 'versionB24x24'
+              name: 'VersionBIcon'
+              layout: (LayoutFrame 0 0 -12 0.5 27 0 12 0.5)
+              hasCharacterOrientedLabel: false
+              translateLabel: true
+            )
+           (LabelSpec
+              label: 'Version B'
+              name: 'VersionBLabel'
+              layout: (LayoutFrame 30 0 0 0 167 0 0 1)
+              translateLabel: true
+              labelChannel: versionBLabelHolder
+              resizeForLabel: true
+              adjust: left
+              useDynamicPreferredWidth: true
+              usePreferredWidth: true
+            )
+             (LabelSpec
+             label: '(B)'
+             name: 'BLabel'
+             layout: (LayoutFrame -30 1 0 0 0 1 0 1)
+             translateLabel: true
+            )
+           )
+         
+        )
       )
 
     "Modified: / 16-12-2011 / 14:17:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -1264,6 +1264,60 @@
 
 !ChangeSetDiffTool class methodsFor:'menu specs'!
 
+listMenu
+    "This resource specification was automatically generated
+     by the MenuEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the MenuEditor may not be able to read the specification."
+
+    "
+     MenuEditor new openOnClass:SVN::DiffBrowser andSelector:#listMenu
+     (Menu new fromLiteralArrayEncoding:(SVN::DiffBrowser listMenu)) startUp
+    "
+
+    <resource: #menu>
+
+    ^ 
+     #(Menu
+        (
+         (MenuItem
+            label: 'Browse'
+            itemValue: listMenuBrowse
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Load version A'
+            itemValue: listMenuLoadVersionA
+            nameKey: LoadVersionA
+            translateLabel: true
+            labelImage: (ResourceRetriever #'SVN::IconLibrary' versionA16x16 'Load version A')
+          )
+         (MenuItem
+            label: 'Load version B'
+            itemValue: listMenuLoadVersionB
+            nameKey: LoadVersionB
+            translateLabel: true
+            labelImage: (ResourceRetriever #'SVN::IconLibrary' versionB16x16 'Load version B')
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            enabled: hasSelection
+            label: 'Inspect'
+            itemValue: listMenuInspect
+            translateLabel: true
+          )
+         )
+        nil
+        nil
+      )
+!
+
 listMenuDiff
     "This resource specification was automatically generated
      by the MenuEditor of ST/X."
@@ -1694,7 +1748,7 @@
      (if this app is embedded in a subCanvas)."
 
     ^ #(
-	#diffsetHolder
+        #diffsetHolder
       ).
 
 ! !
@@ -1718,8 +1772,8 @@
 beTwoColumn: aBoolean
 
     aBoolean
-	ifTrue:[self beTwoColumn]
-	ifFalse:[self beSingleColumn]
+        ifTrue:[self beTwoColumn]
+        ifFalse:[self beSingleColumn]
 
     "Created: / 20-11-2009 / 20:43:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
@@ -1738,7 +1792,7 @@
 !
 
 diffset
-
+    
     ^self diffsetHolder value
 
     "Created: / 05-12-2009 / 11:53:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -1756,7 +1810,7 @@
     | patchset |
     patchset := ChangeSet new.
     self diffset do:
-	[:diff|patchset add:diff versionA].
+        [:diff|patchset add:diff versionA].
     ^patchset
 
     "Created: / 05-12-2009 / 11:54:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -1866,22 +1920,22 @@
     sel := self selection.
 
     (sel isCollection and:[self isString not])
-	ifFalse:[^sel].
+        ifFalse:[^sel].
 
     selSize := 0.
-    obj := nil.
+    obj := nil.        
     sel do:
-	[:each|
-	selSize := selSize + 1.
-	selSize > 1 ifTrue:[^nil].
-	obj := each].
+        [:each|
+        selSize := selSize + 1.
+        selSize > 1 ifTrue:[^nil].
+        obj := each].
     ^obj
 
     "Created: / 10-11-2009 / 11:12:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 20-11-2009 / 19:54:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-!ChangeSetDiffTool methodsFor:'accessing-subapps'!
+!ChangeSetDiffTool methodsFor:'accessing-subApps'!
 
 textDiff2Tool
     textDiff2App isNil ifTrue:[
@@ -2023,8 +2077,8 @@
     "return/create the 'diffsetHolder' value holder (automatically generated)"
 
     diffsetHolder isNil ifTrue:[
-	diffsetHolder := ValueHolder new.
-	diffsetHolder addDependent:self.
+        diffsetHolder := ValueHolder new.
+        diffsetHolder addDependent:self.
     ].
     ^ diffsetHolder
 !
@@ -2035,16 +2089,16 @@
     |oldValue newValue|
 
     diffsetHolder notNil ifTrue:[
-	oldValue := diffsetHolder value.
-	diffsetHolder removeDependent:self.
+        oldValue := diffsetHolder value.
+        diffsetHolder removeDependent:self.
     ].
     diffsetHolder := aValueHolder.
     diffsetHolder notNil ifTrue:[
-	diffsetHolder addDependent:self.
+        diffsetHolder addDependent:self.
     ].
     newValue := diffsetHolder value.
     oldValue ~~ newValue ifTrue:[
-	self update:#value with:newValue from:diffsetHolder.
+        self update:#value with:newValue from:diffsetHolder.
     ].
 !
 
@@ -2052,7 +2106,7 @@
     "return/create the 'diffSetHolderPrivate' value holder (automatically generated)"
 
     diffsetHolderPrivate isNil ifTrue:[
-	diffsetHolderPrivate := ValueHolder with: (self diffsetHolder value).
+        diffsetHolderPrivate := ValueHolder with: (self diffsetHolder value).
     ].
     ^ diffsetHolderPrivate
 
@@ -2063,7 +2117,7 @@
     "return/create the valueHolder 'firstColSelectionHolder'"
 
     firstColSelectionHolder isNil ifTrue:[
-	firstColSelectionHolder := ValueHolder with:nil "defaultValue here".
+        firstColSelectionHolder := ValueHolder with:nil "defaultValue here".
     ].
     ^ firstColSelectionHolder
 !
@@ -2090,9 +2144,9 @@
     |holder|
 
     (holder := builder bindingAt:#hasSelectionHolder) isNil ifTrue:[
-	holder := (AspectAdaptor forAspect: #notEmptyOrNil)
-	    subjectChannel: self selectionHolder.
-	builder aspectAt:#hasSelectionHolder put: holder
+        holder := (AspectAdaptor forAspect: #notEmptyOrNil)
+            subjectChannel: self selectionHolder.
+        builder aspectAt:#hasSelectionHolder put: holder
     ].
     ^ holder.
 
@@ -2142,7 +2196,7 @@
     "return/create the 'listHolder' value holder (automatically generated)"
 
     listHolder isNil ifTrue:[
-	listHolder := ValueHolder new.
+        listHolder := ValueHolder new.
     ].
     ^ listHolder
 
@@ -2221,7 +2275,7 @@
 nameAspect
 
     ^(AspectAdaptor forAspect: #name)
-	subjectChannel: self diffsetHolder
+        subjectChannel: self diffsetHolder
 
     "Created: / 01-11-2009 / 11:14:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
@@ -2230,7 +2284,7 @@
     <resource: #uiAspect>
 
     navigatorPanelSpecHolder isNil ifTrue:[
-	navigatorPanelSpecHolder := ValueHolder with: #twoColumnNavigatorSpec.
+        navigatorPanelSpecHolder := ValueHolder with: #twoColumnNavigatorSpec.
     ].
     ^ navigatorPanelSpecHolder.
 
@@ -2250,8 +2304,8 @@
 
     selectionHolder isNil ifTrue:[
 
-	selectionHolder := ValueHolder new.
-	selectionHolder addDependent:self.
+        selectionHolder := ValueHolder new.
+        selectionHolder addDependent:self.
     ].
     ^ selectionHolder
 
@@ -2296,7 +2350,7 @@
     "return/create the 'singleSelectionHolder' value holder (automatically generated)"
 
     singleSelectionHolder isNil ifTrue:[
-	singleSelectionHolder := ValueHolder new.
+        singleSelectionHolder := ValueHolder new.
     ].
     ^ singleSelectionHolder
 
@@ -2341,7 +2395,7 @@
     "return/create the 'titleHolder' value holder (automatically generated)"
 
     titleHolder isNil ifTrue:[
-	titleHolder := ValueHolder with: 'Diff Browser'.
+        titleHolder := ValueHolder with: 'Diff Browser'.
     ].
     ^ titleHolder
 
@@ -2351,7 +2405,7 @@
 versionALabelHolder
 
     ^(AspectAdaptor forAspect: #versionALabel)
-	subjectChannel: self diffsetHolder
+        subjectChannel: self diffsetHolder
 
     "Created: / 09-04-2011 / 23:30:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
@@ -2359,7 +2413,7 @@
 versionATextHolder
 
     versionATextHolder isNil ifTrue:[
-	versionATextHolder := ValueHolder new
+        versionATextHolder := ValueHolder new
     ].
     ^versionATextHolder
 
@@ -2370,7 +2424,7 @@
 versionBLabelHolder
 
     ^(AspectAdaptor forAspect: #versionBLabel)
-	subjectChannel: self diffsetHolder
+        subjectChannel: self diffsetHolder
 
     "Created: / 09-04-2011 / 23:30:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
@@ -2378,7 +2432,7 @@
 versionBTextHolder
 
     versionBTextHolder isNil ifTrue:[
-	versionBTextHolder := ValueHolder new
+        versionBTextHolder := ValueHolder new
     ].
     ^versionBTextHolder
 
@@ -2554,18 +2608,20 @@
     loadA disable.
     loadB := menu atNameKey:#LoadVersionB.
     loadB disable.
-    (diffs select:[:e | true ]) do:[:diff |
-	diff versionA
-	    ifNotNil:[
-		loadA enable.
-		loadA label:'Load version ' , diff versionALabel
-	    ].
-	diff versionB
-	    ifNotNil:[
-		loadB
-		    label:'Load version ' , diff versionBLabel;
-		    enable
-	    ].
+    "/ cg: what is the purpose of this select?
+    (diffs select:[:e | true ]) do:[:diff | 
+        diff versionA 
+            ifNotNil:[
+                loadA 
+                    label:('Load version ' , diff versionALabel);
+                    enable.
+            ].
+        diff versionB 
+            ifNotNil:[
+                loadB
+                    label:('Load version ' , diff versionBLabel);
+                    enable
+            ].
     ].
 !
 
@@ -2678,6 +2734,15 @@
     "Modified: / 13-11-2013 / 11:54:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+fileMenuOpenOnDiffBetween: a and: b
+
+    self diffset: (ChangeSetDiff versionA: a versionB: b).
+
+    "Created: / 21-03-2011 / 23:23:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 29-06-2011 / 08:10:17 / Jan Vrany <enter your email here>"
+    "Modified: / 06-07-2011 / 12:56:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 fileMenuOpenOnDiffInfo: info
 
     LastDiffInfo := info.
@@ -2745,24 +2810,24 @@
     | items |
     items := self selection collect:[:e|e]. "/must do collect as selection is an iterator..."
     items size == 1 ifTrue:[
-	| item cls sel |
-	item:= items anElement.
-	cls := item changeClass.
-	sel := item changeSelector.
-	cls notNil ifTrue:[
-	    sel notNil ifTrue:[
-		UserPreferences systemBrowserClass
-		    openInClass:cls selector:sel
-
-	    ] ifFalse:[
-		UserPreferences systemBrowserClass
-		    browseClass: cls
-	    ]
-	] ifFalse:[
-	    Dialog warn: (self class resources at: 'Oops, class is gone')
-	]
+        | item cls sel |
+        item:= items anElement.
+        cls := item changeClass.
+        sel := item changeSelector.
+        cls notNil ifTrue:[
+            sel notNil ifTrue:[
+                UserPreferences systemBrowserClass
+                    openInClass:cls selector:sel
+
+            ] ifFalse:[
+                UserPreferences systemBrowserClass
+                    browseClass: cls
+            ]
+        ] ifFalse:[
+            Dialog warn: (self class resources at: 'Oops, class is gone')
+        ]
     ] ifFalse:[
-	Dialog error: 'Not yet implemented (Tools::ChangeSetDiffTool>>listMenuBrowse)'.
+        Dialog error: 'Not yet implemented (Tools::ChangeSetDiffTool>>listMenuBrowse)'.                        
     ]
 
     "Created: / 30-11-2011 / 11:30:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -2778,7 +2843,7 @@
 listMenuLoadVersionA
 
     self selection do:
-	[:diff|diff versionA apply]
+        [:diff|diff versionA apply]
 
     "Modified: / 09-12-2009 / 23:09:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
@@ -2786,7 +2851,7 @@
 listMenuLoadVersionB
 
     self selection do:
-	[:diff|diff versionB apply]
+        [:diff|diff versionB apply]
 
     "Modified: / 09-12-2009 / 23:10:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
@@ -2909,8 +2974,8 @@
 
     ^true
 
-    "^[self selection notNil
-	and:[self selection versionA notNil]]"
+    "^[self selection notNil 
+        and:[self selection versionA notNil]]"
 
     "Created: / 02-11-2009 / 18:32:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 21-11-2009 / 18:46:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -2960,6 +3025,13 @@
     ^[self selection notNil]
 
     "Created: / 03-11-2009 / 10:48:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isOneColumnBrowser
+
+    ^self navigatorPanelSpecHolder value = #oneColumnNavigatorSpec
+
+    "Created: / 05-12-2009 / 11:04:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ChangeSetDiffTool methodsFor:'startup & release'!
@@ -3010,13 +3082,6 @@
     ^self diffInfo notNil and:[self diffInfo isMerge]
 
     "Created: / 19-03-2012 / 11:53:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-isOneColumnBrowser
-
-    ^self navigatorPanelSpecHolder value = #oneColumnNavigatorSpec
-
-    "Created: / 05-12-2009 / 11:04:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ChangeSetDiffTool::OpenDialog class methodsFor:'image specs'!
@@ -3772,7 +3837,7 @@
     "return/create the 'changesetSpecAHolder' value holder (automatically generated)"
 
     changesetSpecAHolder isNil ifTrue:[
-	changesetSpecAHolder := ValueHolder new.
+        changesetSpecAHolder := ValueHolder new.
     ].
     ^ changesetSpecAHolder
 !
@@ -3787,7 +3852,7 @@
     "return/create the 'changesetSpecBHolder' value holder (automatically generated)"
 
     changesetSpecBHolder isNil ifTrue:[
-	changesetSpecBHolder := ValueHolder new.
+        changesetSpecBHolder := ValueHolder new.
     ].
     ^ changesetSpecBHolder
 !
@@ -3869,10 +3934,10 @@
 doAcceptEnabled
     <resource: #uiAspect>
 
-    ^BlockValue
-	with:[:a :b|a value notNil and:[b value notNil]]
-	argument:self changesetSpecAHolder
-	argument:self changesetSpecAHolder.
+    ^BlockValue 
+        with:[:a :b|a value notNil and:[b value notNil]]
+        argument:self changesetSpecAHolder
+        argument:self changesetSpecAHolder.
 
     "Modified: / 06-07-2011 / 11:26:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
@@ -3888,16 +3953,15 @@
 
 !ChangeSetDiffTool class methodsFor:'documentation'!
 
-version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeSetDiffTool.st,v 1.6 2013-06-25 17:12:36 cg Exp $'
+version
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeSetDiffTool.st,v 1.10 2015-02-07 18:06:54 cg Exp $'
 !
 
-version_HG
-
-    ^ '$Changeset: <not expanded> $'
+version_CVS
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeSetDiffTool.st,v 1.10 2015-02-07 18:06:54 cg Exp $'
 !
 
 version_SVN
-    ^ '$Id: Tools__ChangeSetDiffTool.st,v 1.6 2013-06-25 17:12:36 cg Exp $'
+    ^ '$Id: Tools__ChangeSetDiffTool.st,v 1.10 2015-02-07 18:06:54 cg Exp $'
 ! !