MCRepositoryInspector.st
author Claus Gittinger <cg@exept.de>
Mon, 14 May 2018 02:21:18 +0200
changeset 1048 582b3a028cbc
parent 601 04bd699082cd
child 995 92bb466548a9
permissions -rw-r--r--
#FEATURE by cg class: MCMethodDefinition changed: #postloadOver:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
126
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCVersionInspector subclass:#MCRepositoryInspector
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'repository packages versions loaded selectedPackage
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
		selectedVersion'
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	classVariableNames:''
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	poolDictionaries:''
601
04bd699082cd category change
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
     8
	category:'SCM-Monticello-UI'
126
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
!MCRepositoryInspector class methodsFor:'as yet unclassified'!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
repository: aFileBasedRepository workingCopy: aWorkingCopy
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
	^self new
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
		setRepository: aFileBasedRepository workingCopy: aWorkingCopy;
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
		yourself
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
! !
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
!MCRepositoryInspector methodsFor:'as yet unclassified'!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
hasVersion
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
	^ selectedVersion notNil
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
load
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
	self hasVersion ifTrue:
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
		[super load.
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
		self version workingCopy repositoryGroup addRepository: repository].
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
refresh
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
	packages _ repository packages.
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
	self changed: #packageList.
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
	self packageSelection: self packageSelection.
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
setRepository: aRepository workingCopy: aWorkingCopy
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
	repository _ aRepository.
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
	aWorkingCopy isNil ifFalse: [ selectedPackage _ aWorkingCopy package].
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
	self refresh
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
summary
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
	^ selectedVersion
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
		ifNotNil: [selectedVersion summary]
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
		ifNil: ['']
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
version
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
	^ version ifNil: [version _ repository versionWithInfo: selectedVersion]
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
! !
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
!MCRepositoryInspector methodsFor:'morphic ui'!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
buttonSpecs
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
	^#(('Refresh' refresh 'refresh the version-list')) , super buttonSpecs
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
defaultExtent
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
	^450@300
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
defaultLabel
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
	^'Repository: ' , repository description
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
packageList
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
	^ packages collect: [:ea | ea name]
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
packageListMenu: aMenu
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
	^aMenu
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
packageSelection
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
	^ packages indexOf: selectedPackage
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
packageSelection: aNumber
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
	selectedPackage _ aNumber isZero ifFalse: [ packages at: aNumber ].
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
	versions _ repository versionsAvailableForPackage: selectedPackage.
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
	self changed: #packageSelection; changed: #versionList
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
sortedVersions
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
	| sorter |
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
	sorter _ MCVersionSorter new.
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
	sorter addAllVersionInfos: versions.
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
	^ sorter sortedVersionInfos select: [:ea | versions includes: ea]
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
versionList
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
	^ self sortedVersions collect: [:ea | ea name]
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
versionListMenu: aMenu
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
	^aMenu
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
versionSelection
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
	^ versions indexOf: selectedVersion
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
versionSelection: aNumber
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
	aNumber isZero 
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
		ifTrue: [ selectedVersion _ nil ]
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
		ifFalse: [ 
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
			selectedVersion _ versions at: aNumber].
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
	self changed: #versionSelection; changed: #summary
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
widgetSpecs
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
	^#(	((buttonRow) (0 0 1 0) (0 0 0 30))
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
		((listMorph: package) (0 0 0.5 0.6) (0 30 0 0))
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
		((listMorph: version) (0.5 0 1 0.6) (0 30 0 0))
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
		((textMorph: summary) (0 0.6 1 1) (0 0 0 0)) )
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
! !
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
!MCRepositoryInspector class methodsFor:'documentation'!
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
version
601
04bd699082cd category change
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
   123
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCRepositoryInspector.st,v 1.2 2012-09-11 21:15:04 cg Exp $'
126
6083111128e6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
! !