#FEATURE by cg
authorClaus Gittinger <cg@exept.de>
Thu, 28 Nov 2019 15:39:01 +0100
changeset 19316 95ca3cd50e96
parent 19315 b186a8e9dd05
child 19317 bca8ae2c2286
#FEATURE by cg class: Tools::NewSystemBrowser support to tag extensions added: #browseClassExtensionsMenuUsingManagerNamed:operation: #classMenuTagExtensionsFor:usingManager: #tagClassExtensionsMenu #tagClassExtensionsMenuUsingManagerNamed: changed: #browseClassExtensionsMenuUsingManagerNamed: class: Tools::NewSystemBrowser class changed: #classCVSMenu #classMenuSCMExtra_CVS
Tools__NewSystemBrowser.st
--- a/Tools__NewSystemBrowser.st	Thu Nov 28 14:32:16 2019 +0100
+++ b/Tools__NewSystemBrowser.st	Thu Nov 28 15:39:01 2019 +0100
@@ -14320,6 +14320,12 @@
             showBusyCursorWhilePerforming: true
           )
          (MenuItem
+            enabled: hasClassWithExtensionsSelectedHolder
+            label: 'Set Tag For...'
+            submenuChannel: tagClassExtensionsMenu
+            showBusyCursorWhilePerforming: true
+          )
+         (MenuItem
             label: '-'
           )
          (MenuItem
@@ -15038,6 +15044,12 @@
             labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
             showBusyCursorWhilePerforming: true
           )
+         (MenuItem
+            enabled: hasClassWithExtensionsSelectedHolder
+            label: 'Set Tag For...'
+            submenuChannel: tagClassExtensionsMenu
+            showBusyCursorWhilePerforming: true
+          )
          )
         nil
         nil
@@ -38245,6 +38257,41 @@
     "Created: / 21-12-2011 / 23:12:15 / cg"
 !
 
+classMenuTagExtensionsFor:package usingManager:mgr
+    |classes tag tags tagAndRevision revision utilities|
+
+    classes := self selectedNonMetaclasses.
+    SourceCodeManagerError handle:[:ex |
+        Dialog warn:(resources
+                            stringWithCRs:'Could not fetch tag information.\\Please check your sourcecode manager settings.\(and possibly the network for reachability of the repository)').
+    ] do:[
+        tagAndRevision := self askForTagForClasses:classes askForRevision:(classes size == 1).
+    ].
+    tag := tagAndRevision key.
+    tag isEmptyOrNil ifTrue:[^ self ].
+
+    revision := tagAndRevision value.
+    (revision notNil and:[revision withoutSeparators isEmpty]) ifTrue:[
+        revision := nil.
+    ].
+
+    mgr isNil ifTrue:[
+        utilities := (AbstractSourceCodeManager managerForPackage:package) utilities.
+    ] ifFalse:[
+        utilities := mgr utilities.
+    ].
+    utilities defaultManager recentTag:tag.
+    self withWaitCursorDo:[
+        tags := tag asCollectionOfSubstringsSeparatedByAny:',;'.
+        tags do:[:eachTag |
+            utilities tagExtensionsFromPackage:package with:eachTag
+        ].
+    ]
+
+    "Created: / 12-09-2006 / 13:36:59 / cg"
+    "Modified: / 29-07-2013 / 00:59:28 / cg"
+!
+
 compareAgainstNewestInRepository:aClass
     "open a diff-textView comparing the current (in-image) version
      with the newest version found in the repository.
@@ -54014,6 +54061,14 @@
 browseClassExtensionsMenuUsingManagerNamed:sourceCodeManagerNameOrNil
     <resource: #programMenu >
 
+    ^ self 
+        browseClassExtensionsMenuUsingManagerNamed:sourceCodeManagerNameOrNil 
+        operation:[:package :mgr | self classMenuCheckInExtensionsFor:package usingManager:mgr ]
+!
+
+browseClassExtensionsMenuUsingManagerNamed:sourceCodeManagerNameOrNil operation:actionWithPackageAndMgr
+    <resource: #programMenu >
+
     ^ [
         |m extensionProjectIDs classPackage item mgr|
 
@@ -54049,7 +54104,7 @@
             ].
             extensionProjectIDs asSortedCollection do:[:eachExtensionPackage |
                 item := MenuItem label:eachExtensionPackage.
-                item itemValue:[ self classMenuCheckInExtensionsFor: eachExtensionPackage usingManager:mgr ].
+                item itemValue:[ actionWithPackageAndMgr value: eachExtensionPackage value:mgr ].
                 m addItem:item.
             ].
         ].
@@ -55526,6 +55581,20 @@
     "Modified: / 05-09-2006 / 10:33:49 / cg"
 !
 
+tagClassExtensionsMenu
+    <resource: #programMenu >
+
+    ^ self tagClassExtensionsMenuUsingManagerNamed:nil
+!
+
+tagClassExtensionsMenuUsingManagerNamed:sourceCodeManagerNameOrNil
+    <resource: #programMenu >
+
+    ^ self 
+        browseClassExtensionsMenuUsingManagerNamed:sourceCodeManagerNameOrNil 
+        operation:[:package :mgr | self classMenuTagExtensionsFor:package usingManager:mgr ]
+!
+
 toolBarMenu
     <resource: #programMenu>