<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>