<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
<img id="7ccd2067-f366-444d-825c-f6b460ad0755" src="cid:08f8f86a-7279-4f6c-861d-33dcd9105ebd" width="454" height="247"></img><br><div class="mb_sig"></div><blockquote class='history_container' type='cite' style='border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;'>
<p style='color: #AAAAAA; margin-top: 10px;'>Am 13.01.2022 15:51:51 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p><div style='font-family:Arial,Helvetica,sans-serif'>Marcel Taeumel uploaded a new version of Tools to project The Trunk:<br>http://source.squeak.org/trunk/Tools-mt.1103.mcz<br><br>==================== Summary ====================<br><br>Name: Tools-mt.1103<br>Author: mt<br>Time: 13 January 2022, 3:51:35.185475 pm<br>UUID: 15568d63-9e8c-1541-9620-1e86a2644382<br>Ancestors: Tools-mt.1102, Tools-ct.1069<br><br>Merges Tools-ct.1069, which adds "browse package" sub-menu into SystemBrowser's system/class-category menu to then be able to browse extensions and dependencies of a package that belongs to the selected category.<br><br>=============== Diff against Tools-mt.1102 ===============<br><br>Item was added:<br>+ ----- Method: Browser>>browsePackage (in category 'system category functions') -----<br>+ browsePackage<br>+ <br>+ ^ self selectedPackage<br>+ ifNil: [self informUnknownPackage]<br>+ ifNotNil: [:package | package browse].!<br><br>Item was added:<br>+ ----- Method: Browser>>browsePackageDependencies (in category 'system category functions') -----<br>+ browsePackageDependencies<br>+ <br>+ ^ self selectedPackage<br>+ ifNil: [self informUnknownPackage]<br>+ ifNotNil: [:package | DependencyBrowser openOnPackage: package].!<br><br>Item was added:<br>+ ----- Method: Browser>>browsePackageDependenciesInverted (in category 'system category functions') -----<br>+ browsePackageDependenciesInverted<br>+ <br>+ ^ self selectedPackage<br>+ ifNil: [self informUnknownPackage]<br>+ ifNotNil: [:package | DependencyBrowser openInvertedOnPackage: package].!<br><br>Item was added:<br>+ ----- Method: Browser>>browsePackageExtensions (in category 'system category functions') -----<br>+ browsePackageExtensions<br>+ <br>+ ^ self selectedPackage<br>+ ifNil: [self informUnknownPackage]<br>+ ifNotNil: [:package | self systemNavigation browseAllExtensionMethodsOfPackage: package]!<br><br>Item was added:<br>+ ----- Method: Browser>>browsePackageExtensionsLocalTo (in category 'system category functions') -----<br>+ browsePackageExtensionsLocalTo<br>+ <br>+ ^ self selectedPackage<br>+ ifNil: [self informUnknownPackage]<br>+ ifNotNil: [:package | <br>+ self systemNavigation<br>+ browseAllExtensionMethodsOfPackage: package<br>+ localTo: self selectedSystemCategory].!<br><br>Item was added:<br>+ ----- Method: Browser>>informUnknownPackage (in category 'system category functions') -----<br>+ informUnknownPackage<br>+ <br>+ self inform: ('The category <b>{1}</b> does not<br>belong to a known package.' translated format: {self selectedSystemCategory}) asTextFromHtml.!<br><br>Item was added:<br>+ ----- Method: Browser>>mainPackageMenu: (in category 'system category functions') -----<br>+ mainPackageMenu: aMenu<br>+ <packagemenu><br>+ <br>+ self selectedPackage ifNil: [<br>+ ^ aMenu<br>+ add: '(No package found.)' translated action: #yourself;<br>+ yourself].<br>+ <br>+ aMenu addList: #(<br>+ ('browse package' browsePackage)<br>+ #-<br>+ ('extensions' browsePackageExtensions)).<br>+ <br>+ aMenu<br>+ add: 'extensions local to ''', self selectedSystemCategory, ''''<br>+ action: #browsePackageExtensionsLocalTo.<br>+ <br>+ aMenu addList: #(<br>+ #-<br>+ ('dependencies' browsePackageDependencies)<br>+ ('inverted dependencies' browsePackageDependenciesInverted)).<br>+ <br>+ ^ aMenu!<br><br>Item was changed:<br> ----- Method: Browser>>mainSystemCategoryMenu: (in category 'system category functions') -----<br> mainSystemCategoryMenu: aMenu<br> <systemcategorymenu><br>+ aMenu addTranslatedList: #(<br>+ ('find class... (f)' findClass)<br>+ ('back... (b)' recent)<br>- ^ aMenu addList: #(<br>- ('find class... (f)' findClass)<br>- ('back... (b)' recent)<br> -<br>+ ('browse all' browseAllClasses)<br>+ ('browse' buildSystemCategoryBrowser)).<br>+ <br>+ (Smalltalk isMorphic and: [self selectedPackage notNil]) ifTrue: [<br>+ aMenu<br>+ add: ('browse package ''{1}''' translated format: {self selectedPackage name})<br>+ subMenu: (self packageMenu: ((Smalltalk isMorphic<br>+ ifTrue: [MenuMorph new defaultTarget: self; yourself]<br>+ ifFalse: [CustomMenu new])<br>+ yourself))<br>+ target: self<br>+ selector: #yourself<br>+ argumentList: #()].<br>+ <br>+ aMenu addTranslatedList: #(<br>- ('browse all' browseAllClasses)<br>- ('browse' buildSystemCategoryBrowser)<br> -<br>+ ('printOut' printOutSystemCategory)<br>+ ('fileOut' fileOutSystemCategory)<br>- ('printOut' printOutSystemCategory)<br>- ('fileOut' fileOutSystemCategory)<br> -<br>+ ('reorganize' editSystemCategories)<br>+ ('alphabetize' alphabetizeSystemCategories)<br>- ('reorganize' editSystemCategories)<br>- ('alphabetize' alphabetizeSystemCategories)<br> -<br>+ ('update' updateSystemCategories)<br>+ ('add item...' addSystemCategory)<br>+ ('rename...' renameSystemCategory)<br>+ ('remove (x)' removeSystemCategory)).<br>+ ^ aMenu!<br>- ('update' updateSystemCategories)<br>- ('add item...' addSystemCategory)<br>- ('rename...' renameSystemCategory)<br>- ('remove (x)' removeSystemCategory));<br>- yourself<br>- !<br><br>Item was added:<br>+ ----- Method: Browser>>packageMenu: (in category 'system category functions') -----<br>+ packageMenu: aMenu<br>+ ^ self menu: aMenu for: #(packageMenu packageMenuShifted:)<br>+ !<br><br>Item was added:<br>+ ----- Method: Browser>>selectedPackage (in category 'system category list') -----<br>+ selectedPackage<br>+ <br>+ ^ self environment packageOrganizer<br>+ packageOfSystemCategory: self selectedSystemCategory<br>+ ifNone: []!<br><br>Item was changed:<br> ----- Method: DependencyBrowser class>>openInvertedOn: (in category 'opening') -----<br> openInvertedOn: requiredPackageNames<br> "DependencyBrowser openInvertedOn: #(Monticello)"<br> <br> | model |<br> model := self new. <br> ^ ToolBuilder open: (<br> model<br>+ packageList: (Cursor wait showWhile: [<br>+ model packageList select: [:packageName |<br>+ model computePackageAndClassDependencies: packageName.<br>+ model packageDeps includesAnyOf: requiredPackageNames]]);<br>- packageList: (model packageList select: [:packageName |<br>- model computePackageAndClassDependencies: packageName.<br>- model packageDeps includesAnyOf: requiredPackageNames]);<br> windowTitle: ('Dependency Browser (inverted on {1})' translated format: {requiredPackageNames});<br>+ yourself)<br>+ !<br>- yourself)!<br><br>Item was added:<br>+ ----- Method: DependencyBrowser class>>openInvertedOnPackage: (in category 'opening') -----<br>+ openInvertedOnPackage: aPackageInfo<br>+ "DependencyBrowser openInvertedOnPackage: Morph packageInfo"<br>+ <br>+ ^ self openInvertedOn: {aPackageInfo name}!<br><br>Item was added:<br>+ ----- Method: DependencyBrowser class>>openOnPackage: (in category 'opening') -----<br>+ openOnPackage: aPackageInfo<br>+ "DependencyBrowser openOnPackage: Morph packageInfo"<br>+ <br>+ ^ ToolBuilder open: (self new<br>+ selectPackage: aPackageInfo name;<br>+ yourself)!<br><br>Item was added:<br>+ ----- Method: DependencyBrowser>>selectPackage: (in category 'class list') -----<br>+ selectPackage: packageName<br>+ <br>+ self packageListIndex: (self packageList indexOf: packageName).!<br><br>Item was added:<br>+ ----- Method: DependencyBrowser>>selectedPackage (in category 'package list') -----<br>+ selectedPackage<br>+ <br>+ ^ self environment packageOrganizer<br>+ packageNamed: self selectedPackageName<br>+ ifAbsent: [nil]!<br><br>Item was added:<br>+ ----- Method: DependencyBrowser>>selectedPackageName (in category 'package list') -----<br>+ selectedPackageName<br>+ <br>+ ^ self packageList at: self packageListIndex!<br><br>Item was added:<br>+ ----- Method: PackagePaneBrowser class>>fullOnPackage: (in category 'instance creation') -----<br>+ fullOnPackage: aPackage<br>+ <br>+ ^ self new<br>+ selectPackageNamed: aPackage name;<br>+ buildAndOpenFullBrowser!<br><br>Item was changed:<br> ----- Method: PackagePaneBrowser>>mainPackageMenu: (in category 'package list') -----<br> mainPackageMenu: aMenu<br> "Answer a Menu of operations on class packages to be <br> displayed when the operate menu button is pressed."<br> <packagelistmenu><br> ^aMenu addList: #(<br>+ ('find class... (f)' findClass)<br>+ ('back... (b)' recent)<br>- ('find class...' findClass)<br>- ('recent classes...' recent)<br> -<br>+ ('browse extensions' browsePackageExtensions)<br>+ ('browse dependencies' browsePackageDependencies)<br>+ ('browse inverted dependencies' browsePackageDependenciesInverted)<br>+ -<br>+ ('reorganize' editSystemCategories)<br>+ ('alphabetize' alphabetizeSystemCategories)<br>- ('reorganize' editSystemCategories)<br>- ('alphabetize' alphabetizeSystemCategories)<br> - <br>+ ('update' updatePackages));<br>+ yourself.!<br>- ('update' updatePackages));<br>- yourself.<br>- !<br><br>Item was changed:<br> ----- Method: PackagePaneBrowser>>package (in category 'package list') -----<br> package<br> "Answer the receiver's 'package'."<br> <br>+ ^ self selectedPackageName!<br>- ^ self hasPackageSelected<br>- ifFalse: [nil]<br>- ifTrue: [self packageList at: packageListIndex]<br>- !<br><br>Item was changed:<br> ----- Method: PackagePaneBrowser>>packageListKey:from: (in category 'package list') -----<br> packageListKey: aChar from: view<br> aChar == $f ifTrue: [^ self findClass].<br>+ aChar == $b ifTrue: [^ self recent].<br> ^ self classListKey: aChar from: view!<br><br>Item was added:<br>+ ----- Method: PackagePaneBrowser>>selectPackageNamed: (in category 'package list') -----<br>+ selectPackageNamed: aPackageName<br>+ <br>+ self packageListIndex: (self packageList indexOf: aPackageName).<br>+ self changed: #packageListIndex.!<br><br>Item was added:<br>+ ----- Method: PackagePaneBrowser>>selectedPackage (in category 'package list') -----<br>+ selectedPackage<br>+ <br>+ ^ self selectedPackageName<br>+ ifNil: [super selectedPackage]<br>+ ifNotNil: [:packageName |<br>+ self environment packageOrganizer<br>+ packageNamed: packageName<br>+ ifAbsent: [nil]]!<br><br>Item was added:<br>+ ----- Method: PackagePaneBrowser>>selectedPackageName (in category 'package list') -----<br>+ selectedPackageName<br>+ <br>+ ^ self hasPackageSelected<br>+ ifFalse: [nil]<br>+ ifTrue: [self packageList at: packageListIndex]!<br><br>Item was changed:<br> ----- Method: StandardToolSet class>>browsePackage: (in category 'browsing') -----<br> browsePackage: aPackageInfo<br> <br>+ ^ PackagePaneBrowser fullOnPackage: aPackageInfo!<br>- self flag: #discuss. "mt: Maybe use the package-pane browser?"<br>- "PackagePaneBrowser fullOnCategory: aPackageInfo name"<br>- <br>- ^ self browseCategory: aPackageInfo systemCategories first<br>- <br>- !<br><br><br></packagelistmenu></systemcategorymenu></packagemenu></div></blockquote>
</div></body>