A new version of Tools was added to project The Inbox: http://source.squeak.org/inbox/Tools-ct.1069.mcz
==================== Summary ====================
Name: Tools-ct.1069 Author: ct Time: 1 November 2021, 7:12:42.078014 pm UUID: 62e9cb10-4017-3e40-a9bb-c57e2f3de95a Ancestors: Tools-eem.1065
Adds menu items to browse the extensions, dependencies, and the package of a system category or package in the relevant browsers' columns.
Depends on System-ct.1245. Supersedes Tools-ct.930. Also integrates Tools-ct.961 for package browsing instead of adding new merge conflicts (though this increases the size of this version -- please report back whether this was a good decision or not). Reuploaded as a replacement for Tools-ct.1065 to collect all package-related items in the browser in a submenu. Yes, at some time, we should really clean up CustomMenu and move some responsibilities to the ToolBuilder, but until we tackle this construction site, let's not restraint ourselves from adding new features.
=============== Diff against Tools-eem.1065 ===============
Item was added: + ----- Method: Browser>>browseExtensions (in category 'system category functions') ----- + browseExtensions + + ^ self systemNavigation browseAllExtensionsOfCategory: self selectedSystemCategory!
Item was added: + ----- Method: Browser>>browseInvertedPackageDependencies (in category 'system category functions') ----- + browseInvertedPackageDependencies + + ^ DependencyBrowser openInvertedOnPackage: self selectedPackage!
Item was added: + ----- Method: Browser>>browsePackage (in category 'system category functions') ----- + browsePackage + + ^ self selectedPackage browse!
Item was added: + ----- Method: Browser>>browsePackageDependencies (in category 'system category functions') ----- + browsePackageDependencies + + ^ DependencyBrowser openOnPackage: self selectedPackage!
Item was added: + ----- Method: Browser>>browsePackageExtensions (in category 'system category functions') ----- + browsePackageExtensions + + ^ self systemNavigation browseAllExtensionsOfPackage: self selectedPackage!
Item was added: + ----- Method: Browser>>mainPackageMenu: (in category 'system category functions') ----- + mainPackageMenu: aMenu + <packageMenu> + ^ aMenu addList: #( + ('browse' browsePackage) + ('browse extensions' browsePackageExtensions) + ('browse dependencies' browsePackageDependencies) + ('browse inverted dependencies' browseInvertedPackageDependencies)); + yourself!
Item was changed: ----- Method: Browser>>mainSystemCategoryMenu: (in category 'system category functions') ----- mainSystemCategoryMenu: aMenu <systemCategoryMenu> + aMenu addTranslatedList: #( + ('find class... (f)' findClass) + ('back... (b)' recent) - ^ aMenu addList: #( - ('find class... (f)' findClass) - ('back... (b)' recent) - + ('browse all' browseAllClasses) + ('browse' buildSystemCategoryBrowser) + ('browse extensions' browseExtensions)). + aMenu + add: 'package' translated + subMenu: (self packageMenu: ((Smalltalk isMorphic + ifTrue: [MenuMorph new defaultTarget: self; yourself] + ifFalse: [CustomMenu new]) + yourself)) + target: self + selector: #yourself + argumentList: #(). + aMenu addTranslatedList: #( - ('browse all' browseAllClasses) - ('browse' buildSystemCategoryBrowser) - + ('printOut' printOutSystemCategory) + ('fileOut' fileOutSystemCategory) - ('printOut' printOutSystemCategory) - ('fileOut' fileOutSystemCategory) - + ('reorganize' editSystemCategories) + ('alphabetize' alphabetizeSystemCategories) - ('reorganize' editSystemCategories) - ('alphabetize' alphabetizeSystemCategories) - + ('update' updateSystemCategories) + ('add item...' addSystemCategory) + ('rename...' renameSystemCategory) + ('remove (x)' removeSystemCategory)). + ^ aMenu! - ('update' updateSystemCategories) - ('add item...' addSystemCategory) - ('rename...' renameSystemCategory) - ('remove (x)' removeSystemCategory)); - yourself - !
Item was added: + ----- Method: Browser>>packageMenu: (in category 'system category functions') ----- + packageMenu: aMenu + ^ self menu: aMenu for: #(packageMenu packageMenuShifted:) + !
Item was added: + ----- Method: Browser>>selectedPackage (in category 'system category list') ----- + selectedPackage + + ^ self environment packageOrganizer packageOfSystemCategory: self selectedSystemCategory!
Item was changed: ----- Method: DependencyBrowser class>>openInvertedOn: (in category 'opening') ----- openInvertedOn: requiredPackageNames "DependencyBrowser openInvertedOn: #(Monticello)" | model | model := self new. ^ ToolBuilder open: ( model + packageList: (Cursor wait showWhile: [ + model packageList select: [:packageName | + model computePackageDependencies: packageName. + model packageDeps includesAnyOf: requiredPackageNames]]); - packageList: (model packageList select: [:packageName | - model computePackageDependencies: packageName. - model packageDeps includesAnyOf: requiredPackageNames]); windowTitle: ('Dependency Browser (inverted on {1})' format: {requiredPackageNames}); yourself) !
Item was added: + ----- Method: DependencyBrowser class>>openInvertedOnPackage: (in category 'opening') ----- + openInvertedOnPackage: aPackageInfo + "DependencyBrowser openInvertedOnPackage: Morph packageInfo" + + ^ self openInvertedOn: {aPackageInfo name}!
Item was added: + ----- Method: DependencyBrowser class>>openOnPackage: (in category 'opening') ----- + openOnPackage: aPackageInfo + "DependencyBrowser openOnPackage: Morph packageInfo" + + ^ ToolBuilder open: (self new + selectPackage: aPackageInfo name; + yourself)!
Item was added: + ----- Method: DependencyBrowser>>selectPackage: (in category 'class list') ----- + selectPackage: packageName + + self packageListIndex: (self packageList indexOf: packageName).!
Item was added: + ----- Method: DependencyBrowser>>selectedPackage (in category 'class list') ----- + selectedPackage + + ^ self packageList at: self packageListIndex!
Item was added: + ----- Method: PackagePaneBrowser class>>fullOnPackage: (in category 'instance creation') ----- + fullOnPackage: aPackage + + ^ self new + selectPackageNamed: aPackage name; + buildAndOpenFullBrowser!
Item was changed: ----- Method: PackagePaneBrowser>>mainPackageMenu: (in category 'package list') ----- mainPackageMenu: aMenu "Answer a Menu of operations on class packages to be displayed when the operate menu button is pressed." <packageListMenu> ^aMenu addList: #( + ('find class... (f)' findClass) + ('back... (b)' recent) - ('find class...' findClass) - ('recent classes...' recent) - + ('browse extensions' browsePackageExtensions) + ('browse dependencies' browsePackageDependencies) + ('browse inverted dependencies' browseInvertedPackageDependencies) + - + ('reorganize' editSystemCategories) + ('alphabetize' alphabetizeSystemCategories) - ('reorganize' editSystemCategories) - ('alphabetize' alphabetizeSystemCategories) - + ('update' updatePackages)); + yourself.! - ('update' updatePackages)); - yourself. - !
Item was changed: ----- Method: PackagePaneBrowser>>packageListKey:from: (in category 'package list') ----- packageListKey: aChar from: view aChar == $f ifTrue: [^ self findClass]. + aChar == $b ifTrue: [^ self recent]. ^ self classListKey: aChar from: view!
Item was added: + ----- Method: PackagePaneBrowser>>selectPackageNamed: (in category 'package list') ----- + selectPackageNamed: aPackageName + + self packageListIndex: (self packageList indexOf: aPackageName). + self changed: #packageListIndex.!
Item was added: + ----- Method: PackagePaneBrowser>>selectedPackage (in category 'package list') ----- + selectedPackage + + ^ self package + ifNotNil: [:package | PackageInfo named: package] + ifNil: [super selectedPackage]!
Item was changed: ----- Method: StandardToolSet class>>browsePackage: (in category 'browsing') ----- browsePackage: aPackageInfo + ^ PackagePaneBrowser fullOnPackage: aPackageInfo! - self flag: #discuss. "mt: Maybe use the package-pane browser?" - "PackagePaneBrowser fullOnCategory: aPackageInfo name" - - ^ self browseCategory: aPackageInfo systemCategories first - - !
squeak-dev@lists.squeakfoundation.org