#FEATURE by cg
authorClaus Gittinger <cg@exept.de>
Thu, 14 Jun 2018 16:39:20 +0200
changeset 18212 b709e276e731
parent 18211 628466ff92d9
child 18213 c0d117c0473d
#FEATURE by cg class: Tools::NewSystemBrowser setter instance creation in variables menu added: #canGenerateSetterInstanceCreationMethodHolder #hasSingleLoadedClassSelectedAndSingleVariableSelected #hasSingleLoadedClassSelectedAndSingleVariableSelectedHolder #hasSingleLoadedClassSelectedAndVariableSelected #hasSingleLoadedClassSelectedAndVariableSelectedHolder #variablesMenuGenerateSetterInstanceCreationMethod changed: #classMenuGenerateMultiSetterInstanceCreationMethod category of: #variablesMenuGenerateMultiSetterInstanceCreationMethod #variablesMenuGenerateMultiSetterMethod class: Tools::NewSystemBrowser class changed: #variablesMenu
Tools__NewSystemBrowser.st
--- a/Tools__NewSystemBrowser.st	Thu Jun 14 13:19:47 2018 +0200
+++ b/Tools__NewSystemBrowser.st	Thu Jun 14 16:39:20 2018 +0200
@@ -12951,6 +12951,12 @@
                   showBusyCursorWhilePerforming: true
                 )
                (MenuItem
+                  enabled: canGenerateSetterInstanceCreationMethodHolder
+                  label: 'Setter Instance Creation Method'
+                  itemValue: variablesMenuGenerateSetterInstanceCreationMethod
+                  showBusyCursorWhilePerforming: true
+                )
+               (MenuItem
                   enabled: canGenerateMultiSetterInstanceCreationMethodHolder
                   label: 'Multi-Setter Instance Creation Method'
                   itemValue: variablesMenuGenerateMultiSetterInstanceCreationMethod
@@ -13027,6 +13033,8 @@
         nil
         nil
       )
+
+    "Modified: / 14-06-2018 / 16:32:56 / Claus Gittinger"
 !
 
 viewMenu
@@ -21269,6 +21277,12 @@
     ^ self hasSingleLoadedClassSelectedAndMultipleVariablesSelectedHolder
 !
 
+canGenerateSetterInstanceCreationMethodHolder
+    ^ self hasSingleLoadedClassSelectedAndSingleVariableSelectedHolder
+
+    "Created: / 14-06-2018 / 16:31:06 / Claus Gittinger"
+!
+
 canGoBackAspect
     |holder|
 
@@ -23484,6 +23498,32 @@
     "Created: / 17.2.2000 / 23:28:03 / cg"
 !
 
+hasSingleLoadedClassSelectedAndSingleVariableSelected
+    ^ self hasSingleLoadedClassSelected
+      and:[ self hasSingleVariableSelected ]
+
+    "Created: / 14-06-2018 / 16:32:51 / Claus Gittinger"
+!
+
+hasSingleLoadedClassSelectedAndSingleVariableSelectedHolder
+    ^ [ self hasSingleLoadedClassSelectedAndSingleVariableSelected ]
+
+    "Created: / 14-06-2018 / 16:32:33 / Claus Gittinger"
+!
+
+hasSingleLoadedClassSelectedAndVariableSelected
+    ^ self hasSingleLoadedClassSelected
+      and:[ self hasVariableSelected ]
+
+    "Created: / 14-06-2018 / 16:31:51 / Claus Gittinger"
+!
+
+hasSingleLoadedClassSelectedAndVariableSelectedHolder
+    ^ [ self hasSingleLoadedClassSelectedAndVariableSelected ]
+
+    "Created: / 14-06-2018 / 16:31:32 / Claus Gittinger"
+!
+
 hasSingleLoadedClassSelectedHolder
     ^ [ self hasSingleLoadedClassSelected ]
 
@@ -31973,12 +32013,20 @@
     vars := cls allInstVarNames
             select:[:var | self selectedVariables value includes:var].
 
-    self
-        generateUndoableChange:'Generate multi-setter instance creator'
+    vars size == 0 ifTrue:[
+        Dialog warn:'No variable selected'.
+        ^ self.
+    ].    
+    self
+        generateUndoableChange:(vars size == 1 
+                                    ifTrue:['Generate setter instance creator']
+                                    ifFalse:['Generate multi-setter instance creator'])
         overClasses:(Array with:cls)
         via:[:generator :eachClass |
             generator createMultiSetterInstanceCreationMethodFor:vars in:cls
         ].
+
+    "Modified: / 14-06-2018 / 16:30:03 / Claus Gittinger"
 !
 
 classMenuGenerateMultiSetterMethod
@@ -35640,18 +35688,6 @@
     self spawnFullBrowserInClass:common selector:nil in:how
 
     "Created: / 28-02-2012 / 09:07:39 / cg"
-!
-
-variablesMenuGenerateMultiSetterInstanceCreationMethod
-    "create a multi setter instance creation method for selected instvars."
-
-    self classMenuGenerateMultiSetterInstanceCreationMethod
-!
-
-variablesMenuGenerateMultiSetterMethod
-    "create a multi setter method for selected instvars."
-
-    self classMenuGenerateMultiSetterMethod
 ! !
 
 !NewSystemBrowser methodsFor:'menu actions-class hierarchy'!
@@ -41874,6 +41910,7 @@
     "Modified: / 28-02-2012 / 16:27:44 / cg"
 ! !
 
+
 !NewSystemBrowser methodsFor:'menu actions-namespace'!
 
 nameSpaceMenuCheckOut
@@ -52624,6 +52661,26 @@
         lazyInitialization:false
 !
 
+variablesMenuGenerateMultiSetterInstanceCreationMethod
+    "create a multi setter instance creation method for selected instvars."
+
+    self classMenuGenerateMultiSetterInstanceCreationMethod
+!
+
+variablesMenuGenerateMultiSetterMethod
+    "create a multi setter method for selected instvars."
+
+    self classMenuGenerateMultiSetterMethod
+!
+
+variablesMenuGenerateSetterInstanceCreationMethod
+    "create a multi setter instance creation method for selected instvars."
+
+    self classMenuGenerateMultiSetterInstanceCreationMethod
+
+    "Created: / 14-06-2018 / 16:28:27 / Claus Gittinger"
+!
+
 variablesMenuGenerateSetterMethods
     "create setter methods for selected instvars."