SystemOrganization addCategory: #'OB-Package-Core'! SystemOrganization addCategory: #'OB-Package-Commands'! OBFilter subclass: #OPPackageFilter instanceVariableNames: 'browser' classVariableNames: '' poolDictionaries: '' category: 'OB-Package-Core'! !OPPackageFilter class methodsFor: 'as yet unclassified' stamp: 'lr 4/9/2010 17:20'! on: aBrowser ^ self new initializeOn: aBrowser! ! !OPPackageFilter methodsFor: 'filtering' stamp: 'lr 4/9/2010 17:21'! displayString: aString forParent: aParentNode child: aNode ^ (aNode definedWithinBrowserEnvironment: self environment) ifFalse: [ aString asText addAttribute: TextColor gray ] ifTrue: [ aString ] ! ! !OPPackageFilter methodsFor: 'accessing' stamp: 'lr 4/9/2010 17:39'! environment ^ (browser navigationPanel columns at: 2 ifAbsent: [ ^ nil ]) parent environment! ! !OPPackageFilter methodsFor: 'initialization' stamp: 'lr 4/11/2010 17:10'! initializeOn: aBrowser browser := aBrowser! ! !OBMethodNode methodsFor: '*ob-package' stamp: 'lr 4/11/2010 17:32'! isDescendantOfWorkingCopy: aWorkingCopyNode ^ aWorkingCopyNode packageInfo includesMethod: self selector ofClass: self theClass! ! !OBClassAwareNode methodsFor: '*ob-package' stamp: 'lr 4/11/2010 17:40'! isDescendantOfWorkingCopy: aWorkingCopyNode ^ aWorkingCopyNode packageInfo includesClass: self theClass! ! OBCodeNode subclass: #OPExtensionNode instanceVariableNames: 'packageInfo' classVariableNames: '' poolDictionaries: '' category: 'OB-Package-Core'! !OPExtensionNode class methodsFor: 'as yet unclassified' stamp: 'lr 4/9/2010 17:42'! packageInfo: aPackageInfo ^ self new setPackageInfo: aPackageInfo! ! !OPExtensionNode methodsFor: 'accessing' stamp: 'lr 4/9/2010 18:16'! browserEnvironment ^ super browserEnvironment forPackages: (Array with: self packageInfo)! ! !OPExtensionNode methodsFor: 'navigation' stamp: 'lr 4/9/2010 17:51'! classes ^ packageInfo extensionClasses collect: [ :each | each asNode ]! ! !OPExtensionNode methodsFor: 'navigation' stamp: 'lr 4/9/2010 17:52'! comments ^ packageInfo extensionClasses collect: [ :each | each asCommentNode ]! ! !OPExtensionNode methodsFor: 'accessing' stamp: 'lr 4/9/2010 18:10'! containingPackage ^ self packageInfo! ! !OPExtensionNode methodsFor: 'accessing' stamp: 'lr 4/9/2010 18:06'! displayName ^ '*Extensions'! ! !OPExtensionNode methodsFor: 'navigation' stamp: 'lr 4/9/2010 17:51'! metaclasses ^ packageInfo extensionClasses collect: [ :each | each asClassSideNode ]! ! !OPExtensionNode methodsFor: 'accessing' stamp: 'lr 4/9/2010 17:54'! name ^ '*Extensions'! ! !OPExtensionNode methodsFor: 'accessing' stamp: 'lr 4/9/2010 17:48'! packageInfo ^ packageInfo! ! !OPExtensionNode methodsFor: 'initialize-release' stamp: 'lr 4/9/2010 17:48'! setPackageInfo: aPackageInfo packageInfo := aPackageInfo! ! OBCodeNode subclass: #OPOrganizerNode instanceVariableNames: 'workingCopies' classVariableNames: '' poolDictionaries: '' category: 'OB-Package-Core'! !OPOrganizerNode methodsFor: 'private' stamp: 'lr 4/4/2010 09:55'! buildWorkingCopies ^ (MCWorkingCopy registry values sort: [ :a :b | a packageName < b packageName ]) collect: [ :each | OPWorkingCopyNode on: each ]! ! !OPOrganizerNode methodsFor: 'actions' stamp: 'lr 4/11/2010 17:12'! refresh workingCopies := nil! ! !OPOrganizerNode methodsFor: 'navigation' stamp: 'lr 4/4/2010 10:03'! workingCopies ^ workingCopies ifNil: [ workingCopies := self buildWorkingCopies ]! ! OBCodeNode subclass: #OPWorkingCopyNode instanceVariableNames: 'workingCopy' classVariableNames: '' poolDictionaries: '' category: 'OB-Package-Core'! !OPWorkingCopyNode class methodsFor: 'as yet unclassified' stamp: 'lr 4/4/2010 09:56'! on: aWorkingCopy ^ self basicNew initializeOn: aWorkingCopy! ! !OPWorkingCopyNode methodsFor: 'accessing' stamp: 'lr 4/9/2010 18:16'! browserEnvironment ^ super browserEnvironment forPackages: (Array with: self packageInfo)! ! !OPWorkingCopyNode methodsFor: 'navigation' stamp: 'lr 4/9/2010 18:00'! categories ^ self packageInfo systemCategories collect: [ :each | OPCategoryNode on: each packageInfo: self packageInfo ]! ! !OPWorkingCopyNode methodsFor: 'accessing' stamp: 'lr 4/9/2010 18:15'! containingPackage ^ self packageInfo! ! !OPWorkingCopyNode methodsFor: 'accessing' stamp: 'lr 4/9/2010 17:46'! environment ^ BrowserEnvironment new forPackages: (Array with: self packageInfo)! ! !OPWorkingCopyNode methodsFor: 'navigation' stamp: 'lr 4/9/2010 17:46'! extensions ^ Array with: (OPExtensionNode packageInfo: self packageInfo)! ! !OPWorkingCopyNode methodsFor: 'accessing' stamp: 'lr 4/11/2010 16:41'! icon ^ (workingCopy repositoryGroup repositories size < 2) ifTrue: [ workingCopy needsSaving ifTrue: [ #dirtyNewPackage ] ifFalse: [ #cleanNewPackage ] ] ifFalse: [ workingCopy needsSaving ifTrue: [ #dirtyPackage ] ifFalse: [ #cleanPackage ] ]! ! !OPWorkingCopyNode methodsFor: 'initialization' stamp: 'lr 4/4/2010 09:56'! initializeOn: aWorkingCopy workingCopy := aWorkingCopy! ! !OPWorkingCopyNode methodsFor: 'ancestry' stamp: 'lr 4/11/2010 17:33'! isDescendantOfWorkingCopy: aWorkingCopyNode ^ self packageInfo = aWorkingCopyNode packageInfo! ! !OPWorkingCopyNode methodsFor: 'accessing' stamp: 'lr 4/4/2010 10:08'! name ^ workingCopy packageName! ! !OPWorkingCopyNode methodsFor: 'accessing' stamp: 'lr 4/9/2010 17:44'! packageInfo ^ workingCopy packageInfo! ! !OPWorkingCopyNode methodsFor: 'printing' stamp: 'lr 4/11/2010 19:20'! printOn: aStream super printOn: aStream. aStream nextPutAll: ' packageName: '; print: self name! ! !OPWorkingCopyNode methodsFor: 'accessing' stamp: 'lr 4/9/2010 17:44'! workingCopy ^ workingCopy! ! OBClassCategoryNode subclass: #OPCategoryNode instanceVariableNames: 'packageInfo displayName' classVariableNames: '' poolDictionaries: '' category: 'OB-Package-Core'! !OPCategoryNode class methodsFor: 'as yet unclassified' stamp: 'lr 4/9/2010 17:54'! on: aSymbol packageInfo: aPackageInfo ^ (self on: aSymbol) setPackageInfo: aPackageInfo! ! !OPCategoryNode methodsFor: 'accessing' stamp: 'lr 4/9/2010 18:17'! browserEnvironment ^ super browserEnvironment forPackages: (Array with: self packageInfo)! ! !OPCategoryNode methodsFor: 'accessing' stamp: 'lr 4/9/2010 18:10'! containingPackage ^ self packageInfo! ! !OPCategoryNode methodsFor: 'accessing' stamp: 'lr 4/9/2010 18:01'! displayName ^ displayName! ! !OPCategoryNode methodsFor: 'accessing' stamp: 'lr 4/9/2010 18:13'! packageInfo ^ packageInfo! ! !OPCategoryNode methodsFor: 'initialize-release' stamp: 'lr 4/9/2010 18:00'! setPackageInfo: aPackageInfo packageInfo := aPackageInfo. displayName := name = packageInfo systemCategoryPrefix ifTrue: [ '*Root' ] ifFalse: [ (name beginsWith: packageInfo systemCategoryPrefix , '-') ifTrue: [ name copyFrom: packageInfo systemCategoryPrefix size + 2 to: name size ] ifFalse: [ name ] ]! ! OBSystemBrowser subclass: #OPPackageBrowser instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'OB-Package-Core'! !OPPackageBrowser class methodsFor: 'configuration' stamp: 'lr 4/11/2010 19:18'! defaultMetaNode | packageOrganizer workingCopy classCategory | packageOrganizer := OBMetaNode named: 'Organizer'. workingCopy := OBMetaNode named: 'Working'. workingCopy ancestrySelector: #isDescendantOfWorkingCopy:. classCategory := OBMetaNode named: 'Category'. classCategory displaySelector: #displayName. packageOrganizer childAt: #workingCopies put: workingCopy. packageOrganizer autoSelect: (OBAutoSelection on: classCategory). workingCopy childAt: #extensions put: classCategory. workingCopy childAt: #categories put: classCategory. self buildMetagraphOn: classCategory. classCategory edges do: [ :each | each metaNode doubleClickSelector: #browseHierarchy ]. ^ packageOrganizer! ! !OPPackageBrowser class methodsFor: 'configuration' stamp: 'lr 4/4/2010 10:00'! defaultRootNode ^ OPOrganizerNode new! ! !OPPackageBrowser class methodsFor: 'configuration' stamp: 'lr 4/4/2010 10:09'! paneCount ^ 5! ! !OPPackageBrowser class methodsFor: 'configuration' stamp: 'lr 4/9/2010 18:19'! title ^ 'Package Browser'! ! !OPPackageBrowser methodsFor: 'building' stamp: 'lr 4/21/2010 17:17'! initialExtent "We have one more column than the standard browser, scale it accordingly." ^ super initialExtent * 1.25! ! !OPPackageBrowser methodsFor: 'updating' stamp: 'lr 4/11/2010 17:08'! register super register. MCWorkingCopy addDependent: self! ! !OPPackageBrowser methodsFor: 'initializing' stamp: 'lr 4/9/2010 17:20'! setMetaNode: aMetaNode node: aNode | filter | filter := OPPackageFilter on: self. aMetaNode withAllChildrenDo: [ :each | (self unfilteredNames includes: each name) ifFalse: [ each addFilter: filter ] ]. super setMetaNode: aMetaNode node: aNode! ! !OPPackageBrowser methodsFor: 'initializing' stamp: 'lr 4/9/2010 18:08'! unfilteredNames ^ #('Organizer' 'Working')! ! !OPPackageBrowser methodsFor: 'updating' stamp: 'lr 4/11/2010 17:08'! unregister super unregister. MCWorkingCopy removeDependent: self! ! !OPPackageBrowser methodsFor: 'updating' stamp: 'lr 4/11/2010 17:14'! update: aSymbol super update: aSymbol. self navigationPanel root refresh. self announcer announce: OBRefreshRequired! ! !OBMorphicIcons methodsFor: '*ob-package' stamp: 'lr 4/11/2010 16:39'! cleanNewPackage ^ ((ColorForm extent: 14@14 depth: 8 fromArray: #( 336860180 336860180 336860180 336855040 336860180 336859156 336860180 336855040 336855570 303174162 303170068 336855040 336859667 319885843 286200339 336855040 336859663 336857105 336859667 336855040 336856595 336857873 336856595 336855040 336593165 218370064 218956048 336855040 336855827 319754255 252904211 320077824 336857617 336855057 336857363 336855040 336855055 336856849 336858131 336855040 336856324 235802126 235799827 336855040 336860179 320016403 320017171 336855040 336860180 336860179 336860180 336855040 336860180 336860180 336860180 336855040) offset: 0@0) colorsFromArray: #(#(0.337 0.337 0.337) #(0.372 0.372 0.376) #(0.518 0.518 0.518) #(0.369 0.369 0.369) #(0.31 0.31 0.31) #(0.451 0.451 0.451) #(0.404 0.404 0.4) #(0.329 0.326 0.326) #(0.408 0.408 0.404) #(0.353 0.353 0.353) #(0.353 0.349 0.353) #(0.318 0.318 0.318) #(0.341 0.337 0.337) #(0.369 0.369 0.372) #(0.31 0.314 0.31) #(0.891 0.922 0.973) #(0.286 0.286 0.286) #(0.887 0.922 0.973) #(0.412 0.412 0.412) #(0.887 0.918 0.973) #( )))! ! !OBMorphicIcons methodsFor: '*ob-package' stamp: 'lr 4/11/2010 16:16'! cleanPackage ^ ((ColorForm extent: 14@14 depth: 8 fromArray: #( 1044266558 1044266558 1044266558 1044250624 1044266558 1044254014 1044266558 1044250624 1044250625 16843776 131646 1044250624 1044261655 420414266 305136189 1044250624 1044263477 641285155 504768573 1044250624 1044252436 690948407 87295805 1044250624 1041576195 470419722 1010566186 1044250624 1044253752 237315867 522456125 1027473408 1044252716 755317814 772802621 1044250624 1044252186 538444578 857540157 1044250624 1044253459 990978363 993725245 1044250624 1044266557 1027411261 1027423549 1044250624 1044266558 1044266557 1044266558 1044250624 1044266558 1044266558 1044266558 1044250624) offset: 0@0) colorsFromArray: #(#(0.764 0.482 0.156) #(0.764 0.478 0.156) #(0.764 0.482 0.16) #(0.624 0.439 0.337) #(0.585 0.333 0.109) #(0.859 0.733 0.585) #(0.659 0.372 0.129) #(0.737 0.451 0.152) #(0.674 0.384 0.133) #(0.482 0.314 0.247) #(0.478 0.31 0.243) #(0.78 0.518 0.164) #(0.698 0.404 0.137) #(0.451 0.239 0.074) #(0.91 0.796 0.62) #(0.848 0.729 0.581) #(0.894 0.784 0.624) #(0.643 0.349 0.121) #(0.957 0.883 0.69) #(0.647 0.353 0.125) #(0.851 0.737 0.588) #(0.451 0.236 0.074) #(0.879 0.764 0.604) #(0.969 0.918 0.725) #(0.831 0.698 0.553) #(0.934 0.827 0.643) #(0.902 0.796 0.631) #(0.902 0.831 0.671) #(0.628 0.439 0.337) #(0.867 0.753 0.596) #(0.93 0.815 0.639) #(0.926 0.851 0.674) #(0.887 0.776 0.612) #(0.581 0.333 0.109) #(0.875 0.764 0.616) #(0.91 0.8 0.624) #(0.871 0.764 0.612) #(0.836 0.706 0.561) #(0.914 0.8 0.624) #(0.478 0.31 0.247) #(0.749 0.466 0.152) #(0.851 0.721 0.581) #(0.443 0.212 0.07) #(0.768 0.482 0.16) #(0.961 0.891 0.702) #(0.934 0.823 0.639) #(0.953 0.859 0.659) #(0.796 0.655 0.526) #(0.883 0.772 0.612) #(0.585 0.337 0.109) #(0.749 0.47 0.156) #(0.894 0.784 0.62) #(0.823 0.69 0.553) #(0.926 0.831 0.651) #(0.93 0.848 0.674) #(0.84 0.71 0.569) #(0.941 0.871 0.686) #(0.848 0.721 0.573) #(0.937 0.863 0.678) #(0.643 0.353 0.125) #(0.628 0.443 0.337) #(0.887 0.918 0.973) #( ) ))! ! !OBMorphicIcons methodsFor: '*ob-package' stamp: 'lr 4/11/2010 16:43'! dirtyNewPackage ^ ((ColorForm extent: 14@14 depth: 8 fromArray: #( 673720360 673720360 673720360 673710080 673720360 673719336 673720360 673710080 673710630 640034342 640025128 673710080 673719847 656746023 622994983 673710080 673719842 673712421 673719847 673710080 673710887 673717541 673710887 673710080 673448993 553722916 555811876 673710080 673714983 656548898 572984871 656932864 673715493 673711909 521868812 254279680 673711906 673712933 337118755 304611328 673712641 32 419830307 85000192 673720359 656876583 505619235 589037568 673720360 673720359 135267607 136839168 673720360 673720360 673713448 673710080) offset: 0@0) colorsFromArray: #(#(0.31 0.314 0.31) #(0.31 0.31 0.31) #(0.518 0.518 0.518) #(0.404 0.404 0.4) #(0.372 0.372 0.376) #(0.879 0.063 0.063) #(0.926 0.396 0.396) #(0.337 0.337 0.337) #(0.93 0.462 0.462) #(0.408 0.408 0.404) #(0.451 0.451 0.451) #(0.329 0.326 0.326) #(0.871 0.027 0.027) #(0.965 0.733 0.733) #(0.443 0.314 0.314) #(0.934 0.482 0.482) #(0.875 0.016 0.016) #(0.969 0.768 0.768) #(0.875 0.02 0.02) #(0.369 0.369 0.369) #(0.875 0.035 0.035) #(0.353 0.349 0.353) #(0.848 0.035 0.035) #(0.871 0.004 0.004) #(0.973 0.725 0.725) #(0.844 0.043 0.043) #(0.898 0.196 0.196) #(0.875 0.055 0.055) #(1.0 0.992 0.992) #(0.318 0.318 0.318) #(0.871 0.008 0.008) #(0.988 0.914 0.914) #(0.419 0.251 0.251) #(0.369 0.369 0.372) #(0.891 0.922 0.973) #(0.871 0.0 0.0) #(0.286 0.286 0.286) #(0.887 0.922 0.973) #(0.412 0.412 0.412) #(0.887 0.918 0.973) #( ) ))! ! !OBMorphicIcons methodsFor: '*ob-package' stamp: 'lr 4/11/2010 16:29'! dirtyPackage ^ ((ColorForm extent: 14@14 depth: 8 fromArray: #( 1347440720 1347440720 1347440720 1347420160 1347440720 1347421264 1347440720 1347420160 1347420929 16844547 50463312 1347420160 1347424559 709034022 1091437135 1347420160 1347427397 1246514466 892737871 1347420160 1347422757 975243584 138676815 1347420160 1346907136 755304709 1296893716 1347420160 1347434823 320743200 1058158415 1330642944 1347427107 386420018 942673168 1011875840 1347427633 776667151 1226115918 374341632 1347437115 1044196127 436937806 202899456 1347440719 1330578511 676220494 1313210368 1347440720 1347440719 104008745 105906176 1347440720 1347440720 1347433552 1347420160) offset: 0@0) colorsFromArray: #(#(0.624 0.439 0.337) #(0.764 0.478 0.156) #(0.764 0.482 0.16) #(0.764 0.482 0.156) #(0.451 0.239 0.074) #(0.478 0.31 0.243) #(0.93 0.462 0.462) #(0.585 0.333 0.109) #(0.859 0.733 0.585) #(0.482 0.314 0.247) #(0.737 0.451 0.152) #(0.926 0.396 0.396) #(0.879 0.063 0.063) #(0.863 0.039 0.023) #(0.883 0.772 0.612) #(0.875 0.764 0.616) #(0.871 0.027 0.027) #(0.768 0.482 0.16) #(0.871 0.764 0.612) #(0.91 0.796 0.62) #(0.443 0.212 0.07) #(0.973 0.725 0.725) #(0.875 0.02 0.02) #(0.934 0.823 0.639) #(0.969 0.768 0.768) #(0.749 0.466 0.152) #(0.863 0.047 0.031) #(0.674 0.384 0.133) #(0.749 0.47 0.156) #(0.659 0.372 0.129) #(0.836 0.706 0.561) #(0.686 0.283 0.102) #(0.902 0.831 0.671) #(0.796 0.655 0.526) #(0.91 0.8 0.624) #(0.961 0.891 0.702) #(0.898 0.196 0.196) #(0.851 0.737 0.588) #(0.937 0.863 0.678) #(0.478 0.31 0.247) #(0.871 0.008 0.008) #(0.871 0.004 0.004) #(0.934 0.827 0.643) #(0.581 0.333 0.109) #(0.585 0.337 0.109) #(0.628 0.439 0.337) #(0.887 0.776 0.612) #(0.969 0.918 0.725) #(0.875 0.047 0.039) #(0.902 0.796 0.631) #(0.93 0.848 0.674) #(0.875 0.016 0.016) #(0.965 0.733 0.733) #(0.93 0.815 0.639) #(0.879 0.764 0.604) #(0.725 0.345 0.117) #(0.945 0.784 0.604) #(0.698 0.404 0.137) #(0.851 0.721 0.581) #(0.647 0.353 0.125) #(0.934 0.482 0.482) #(0.643 0.349 0.121) #(0.643 0.353 0.125) #(0.926 0.851 0.674) #(0.84 0.71 0.569) #(0.957 0.883 0.69) #(0.78 0.518 0.164) #(0.848 0.729 0.581) #(0.823 0.69 0.553) #(0.926 0.831 0.651) #(1.0 0.992 0.992) #(0.941 0.871 0.686) #(0.451 0.236 0.074) #(0.875 0.031 0.027) #(0.914 0.8 0.624) #(0.831 0.698 0.553) #(0.848 0.721 0.573) #(0.628 0.443 0.337) #(0.871 0.0 0.0) #(0.887 0.918 0.973) #( ) ))! ! OBCommand subclass: #OPCmdPackage instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'OB-Package-Commands'!