#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
--- 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."