better user interface when asking for a revision to compare.
--- a/SourceCodeManagerUtilities.st Thu Jul 13 10:06:55 2000 +0200
+++ b/SourceCodeManagerUtilities.st Thu Jul 13 17:48:58 2000 +0200
@@ -177,6 +177,121 @@
"
!
+askForRevisionToCompare:boxText title:title class:aClass
+ "open a dialog asking for a containers revision;
+ return a revision number, or nil if canceled."
+
+ |mgr sourceInfo module package fileName|
+
+ mgr := aClass sourceCodeManager.
+ sourceInfo := mgr sourceInfoOfClass:aClass.
+ sourceInfo isNil ifTrue:[^ nil].
+
+ package := mgr packageFromSourceInfo:sourceInfo.
+ module := mgr moduleFromSourceInfo:sourceInfo.
+ fileName := mgr containerFromSourceInfo:sourceInfo.
+ ^ self
+ askForRevisionToCompare:boxText
+ title:title
+ class:aClass
+ manager:mgr
+ module:module package:package fileName:fileName
+
+ "
+ SourceCodeManagerUtilities
+ askForRevisionToCompare:'enter revision'
+ title:'revision'
+ class:Array
+ "
+!
+
+askForRevisionToCompare:boxText title:title class:clsOrNil manager:aSourceCodeManager module:module package:package fileName:fileName
+ "open a dialog asking for a containers revision;
+ return a revision number, or nil if canceled."
+
+ |partialLog revisions items newestRev
+ box y component resources
+ revisionHolder|
+
+ partialLog := aSourceCodeManager
+ revisionLogOf:clsOrNil
+ numberOfRevisions:20
+ fileName:fileName
+ directory:package
+ module:module.
+ partialLog notNil ifTrue:[
+ newestRev := partialLog at:#newestRevision.
+ revisions := partialLog at:#revisions.
+ items := revisions collect:[:each | |rev date who|
+ rev := each at:#revision.
+ date := each at:#date.
+ who := each at:#author.
+ rev asText allBold , ' [' , date , ' by ' , who , ']'
+ ].
+ revisions := revisions collect:[:each | each at:#revision].
+ ] ifFalse:[
+ newestRev := aSourceCodeManager newestRevisionInFile:fileName directory:package module:module.
+ revisions := items := nil.
+ ].
+
+ revisionHolder := newestRev asValue.
+ resources := ResourcePack for:self.
+
+ revisionHolder onChangeEvaluate:[
+ "/ cut off everything after revision
+ |s first|
+
+ s := revisionHolder value.
+ first := s asCollectionOfWords first string.
+ first ~= s ifTrue:[
+ revisionHolder value:first
+ ]
+ ].
+
+ "/
+ "/ open a dialog for this
+ "/
+ box := DialogBox new.
+ box label:title.
+
+ component := box addTextLabel:boxText withCRs.
+ component adjust:#left; borderWidth:0.
+ box addVerticalSpace.
+ box addVerticalSpace.
+
+ y := box yPosition.
+ component := box addTextLabel:(resources string:'Revision:').
+ component width:0.4; adjust:#right.
+ box yPosition:y.
+ component := box addComboBoxOn:revisionHolder tabable:true.
+ component list:items.
+ component width:0.6; left:0.4; immediateAccept:true; acceptOnLeave:false; cursorMovementWhenUpdating:#beginOfLine.
+
+ box addVerticalSpace.
+
+ box addAbortAndOkButtons.
+ box showAtPointer.
+
+ box accepted ifFalse:[
+ box destroy.
+ ^ nil
+ ].
+ box destroy.
+
+ ^ revisionHolder value withoutSpaces.
+
+ "
+ SourceCodeManagerUtilities
+ askForRevisionToCompare:'enter revision'
+ title:'revision'
+ class:nil
+ manager:SourceCodeManager
+ module:'stx'
+ package:'libbasic'
+ fileName:'Array.st'
+ "
+!
+
checkinClass:aClass
"check a class into the source repository.
Asks interactively for log-message."
@@ -779,5 +894,5 @@
!SourceCodeManagerUtilities class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic3/SourceCodeManagerUtilities.st,v 1.12 2000-07-13 08:06:55 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic3/SourceCodeManagerUtilities.st,v 1.13 2000-07-13 15:48:58 cg Exp $'
! !