MCWorkingCopyBrowser.st
author Merge Script
Thu, 07 Apr 2016 07:08:20 +0200
branchjv
changeset 1009 e25edee0d1e7
parent 995 92bb466548a9
child 1121 c5661215109c
permissions -rw-r--r--
Merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
133
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
995
92bb466548a9 Removed test classes from stx:goodies/monticello - they're in tests sub package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 602
diff changeset
     3
"{ NameSpace: Smalltalk }"
92bb466548a9 Removed test classes from stx:goodies/monticello - they're in tests sub package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 602
diff changeset
     4
133
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
MCTool subclass:#MCWorkingCopyBrowser
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:'workingCopy workingCopyWrapper repository defaults'
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
602
4d0ee5eb4551 category change
Claus Gittinger <cg@exept.de>
parents: 133
diff changeset
     9
	category:'SCM-Monticello-UI'
133
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!MCWorkingCopyBrowser class methodsFor:'as yet unclassified'!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
initialize
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	 (TheWorldMenu respondsTo: #registerOpenCommand:)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
         ifTrue: [TheWorldMenu registerOpenCommand: {'Monticello Browser'. {self. #open}}]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
new
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	^ self basicNew initialize
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
open
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	self new show
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
! !
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
!MCWorkingCopyBrowser methodsFor:'actions'!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
addRepository
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
	self newRepository ifNotNilDo:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
		[:repos | self addRepository: repos ].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
addRepository: aRepository
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
	self repository: aRepository.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
	self repositoryGroup addRepository: aRepository.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
	self changed: #repositoryList; changed: #repositorySelection.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
	self changedButtons.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
addRepositoryToPackage
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
	self repository ifNotNilDo:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
		[:repos |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
		(self pickWorkingCopySatisfying: [ :p | (p repositoryGroup includes: repos) not ]) ifNotNilDo:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
			[:wc |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
			workingCopy _ wc.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
			workingCopy repositoryGroup addRepository: repos.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
			self repository: repos.	
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
			self
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
				changed: #workingCopySelection;
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
				changed: #repositoryList;
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
				changed: #repositorySelection.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
			self changedButtons]]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
addRepositoryToWorkingCopy
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
	workingCopy ifNotNilDo:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
		[:wc |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
			workingCopy repositoryGroup addRepository: self repository.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
			self
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
				changed: #workingCopySelection;
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
				changed: #repositoryList;
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
				changed: #repositorySelection.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
			self changedButtons]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
addRequiredPackage
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
	workingCopy ifNotNilDo:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
		[:wc |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
		self pickWorkingCopy ifNotNilDo:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
			[:required |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
			wc requirePackage: required package.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
			self workingCopyListChanged]]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
addWorkingCopy
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
	|name|
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
	name _ FillInTheBlankMorph request: 'Name of package:'.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
	name isEmptyOrNil ifFalse:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
		[PackageInfo registerPackageName: name.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
		workingCopy _ MCWorkingCopy forPackage: (MCPackage new name: name).
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
		workingCopyWrapper _ nil.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
		self repositorySelection: 0].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
	self workingCopyListChanged; changed: #workingCopySelection; changed: #repositoryList.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
	self changedButtons.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
backportChanges
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
	self canBackport ifFalse: [^self].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
	workingCopy ifNotNil:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
		[workingCopy needsSaving ifTrue: [^ self inform: 'You must save the working copy before backporting.'].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
		self pickAncestorVersionInfo ifNotNilDo:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
			[:baseVersionInfo |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
			workingCopy backportChangesTo: baseVersionInfo]]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
browseWorkingCopy
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
	workingCopy ifNotNil:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
		[(MCSnapshotBrowser forSnapshot: workingCopy package snapshot)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
			label: 'Snapshot Browser: ', workingCopy packageName;
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
			show]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
canBackport
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
	^ self hasWorkingCopy and: [workingCopy needsSaving not]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
checkForNewerVersions
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
	| newer |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
	newer _ workingCopy possiblyNewerVersionsIn: self repository.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
	^ newer isEmpty or: [
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
		self confirm: 'CAUTION!! These versions in the repository may be newer:', 
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
			String cr, newer asString, String cr,
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
			'Do you really want to save this version?'].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
clearRequiredPackages
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
	workingCopy ifNotNilDo:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
		[:wc |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
		wc clearRequiredPackages.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
		self workingCopyListChanged]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
deleteWorkingCopy
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
	workingCopy unregister.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
	self workingCopySelection: 0.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
	self workingCopyListChanged.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
editRepository
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
	| newRepo |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
	
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
	newRepo := self repository openAndEditTemplateCopy.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
	newRepo ifNotNil: [ 
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
		newRepo class = self repository class
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
			ifTrue: [self repository copyFrom: newRepo]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
			ifFalse: [self inform: 'Must not change repository type!!']]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
flushAllCaches
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
	| beforeBytes afterBytes beforeVersions afterVersions |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
	Cursor wait showWhile: [
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
		beforeBytes := Smalltalk garbageCollect.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
		beforeVersions := MCVersion allSubInstances size.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
		MCFileBasedRepository flushAllCaches.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
		afterBytes := Smalltalk garbageCollect.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
		afterVersions := MCVersion allSubInstances size.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
	].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
	^self inform: (beforeVersions - afterVersions) asString, ' versions flushed', String cr,
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
 		(afterBytes - beforeBytes) asStringWithCommas, ' bytes reclaimed'
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
inspectWorkingCopy
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
	workingCopy ifNotNil: [workingCopy inspect]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
loadRepositories
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
	FileStream fileIn: 'MCRepositories.st'.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
	self changed: #repositoryList.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
	self changedButtons.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
newRepository
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
	| types index |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
	types _ MCRepository allConcreteSubclasses asArray.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
	index _ (PopUpMenu labelArray: (types collect: [:ea | ea description]))
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
				startUpWithCaption: 'Repository type:'.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
	^ index = 0 ifFalse: [(types at: index) morphicConfigure]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
openRepository
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
	self repository ifNotNilDo: [:repos | repos morphicOpen: workingCopy ]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
recompilePackage
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
	workingCopy package packageInfo methods
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
		do: [:ea | ea actualClass recompile: ea methodSymbol]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
		displayingProgress: 'Recompiling...'
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
removeRepository
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
	self repository ifNotNilDo:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
		[:repos |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
		self repositoryGroup removeRepository: repos.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
		self repositorySelection: (1 min: self repositories size)].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
	self changed: #repositoryList.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
	self changedButtons.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
repository
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
	workingCopy ifNotNil: [repository _ self defaults at: workingCopy ifAbsent: []].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
	^ repository
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
repository: aRepository
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
	repository _ aRepository.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
	workingCopy ifNotNil: [self defaults at: workingCopy put: aRepository]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
revertPackage
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
	self pickAncestorVersionInfo ifNotNilDo: [:info |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
		(self repositoryGroup versionWithInfo: info
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
			ifNone: [^self inform: 'No repository found for ', info name]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
		) load]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
saveRepositories
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
	| f |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
	f := FileStream forceNewFileNamed: 'MCRepositories.st'.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
	MCRepositoryGroup default repositoriesDo: [:r |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
		f nextPutAll: 'MCRepositoryGroup default addRepository: (', r asCreationTemplate, ')!!'; cr.]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
saveVersion
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
	| repo |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
	self canSave ifFalse: [^self].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
	self checkForNewerVersions ifFalse: [^self].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
	repo _ self repository.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
	workingCopy newVersion ifNotNilDo:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
		[:v |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
		(MCVersionInspector new version: v) show.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
		Cursor wait showWhile: [repo storeVersion: v].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
		MCCacheRepository default cacheAllFileNamesDuring: 
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
			[repo cacheAllFileNamesDuring: 
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
				[v allAvailableDependenciesDo:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
					[:dep |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
					(repo includesVersionNamed: dep info name)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
						ifFalse: [repo storeVersion: dep]]]]]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
trimAncestry
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
	self pickAncestorVersionInfo ifNotNilDo:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
		[:ancestor |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
		workingCopy ancestry trimAfterVersionInfo: ancestor]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
unloadPackage
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
	workingCopy unload.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
	self workingCopySelection: 0.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
	self workingCopyListChanged.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
viewChanges
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
	| patch |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
	self canSave ifTrue:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
		[patch _ workingCopy changesRelativeToRepository: self repository.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
		patch isNil ifTrue: [^ self].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
		patch isEmpty
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
			ifTrue: [ workingCopy modified: false.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
				self inform: 'No changes' ]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
			ifFalse:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
				[ workingCopy modified: true.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
				(MCPatchBrowser forPatch: patch)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
					label: 'Patch Browser: ', workingCopy description;
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
					show]]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
viewHistory
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
	workingCopy ifNotNil:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
		[(MCWorkingHistoryBrowser new
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   262
				ancestry: workingCopy ancestry;
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
				package: workingCopy package)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
			label:  'Version History: ',  workingCopy packageName;
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
			show]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
! !
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
!MCWorkingCopyBrowser methodsFor:'morphic ui'!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
buttonSpecs
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   271
       ^ #(
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
               ('+Package' addWorkingCopy 'Add a new package and make it the working copy')
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
               (Browse browseWorkingCopy 'Browse the working copy of the selected package' hasWorkingCopy)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   274
               (Scripts editLoadScripts 'Edit the load/unload scripts of this package' hasWorkingCopy)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
               (History viewHistory 'View the working copy''s history' hasWorkingCopy)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
               (Changes viewChanges 'View the working copy''s changes relative to the installed version from the repository' canSave)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
               (Backport backportChanges 'Backport the working copy''s changes to an ancestor' canBackport)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
               (Save saveVersion 'Save the working copy as a new version to the selected repository' canSave)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
             ('+Repository' addRepository 'Add an existing repository to the list of those visible')
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
               (Open openRepository 'Open a browser on the selected repository' hasRepository)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
               )
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   283
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   284
canSave
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   285
	^ self hasWorkingCopy and: [self hasRepository]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   287
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   288
changedButtons
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
	self changed: #hasWorkingCopy.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
	self changed: #canSave.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
	self changed: #canBackport.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
	self changed: #hasRepository.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   295
defaultExtent
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
	^ 550@200
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   299
defaultLabel
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   300
	^ 'Monticello Browser'
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   301
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   302
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
defaults
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
	^ defaults ifNil: [defaults _ Dictionary new]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   306
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
editLoadScripts
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   308
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   309
	| menu |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   310
	self hasWorkingCopy ifFalse: [^self].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   311
	menu _ MenuMorph new defaultTarget: self.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   312
	menu add: 'edit preamble' selector: #editScript: argument: #preamble.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   313
	menu add: 'edit postscript' selector: #editScript: argument: #postscript.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   314
	menu add: 'edit preambleOfRemoval' selector: #editScript: argument: #preambleOfRemoval.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   315
	menu add: 'edit postscriptOfRemoval' selector: #editScript: argument: #postscriptOfRemoval.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   316
	menu popUpInWorld.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   317
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   318
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   319
editScript: scriptSymbol
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   320
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   321
| script |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   322
script _ workingCopy packageInfo perform: scriptSymbol.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   323
script openLabel: scriptSymbol asString, ' of the Package ', workingCopy package name.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   324
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   325
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   326
hasRepository
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   327
	^ self repository notNil
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   328
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   329
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   330
hasWorkingCopy
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   331
	^ workingCopy notNil
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   332
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   333
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   334
initialize
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   335
	MCWorkingCopy addDependent: self.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   336
	self workingCopies do: [:ea | ea addDependent: self].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   337
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   338
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   339
pickAncestorVersionInfo
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   340
	| ancestors index |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   341
	ancestors _ workingCopy ancestry breadthFirstAncestors.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   342
	index _ (PopUpMenu labelArray: (ancestors collect: [:ea | ea name]))
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   343
				startUpWithCaption: 'Ancestor:'.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   344
	^ index = 0 ifFalse: [ ancestors at: index]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   345
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   346
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   347
pickWorkingCopy
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   348
	^self pickWorkingCopySatisfying: [ :c | true ]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   349
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   350
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   351
pickWorkingCopySatisfying: aBlock
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   352
	| copies index |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   353
	copies _ self workingCopies select: aBlock.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   354
	copies isEmpty ifTrue: [ ^nil ].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   355
	index _ (PopUpMenu labelArray: (copies collect: [:ea | ea packageName]))
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   356
				startUpWithCaption: 'Package:'.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   357
	^ index = 0 ifFalse: [ copies at: index]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   358
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   359
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   360
repositories
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   361
	^ self repositoryGroup repositories
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   362
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   363
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   364
repositoryGroup
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   365
	^ workingCopy
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   366
		ifNil: [MCRepositoryGroup default]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   367
		ifNotNil: [workingCopy repositoryGroup]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   368
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   369
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   370
repositoryList
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   371
	^ self repositories collect: [:ea | ea description]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   372
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   373
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   374
repositoryListMenu: aMenu
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   375
	self repository ifNil: [^ aMenu].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   376
	self fillMenu: aMenu fromSpecs:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   377
		#(('open repository' #openRepository)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   378
		    ('edit repository info' #editRepository)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   379
		   ('add to package...' #addRepositoryToPackage)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   380
		   ('remove repository' #removeRepository)	
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   381
		   ('load repositories' #loadRepositories)	
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   382
		   ('save repositories' #saveRepositories)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
		   ('flush cached versions' #flushAllCaches)	
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   384
		).
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   385
		aMenu
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   386
		add: (self repository alwaysStoreDiffs
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   387
					ifTrue: ['store full versions']
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   388
					ifFalse: ['store diffs'])
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   389
		target: self
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   390
		selector: #toggleDiffs.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   391
	^ aMenu
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   392
				
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   393
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   394
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   395
repositorySelection
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   396
	^ self repositories indexOf: self repository
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   397
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   398
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   399
repositorySelection: aNumber
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   400
	aNumber = 0
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   401
		ifTrue: [self repository: nil]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   402
		ifFalse: [self repository: (self repositories at: aNumber)].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   403
	self changed: #repositorySelection.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   404
	self changedButtons.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   405
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   406
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   407
toggleDiffs
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   408
	self repository alwaysStoreDiffs
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   409
		ifTrue: [self repository doNotAlwaysStoreDiffs]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   410
		ifFalse: [self repository doAlwaysStoreDiffs]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   411
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   412
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   413
unsortedWorkingCopies
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   414
	^ MCWorkingCopy allManagers 
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   415
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   416
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   417
update: aSymbol
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   418
	self unsortedWorkingCopies do: [:ea | ea addDependent: self].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   419
	self workingCopyListChanged.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   420
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   421
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   422
widgetSpecs
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   423
	^ #(
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   424
		((buttonRow) (0 0 1 0) (0 0 0 30))
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   425
		((treeOrListMorph: workingCopy) (0 0 0.5 1) (0 30 0 0))
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   426
		((listMorph: repository) (0.5 0 1 1) (0 30 0 0))
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   427
		)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   428
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   429
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   430
workingCopies
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   431
	^ MCWorkingCopy allManagers asSortedCollection:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   432
		[ :a :b | a package name <= b package name ]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   433
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   434
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   435
workingCopy: wc
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   436
	workingCopy _ wc.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   437
	self changed: #workingCopyList; changed: #workingCopySelection; changed: #repositoryList.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   438
	self changedButtons.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   439
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   440
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   441
workingCopyList
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   442
	^ self workingCopies collect:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   443
		[:ea |
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   444
		(workingCopy notNil and: [workingCopy requiredPackages includes: ea package])
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   445
			ifTrue: [Text string: ea description emphasis: (Array with: TextEmphasis bold)]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   446
			ifFalse: [ea description]]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   447
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   448
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   449
workingCopyListChanged
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   450
	self changed: #workingCopyList.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   451
	self changed: #workingCopyTree.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   452
	self changedButtons.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   453
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   454
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   455
workingCopyListMenu: aMenu
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   456
	workingCopy ifNil: [^ aMenu].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   457
	self fillMenu: aMenu fromSpecs:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   458
		#(('add required package' #addRequiredPackage)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   459
			('clear required packages' #clearRequiredPackages)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   460
			('browse package' #browseWorkingCopy)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   461
			('view changes' #viewChanges)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   462
			('view history' #viewHistory)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   463
			('recompile package' #recompilePackage)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   464
			('revert package...' #revertPackage)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   465
			('trim ancestry' #trimAncestry)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   466
			('unload package' #unloadPackage)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   467
			('delete working copy' #deleteWorkingCopy)).
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   468
	(Smalltalk includesKey: #SARMCPackageDumper) ifTrue: [
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   469
		aMenu add: 'make SAR' target: self selector: #fileOutAsSAR
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   470
	].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   471
	^aMenu
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   472
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   473
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   474
workingCopyListMorph
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   475
	^ PluggableMultiColumnListMorph
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   476
		on: self
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   477
		list: #workingCopyList
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   478
		selected: #workingCopySelection
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   479
		changeSelected: #workingCopySelection:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   480
		menu: #workingCopyListMenu:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   481
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   482
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   483
workingCopySelection
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   484
	^ self workingCopies indexOf: workingCopy
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   485
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   486
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   487
workingCopySelection: aNumber
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   488
	self workingCopy: 
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   489
		(aNumber = 0 
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   490
			ifTrue:[nil]
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   491
			ifFalse:[self workingCopies at: aNumber]).	
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   492
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   493
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   494
workingCopySelectionWrapper
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   495
	^workingCopyWrapper
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   496
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   497
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   498
workingCopySelectionWrapper: aWrapper
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   499
	workingCopyWrapper := aWrapper.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   500
	self changed: #workingCopySelectionWrapper.
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   501
	self workingCopy: (aWrapper ifNotNil:[aWrapper item])
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   502
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   503
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   504
workingCopyTree
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   505
	^ self workingCopies collect:[:each| MCDependentsWrapper with: each model: self].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   506
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   507
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   508
workingCopyTreeMenu: aMenu
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   509
	workingCopy ifNil: [^ aMenu].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   510
	self fillMenu: aMenu fromSpecs:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   511
		#(('add required package' #addRequiredPackage)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   512
			('clear required packages' #clearRequiredPackages)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   513
			('browse package' #browseWorkingCopy)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   514
			('view changes' #viewChanges)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   515
			('view history' #viewHistory)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   516
			('recompile package' #recompilePackage)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   517
			('revert package...' #revertPackage)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   518
			('unload package' #unloadPackage)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   519
			('trim ancestry' #trimAncestry)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   520
			('delete working copy' #deleteWorkingCopy)
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   521
			('inspect working copy' #inspectWorkingCopy)).
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   522
	(Smalltalk includesKey: #SARMCPackageDumper) ifTrue: [
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   523
		aMenu add: 'make SAR' target: self selector: #fileOutAsSAR
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   524
	].
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   525
	^aMenu
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   526
!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   527
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   528
workingCopyTreeMorph
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   529
	^ SimpleHierarchicalListMorph
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   530
		on: self
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   531
		list: #workingCopyTree
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   532
		selected: #workingCopyWrapper
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   533
		changeSelected: #workingCopyWrapper:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   534
		menu: #workingCopyListMenu:
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   535
! !
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   536
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   537
!MCWorkingCopyBrowser class methodsFor:'documentation'!
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   538
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   539
version
602
4d0ee5eb4551 category change
Claus Gittinger <cg@exept.de>
parents: 133
diff changeset
   540
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCWorkingCopyBrowser.st,v 1.2 2012-09-11 21:15:12 cg Exp $'
133
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   541
! !
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   542
995
92bb466548a9 Removed test classes from stx:goodies/monticello - they're in tests sub package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 602
diff changeset
   543
133
5ea1a0145f0f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   544
MCWorkingCopyBrowser initialize!