packages/AbstractPackageBrowser.st
author james
Fri, 09 May 2003 14:24:57 +0200
changeset 1268 9dc8d1b8ce9b
parent 1227 ab88e78f027c
child 1443 6dfdf336b472
permissions -rw-r--r--
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 $'
! !