FileVersionDiffBrowser.st
changeset 3847 f18d0b3cc419
parent 3807 8f68f4fb0756
child 3849 20a999ca8246
equal deleted inserted replaced
3846:94971720b6bf 3847:f18d0b3cc419
   158              name: 'InfoLabel'
   158              name: 'InfoLabel'
   159              layout: (LayoutFrame 0 0 -25 1 0 1 0 1)
   159              layout: (LayoutFrame 0 0 -25 1 0 1 0 1)
   160              uuid: '90e47868-7175-11e9-a23a-b8f6b1108e05'
   160              uuid: '90e47868-7175-11e9-a23a-b8f6b1108e05'
   161              level: -1
   161              level: -1
   162              translateLabel: true
   162              translateLabel: true
   163              labelChannel: infoHolder
   163              labelChannel: informationHolder
   164              adjust: left
   164              adjust: left
   165            )
   165            )
   166           )
   166           )
   167         
   167         
   168        )
   168        )
   311              name: 'InfoLabel'
   311              name: 'InfoLabel'
   312              layout: (LayoutFrame 0 0 -25 1 0 1 0 1)
   312              layout: (LayoutFrame 0 0 -25 1 0 1 0 1)
   313              uuid: '2b3f4a44-d4fd-11e7-af82-c42c033b4871'
   313              uuid: '2b3f4a44-d4fd-11e7-af82-c42c033b4871'
   314              level: -1
   314              level: -1
   315              translateLabel: true
   315              translateLabel: true
   316              labelChannel: infoHolder
   316              labelChannel: informationHolder
   317              adjust: left
   317              adjust: left
   318            )
   318            )
   319           )
   319           )
   320         
   320         
   321        )
   321        )
   443              name: 'InfoLabel'
   443              name: 'InfoLabel'
   444              layout: (LayoutFrame 0 0 -25 1 0 1 0 1)
   444              layout: (LayoutFrame 0 0 -25 1 0 1 0 1)
   445              uuid: '2b3f4a44-d4fd-11e7-af82-c42c033b4871'
   445              uuid: '2b3f4a44-d4fd-11e7-af82-c42c033b4871'
   446              level: -1
   446              level: -1
   447              translateLabel: true
   447              translateLabel: true
   448              labelChannel: infoHolder
   448              labelChannel: informationHolder
   449              adjust: left
   449              adjust: left
   450            )
   450            )
   451           )
   451           )
   452         
   452         
   453        )
   453        )
   601     "create a FileVersionDiffBrowser instance and set the list of files.
   601     "create a FileVersionDiffBrowser instance and set the list of files.
   602      When a file is selected, the version list is extracted,
   602      When a file is selected, the version list is extracted,
   603      and the diff list is generated from the file's current version against
   603      and the diff list is generated from the file's current version against
   604      the selected version in the top selection list"
   604      the selected version in the top selection list"
   605 
   605 
   606     |setOfFiles theBrowser filesChangedSince sinceTimestamp|
   606     self 
       
   607         openOnAllFilesMatching:nil 
       
   608         changedSince:aDateOrTimestamp 
       
   609         in:aSetOfFilesOrADirectoryFilename
       
   610 
       
   611     "
       
   612      FileVersionDiffBrowser 
       
   613         openOnAllFilesChangedSince:(Date today - 7 days) 
       
   614         in:('../../libbasic' asFilename files).
       
   615     "
       
   616 
       
   617     "Created: / 07-07-2019 / 18:58:01 / Claus Gittinger"
       
   618     "Modified: / 08-07-2019 / 01:36:01 / Claus Gittinger"
       
   619 !
       
   620 
       
   621 openOnAllFilesMatching:matchPatternOrNil changedSince:aDateOrTimestamp in:aSetOfFilesOrADirectoryFilename
       
   622     "create a FileVersionDiffBrowser instance and set the list of files.
       
   623      When a file is selected, the version list is extracted,
       
   624      and the diff list is generated from the file's current version against
       
   625      the selected version in the top selection list"
       
   626 
       
   627     |setOfFiles theBrowser filesMatching filesChangedSince sinceTimestamp|
   607 
   628 
   608     sinceTimestamp := aDateOrTimestamp asTimestamp.
   629     sinceTimestamp := aDateOrTimestamp asTimestamp.
   609 
   630 
   610     setOfFiles := aSetOfFilesOrADirectoryFilename.
   631     setOfFiles := aSetOfFilesOrADirectoryFilename.
   611     setOfFiles isFilename ifTrue:[
   632     setOfFiles isFilename ifTrue:[
   612         setOfFiles := setOfFiles directoryContentsAsFilenames.
   633         setOfFiles := setOfFiles directoryContentsAsFilenames.
   613     ].
   634     ].
   614     
   635     (matchPatternOrNil isEmptyOrNil or:[matchPatternOrNil = '*']) ifTrue:[
   615     filesChangedSince := setOfFiles 
   636         filesMatching := setOfFiles
   616         select:[:fn | fn modificationTime > sinceTimestamp].
   637     ] ifFalse:[
       
   638         filesMatching := setOfFiles select:[:fn | fn baseName matches:matchPatternOrNil].
       
   639     ].
       
   640     filesChangedSince := filesMatching select:[:fn | fn modificationTime > sinceTimestamp].
   617     filesChangedSince sort:[:a :b | a name < b name].
   641     filesChangedSince sort:[:a :b | a name < b name].
   618     
   642     
   619     theBrowser := self new.
   643     theBrowser := self new.
   620     theBrowser allButOpenInterface:#windowSpecForMultipleFiles.
   644     theBrowser allButOpenInterface:#windowSpecForMultipleFiles.
   621     theBrowser beMultipleFilesVersionBrowser.
   645     theBrowser beMultipleFilesVersionBrowser.
   622     theBrowser fileList:filesChangedSince.
   646     theBrowser fileList:filesChangedSince.
   623     
   647     
   624     "/ theBrowser classHolder:(ValueHolder with:aClass).
   648     "/ theBrowser classHolder:(ValueHolder with:aClass).
   625     "/ theBrowser setupForClass:aClass againstVersion:nil.
   649     "/ theBrowser setupForClass:aClass againstVersion:nil.
   626     theBrowser window label:(self resources string:'Versions of %1 files' with:setOfFiles size).
   650     theBrowser window label:(self resources string:'Versions of %1 files' with:filesChangedSince size).
   627     theBrowser openWindow.
   651     theBrowser openWindow.
   628     ^ theBrowser.
   652     ^ theBrowser.
   629 
   653 
   630     "
   654     "
   631      FileVersionDiffBrowser 
   655      FileVersionDiffBrowser 
   632         openOnAllFilesChangedSince:(Date today - 7 days) 
   656         openOnAllFilesMatching:'*.st'
       
   657         changedSince:(Date today - 7 days) 
   633         in:('../../libbasic' asFilename files).
   658         in:('../../libbasic' asFilename files).
   634     "
   659     "
   635 
   660 
   636     "Created: / 07-07-2019 / 18:58:01 / Claus Gittinger"
   661     "Created: / 07-07-2019 / 18:58:01 / Claus Gittinger"
   637     "Modified: / 08-07-2019 / 01:36:01 / Claus Gittinger"
   662     "Modified: / 08-07-2019 / 01:36:01 / Claus Gittinger"
   638 !
   663 !
   639 
   664 
   640 openOnAllVersionsOfFile:aFilename
   665 openOnAllVersionsOfFile:aFilenameOrString
   641     "create a VersionDiffBrowser instance and set the file. 
   666     "create a VersionDiffBrowser instance and set the file. 
   642      The diff is generated from aFilename's current version against
   667      The diff is generated from aFilename's current version against
   643      the selected version in the top selection list"
   668      the selected version in the top selection list"
   644 
   669 
   645     |theBrowser|
   670     |theBrowser fileName|
       
   671 
       
   672     fileName := aFilenameOrString asFilename.
   646 
   673 
   647     theBrowser := self new.
   674     theBrowser := self new.
   648     theBrowser allButOpenInterface:#windowSpecForMultipleVersions.
   675     theBrowser allButOpenInterface:#windowSpecForMultipleVersions.
   649     theBrowser beMultipleVersionBrowser.
   676     theBrowser beMultipleVersionBrowser.
   650     theBrowser fileHolder value:aFilename.
   677     theBrowser fileHolder value:fileName.
   651     theBrowser setupForAllVersionsOfFile:aFilename.
   678     theBrowser setupForAllVersionsOfFile:fileName.
   652     theBrowser window label:(self resources string:'Versions of %1' with:aFilename baseName).
   679     theBrowser window label:(self resources string:'Versions of %1' with:fileName baseName).
   653     theBrowser openWindow.
   680     theBrowser openWindow.
   654     ^ theBrowser.
   681     ^ theBrowser.
   655 
   682 
   656     "
   683     "
   657      self openOnAllVersionsOfFile:'Make.proto' asFilename
   684      self openOnAllVersionsOfFile:'Make.proto' asFilename
   911         argument:(self fileListHolder)
   938         argument:(self fileListHolder)
   912 
   939 
   913     "Created: / 07-07-2019 / 19:47:13 / Claus Gittinger"
   940     "Created: / 07-07-2019 / 19:47:13 / Claus Gittinger"
   914 !
   941 !
   915 
   942 
   916 infoHolder
   943 informationHolder
   917     ^ infoHolder.
   944     ^ infoHolder.
   918 
   945 
   919     "Modified: / 08-05-2019 / 11:05:10 / Claus Gittinger"
   946     "Modified: / 08-05-2019 / 11:05:10 / Claus Gittinger"
   920 !
   947 !
   921 
   948 
  1122 !
  1149 !
  1123 
  1150 
  1124 showActivity:someMessage
  1151 showActivity:someMessage
  1125     "some activityNotification shalt be communicated to the user."
  1152     "some activityNotification shalt be communicated to the user."
  1126 
  1153 
  1127     infoHolder value:someMessage.
  1154     self information:someMessage.
  1128 
  1155 
  1129     "Created: / 28-05-2019 / 15:26:34 / Claus Gittinger"
  1156     "Created: / 28-05-2019 / 15:26:34 / Claus Gittinger"
  1130 !
  1157 !
  1131 
  1158 
  1132 update:something with:parameter from:changedObject
  1159 update:something with:parameter from:changedObject
  1268     sourceCodeManager := CVSSourceCodeManager.
  1295     sourceCodeManager := CVSSourceCodeManager.
  1269 
  1296 
  1270     numShown := versionList size - 1.
  1297     numShown := versionList size - 1.
  1271     newNumShown := (numShown + 50) max:30.
  1298     newNumShown := (numShown + 50) max:30.
  1272 
  1299 
  1273     infoHolder value:'Getting version log...'.
  1300     self information:'Getting version log...'.
  1274     partialLog := sourceCodeManager revisionLogOfFile:fn numberOfRevisions:newNumShown.
  1301     partialLog := sourceCodeManager revisionLogOfFile:fn numberOfRevisions:newNumShown.
  1275 
  1302 
  1276     partialLog isNil ifTrue:[
  1303     partialLog isNil ifTrue:[
  1277         self warn:'Could not find/access the container for ',fn name,' in the repository.
  1304         self warn:'Could not find/access the container for ',fn name,' in the repository.
  1278 This could be due to:
  1305 This could be due to:
  1547 
  1574 
  1548     "Created: / 07-07-2019 / 22:09:21 / Claus Gittinger"
  1575     "Created: / 07-07-2019 / 22:09:21 / Claus Gittinger"
  1549     "Modified: / 08-07-2019 / 01:24:35 / Claus Gittinger"
  1576     "Modified: / 08-07-2019 / 01:24:35 / Claus Gittinger"
  1550 !
  1577 !
  1551 
  1578 
  1552 informationUntranslated:msg
       
  1553     self infoHolder value:msg
       
  1554 
       
  1555     "Created: / 09-08-2018 / 15:40:52 / Claus Gittinger"
       
  1556 !
       
  1557 
       
  1558 resetSelectionHolders
  1579 resetSelectionHolders
  1559     "
  1580     "
  1560     reset all selection holders when a new change set is given.
  1581     reset all selection holders when a new change set is given.
  1561     First set the selection to nil.
  1582     First set the selection to nil.
  1562 
  1583