Lots and lots of changes...
I hope now that any changes to Smalltalk does not result
in inconsistancy in the packages. I still need
to redesign the class Package as it does too much.
More of the responsibilities need to be put on PackagedClass
and PackagedMethod. The PackageBrowser has got some nice package
pictures!
"{ Package: 'stx:libbasic3' }"
"{ NameSpace: Packages }"
ApplicationModel subclass:#AbstractPackageBrowser
instanceVariableNames:'applicationAspects'
classVariableNames:''
poolDictionaries:''
category:'Package-Application'
!
!AbstractPackageBrowser methodsFor:'accessing'!
applicationAspects
applicationAspects ifNil:[
applicationAspects := Dictionary new
].
^ applicationAspects
!
applicationAspects:something
"set the value of the instance variable 'applicationAspects' (automatically generated)"
applicationAspects := something.
!
declareDependents
!
masterApplication:aMasterApplication
aMasterApplication ifNil:[
^ self.
].
self applicationAspects: aMasterApplication applicationAspects.
self declareDependents.
^ super masterApplication:aMasterApplication.
!
packagesNamed:aCollectionOfPackageNamesOrSymbol
|aCollectionOfPackageNames|
aCollectionOfPackageNames := aCollectionOfPackageNamesOrSymbol.
aCollectionOfPackageNames isSymbol ifTrue:[
aCollectionOfPackageNames := Array with:aCollectionOfPackageNamesOrSymbol.
].
[(aCollectionOfPackageNamesOrSymbol includes:nil)] whileTrue:[
aCollectionOfPackageNamesOrSymbol remove:nil
].
^ self packageManager packagesNamed:aCollectionOfPackageNames
!
packagesSelected
^ self packagesSelectedHolder value
!
undeclareDependents
! !
!AbstractPackageBrowser methodsFor:'accessing - shared'!
applicationAspectsAt:anIdentifier ifAbsent:aBlock
^ self applicationAspects at:anIdentifier ifAbsent:aBlock
!
applicationAspectsAt:aSymbol ifAbsentPut:anObject
^ self applicationAspects at:aSymbol ifAbsentPut:anObject
!
applicationAspectsAt:anIdentifier put:anObject
^ self applicationAspects at:anIdentifier put:anObject
!
packageManager
^ self applicationAspectsAt:#packageManager ifAbsent:[nil]
!
packageManager:aPackageManager
^ self applicationAspectsAt:#packageManager put:aPackageManager
!
packagesSelectedHolder
^ self applicationAspectsAt:#packagesSelectedHolder ifAbsent:[ValueHolder new]
!
packagesSelectedHolder:aPackageManager
^ self applicationAspectsAt:#packagesSelectedHolder put:aPackageManager
! !
!AbstractPackageBrowser class methodsFor:'documentation'!
version
^ '$Header: /cvs/stx/stx/libbasic3/packages/AbstractPackageBrowser.st,v 1.2 2003-05-09 12:22:34 james Exp $'
! !