ChangesBrowser.st
changeset 15674 aaeb8e2937a3
parent 15652 788f4c9d0b07
child 15676 e68da8ba8c7f
child 15683 dbf1e874fc93
--- a/ChangesBrowser.st	Sun May 31 11:26:27 2015 +0200
+++ b/ChangesBrowser.st	Thu Jun 04 19:23:43 2015 +0200
@@ -2531,6 +2531,12 @@
     "Created: / 20-11-2006 / 16:37:56 / cg"
 !
 
+findFirstForClass:className
+    "findNextForClass menu action: select the next change for the selected changes class"
+
+    self findNextForClass:className startingAt:1
+!
+
 findLastForClass
     "findPreviousForClass menu action: select the previous change for the selected changes class"
 
@@ -2539,6 +2545,14 @@
     "Created: / 20-11-2006 / 16:39:15 / cg"
 !
 
+findLastForClass:className
+    "findPreviousForClass menu action: select the previous change for the selected changes class"
+
+    self findPreviousForClass:className startingAt:(self numberOfChanges)
+
+    "Created: / 20-11-2006 / 16:39:15 / cg"
+!
+
 findLastSnapshot
     "findLastSnapshot menu action: select the last change which is for a snapShot-image save action"
 
@@ -2597,6 +2611,22 @@
     "Modified: / 20-11-2006 / 16:37:49 / cg"
 !
 
+findNextForClass:className startingAt:startNr
+    "findNextForClass menu action: select the next change for the selected changes class"
+
+    lastSearchType := #class.
+
+    self 
+        findNextForWhich:[:changeNr |
+                |thisClass|
+
+                thisClass := self classNameOfChange:changeNr.
+                (thisClass = className
+                or:[className includesMatchCharacters 
+                    and:[className match:thisClass]])]
+        startingAt:startNr
+!
+
 findNextForClassStartingAt:startNr
     "findNextForClass menu action: select the next change for the selected changes class"
 
@@ -2607,15 +2637,7 @@
 
     cls := self classNameOfChange:changeNrShown.
     cls isNil ifTrue:[^ self].
-
-    self 
-        findNextForWhich:[:changeNr |
-                |thisClass|
-
-                thisClass := self classNameOfChange:changeNr.
-                (thisClass = cls
-                or:[cls includesMatchCharacters and:[cls match:thisClass]])]
-        startingAt:startNr
+    self findNextForClass:cls startingAt:startNr.
 
     "Created: / 20-11-2006 / 16:37:37 / cg"
 !
@@ -2784,6 +2806,23 @@
     "Modified: / 20-11-2006 / 16:39:04 / cg"
 !
 
+findPreviousForClass:className startingAt:startNr
+    "findPreviousForClass menu action: select the previous change for the selected changes class"
+
+    lastSearchType := #class.
+
+    self 
+        findPreviousForWhich:
+            [:changeNr |
+                    |thisClass|
+
+                    thisClass := self classNameOfChange:changeNr.
+                    (thisClass = className
+                    or:[className includesMatchCharacters 
+                        and:[className match:thisClass]])]
+        startingAt:startNr
+!
+
 findPreviousForClassStartingAt:startNr
     "findPreviousForClass menu action: select the previous change for the selected changes class"
 
@@ -2795,15 +2834,7 @@
     cls := self classNameOfChange:changeNrShown.
     cls isNil ifTrue:[^ self].
 
-    self 
-        findPreviousForWhich:
-            [:changeNr |
-                    |thisClass|
-
-                    thisClass := self classNameOfChange:changeNr.
-                    (thisClass = cls
-                    or:[cls includesMatchCharacters and:[cls match:thisClass]])]
-        startingAt:startNr
+    self findPreviousForClass:cls startingAt:startNr
 
     "Created: / 20-11-2006 / 16:38:37 / cg"
 !
@@ -5629,26 +5660,34 @@
     |searchString directionHolder searchBlock|
 
     searchString := self
-	askForSearchString:msg
-	initialAnswer:initial
-	directionInto:(directionHolder := ValueHolder new).
+        askForSearchString:msg
+        initialAnswer:initial
+        directionInto:(directionHolder := ValueHolder new).
 
     searchString isNil ifTrue:[
-	^ cancelBlock value
-    ].
-
+        ^ cancelBlock value
+    ].
+    directionHolder value == #first ifTrue:[
+        self findFirstForClass:searchString.
+        ^ self.
+    ].    
+    directionHolder value == #last ifTrue:[
+        self findLastForClass:searchString.
+        ^ self.
+    ].    
+    
     searchBlock := [:changeNr | searchBlock2 value:searchString value:changeNr].
 
     directionHolder value == #backward ifTrue:[
-	changeNrShown isNil ifTrue:[
-	    changeNrShown := self numberOfChanges.
-	].
-	self findPreviousForWhich:searchBlock
+        changeNrShown isNil ifTrue:[
+            changeNrShown := self numberOfChanges.
+        ].
+        self findPreviousForWhich:searchBlock
     ] ifFalse:[
-	changeNrShown isNil ifTrue:[
-	    changeNrShown := 0.
-	].
-	self findNextForWhich:searchBlock
+        changeNrShown isNil ifTrue:[
+            changeNrShown := 0.
+        ].
+        self findNextForWhich:searchBlock
     ].
 !
 
@@ -5661,12 +5700,22 @@
 
     "/ take a normal request box, but add an additional 'previous' button
     Dialog modifyingBoxWith:[:box |
-        |nextButton prevButton|
+        |nextButton prevButton firstButton lastButton|
 
         nextButton := box okButton.
+
+        firstButton := Button label:(resources string:'First').
+        firstButton action:[direction := #first. box okPressed.].
+        box addButton:firstButton after:nextButton.
+        
+        lastButton := Button label:(resources string:'Last').
+        lastButton action:[direction := #last. box okPressed.].
+        box addButton:lastButton after:nextButton.
+
         prevButton := Button label:(resources string:'Previous').
         prevButton action:[direction := #backward. box okPressed.].
         box addButton:prevButton after:nextButton.
+
         nextButton label:(resources string:'Next').
     ] do:[
         searchString := Dialog
@@ -6554,10 +6603,10 @@
 !ChangesBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.473 2015-05-20 10:28:51 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.474 2015-06-04 17:23:43 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.473 2015-05-20 10:28:51 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.474 2015-06-04 17:23:43 cg Exp $'
 ! !