MCVersionHistoryBrowser.st
author Claus Gittinger <cg@exept.de>
Mon, 14 May 2018 02:21:18 +0200
changeset 1048 582b3a028cbc
parent 699 f757dad44c8e
permissions -rw-r--r--
#FEATURE by cg class: MCMethodDefinition changed: #postloadOver:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
131
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCTool subclass:#MCVersionHistoryBrowser
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'ancestry index repositoryGroup package infos'
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
699
f757dad44c8e category change
Claus Gittinger <cg@exept.de>
parents: 131
diff changeset
     7
	category:'SCM-Monticello-UI'
131
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCVersionHistoryBrowser methodsFor:'accessing'!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
ancestry: anAncestry
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	ancestry _ anAncestry
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
baseSnapshot
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	^ self snapshotForInfo: ancestry
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
index
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	"Answer the value of index"
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	^ index
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
index: anObject
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	"Set the value of index"
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
	index _ anObject
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
infos
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
	^ infos ifNil: [infos _ ancestry withBreadthFirstAncestors]
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
list
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
	^ self infos collect: [:ea | ea name]
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
package: aMCPackage
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
	package _ aMCPackage
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
repositoryGroup
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
	^ MCRepositoryGroup default
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
selectedInfo
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
	^ self infos at: self selection ifAbsent: [nil]
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
selectedSnapshot
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
	^ self snapshotForInfo: self selectedInfo
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
selection
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
	^ index ifNil: [0]
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
selection: aNumber
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
	index _ aNumber.
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
	self changed: #selection; changed: #summary
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
snapshotForInfo: aVersionInfo
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
	^ (self repositoryGroup versionWithInfo: aVersionInfo) snapshot
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
summary
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
	| selInfo |
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
	selInfo _ self selectedInfo.
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
	^ selInfo 
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
		ifNil: ['']
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
		ifNotNil: [selInfo summary]
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
! !
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
!MCVersionHistoryBrowser methodsFor:'morphic ui'!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
defaultExtent
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
	^ 440@169.
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
	
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
defaultLabel
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
	^ ancestry name, ' History'
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
getMenu: aMenu
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
	index < 2 ifTrue: [^ aMenu].
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
	self fillMenu: aMenu fromSpecs: 
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
		(Array
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
			with: (Array with: 'view changes -> ', ancestry name with: #viewChanges)
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
			with: #('spawn history' spawnHistory)).
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
	^ aMenu
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
spawnHistory
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
	MCVersionHistoryBrowser new
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
		ancestry: self selectedInfo;
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
		package: package;
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
		show
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
viewChanges
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
	"Note that the patchLabel will be parsed in MCPatchBrowser>>installSelection, so don't translate it!!"
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
	| patch patchLabel |
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
	patchLabel _ 'changes between {1} and {2}' format: { self selectedInfo name. ancestry name }.
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
	patch _ self baseSnapshot patchRelativeToBase: self selectedSnapshot.
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
	(MCPatchBrowser forPatch: patch) label: patchLabel; show
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
widgetSpecs
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
	^ #(
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
		((listMorph:selection:menu: list selection getMenu:) (0 0 0.3 1))
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
		((textMorph: summary) (0.3 0 1 1))
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
	 	)
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
! !
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
!MCVersionHistoryBrowser class methodsFor:'documentation'!
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
version
699
f757dad44c8e category change
Claus Gittinger <cg@exept.de>
parents: 131
diff changeset
   123
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCVersionHistoryBrowser.st,v 1.2 2012-09-11 21:30:22 cg Exp $'
131
622afe46d4cf initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
! !