[squeak-dev] The Trunk: Monticello-ar.398.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Sep 3 02:59:22 UTC 2010


Andreas Raab uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-ar.398.mcz

==================== Summary ====================

Name: Monticello-ar.398
Author: ar
Time: 2 September 2010, 7:58:53.138 pm
UUID: ba8f6776-43b1-7940-a0b0-4337de174cda
Ancestors: Monticello-ar.397, Monticello-tfel.395

Merging Monticello-tfel.395:

Add a hook to allow other packages to add to the monticello browser context menu.

=============== Diff against Monticello-ar.397 ===============

Item was added:
+ ----- Method: MCMenuSpec>>= (in category 'comparing') -----
+ = aMCMenuSpec
+ 
+ 	^ self class == aMCMenuSpec class and: [self entry = aMCMenuSpec entry].!

Item was changed:
  ----- Method: MCWorkingCopyBrowser>>workingCopyListMenu: (in category 'morphic ui') -----
  workingCopyListMenu: aMenu
  	workingCopy ifNil: [^ aMenu].
  	self fillMenu: aMenu fromSpecs:
  		#(('add required package' #addRequiredPackage)
  			('clear required packages' #clearRequiredPackages)
  			('browse package' #browseWorkingCopy)
  			('view changes' #viewChanges)
  			('view history' #viewHistory)
  			('recompile package' #recompilePackage)
  			('revert package...' #revertPackage)
  			('unload package' #unloadPackage)
  			('delete working copy' #deleteWorkingCopy)).
  	(Smalltalk includesKey: #SARMCPackageDumper) ifTrue: [
  		aMenu add: 'make SAR' target: self selector: #fileOutAsSAR
  	].
+ 	self insertExternalMenuEntries: aMenu.
  	^aMenu!

Item was added:
+ ----- Method: MCMenuSpec>>entry (in category 'accessing') -----
+ entry
+ 
+ 	^entry!

Item was added:
+ ----- Method: MCMenuSpec>>selector: (in category 'accessing') -----
+ selector: anObject
+ 
+ 	selector := anObject!

Item was added:
+ ----- Method: MCMenuSpec>>selector (in category 'accessing') -----
+ selector
+ 
+ 	^selector!

Item was added:
+ ----- Method: MCMenuSpec>>target: (in category 'accessing') -----
+ target: anObject
+ 
+ 	target := anObject!

Item was added:
+ Object subclass: #MCMenuSpec
+ 	instanceVariableNames: 'entry target selector'
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'Monticello-UI'!
+ 
+ !MCMenuSpec commentStamp: 'tfel 6/12/2010 14:57' prior: 0!
+ A MCMenuSpec holds information to add menu entries to the monticello browser menus from external classes.
+ Required is the entry string (#entry), the call target and the selector be called.
+ An external class may use the MCWorkingCopyBrowser class>>addMenuSpec: method to add it's own menu entry to the monticello browser context menu.
+ 
+ Note that MCMenuSpecs are compared via their menu entry string and if multiple MCMenuSpecs are added to the MCWorkingCopyBrowser, the last one takes precedence.!

Item was changed:
  MCTool subclass: #MCWorkingCopyBrowser
  	instanceVariableNames: 'workingCopy workingCopyWrapper repository defaults'
+ 	classVariableNames: 'CheckForNewerVersionsBeforeSave ExternalMenuEntries'
- 	classVariableNames: 'CheckForNewerVersionsBeforeSave'
  	poolDictionaries: ''
  	category: 'Monticello-UI'!

Item was added:
+ ----- Method: MCWorkingCopyBrowser class>>addMenuSpec: (in category 'hooks') -----
+ addMenuSpec: aMCMenuSpec
+ 	"Register a context menu entry in the monticello browser from an external package.
+ 	 The MCWorkingCopyBrowser model is passed as argument."
+ 	self externalMenuEntries 
+ 		remove: aMCMenuSpec 
+ 		ifAbsent: ["Remove any previous entry with description string"];
+ 		add: aMCMenuSpec.!

Item was added:
+ ----- Method: MCWorkingCopyBrowser>>insertExternalMenuEntries: (in category 'morphic ui') -----
+ insertExternalMenuEntries: aMenu
+ 	
+ 	self class externalMenuEntries ifNotEmpty: [
+ 		aMenu addLine.
+ 		self class externalMenuEntries do: [:each |
+ 			aMenu 
+ 				add: each entry 
+ 				target: each target
+ 				selector: each selector
+ 				argument: self]].!

Item was added:
+ ----- Method: MCMenuSpec>>target (in category 'accessing') -----
+ target
+ 
+ 	^target!

Item was added:
+ ----- Method: MCWorkingCopyBrowser class>>externalMenuEntries (in category 'hooks') -----
+ externalMenuEntries
+ 	
+ 	ExternalMenuEntries ifNil: [ExternalMenuEntries := Set new].
+ 	^ ExternalMenuEntries!

Item was changed:
  SystemOrganization addCategory: #'Monticello-Base'!
  SystemOrganization addCategory: #'Monticello-Chunk Format'!
  SystemOrganization addCategory: #'Monticello-Loading'!
  SystemOrganization addCategory: #'Monticello-Merging'!
  SystemOrganization addCategory: #'Monticello-Modeling'!
  SystemOrganization addCategory: #'Monticello-Patching'!
  SystemOrganization addCategory: #'Monticello-Repositories'!
  SystemOrganization addCategory: #'Monticello-Storing'!
  SystemOrganization addCategory: #'Monticello-UI'!
  SystemOrganization addCategory: #'Monticello-Versioning'!
+ SystemOrganization addCategory: #'Monticello-Mocks'!

Item was added:
+ ----- Method: MCMenuSpec>>entry: (in category 'accessing') -----
+ entry: anObject
+ 
+ 	entry := anObject!

Item was added:
+ ----- Method: MCMenuSpec>>hash (in category 'comparing') -----
+ hash
+ 
+ 	^ self entry hash!




More information about the Squeak-dev mailing list