class: Tools::NewSystemBrowser
added:
#canGenerateAspectMethod
#canGenerateAspectMethodHolder
#selectorMenuGenerateAspectMethod
changed: #selectorMenuCompareGenerateDebugSlice
--- a/Tools__NewSystemBrowser.st Fri Jun 07 14:05:11 2013 +0200
+++ b/Tools__NewSystemBrowser.st Fri Jun 07 14:08:09 2013 +0200
@@ -10933,13 +10933,13 @@
<resource: #menu>
- ^
+ ^
#(Menu
(
(MenuItem
enabled: hasMethodSelectedHolder
label: 'Compare'
- submenu:
+ submenu:
(Menu
(
(MenuItem
@@ -10991,7 +10991,7 @@
)
(MenuItem
label: 'Generate'
- submenu:
+ submenu:
(Menu
(
(MenuItem
@@ -11021,6 +11021,14 @@
label: '-'
)
(MenuItem
+ enabled: canGenerateAspectMethodHolder
+ label: 'Aspect Method...'
+ itemValue: selectorMenuGenerateAspectMethod
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
enabled: hasInstanceMethodsSelectedHolder
label: 'Corresponding Instance Creation in Class'
itemValue: selectorMenuGenerateCorrespondingInstanceCreationInClass
@@ -11047,7 +11055,7 @@
)
(MenuItem
label: 'Special'
- submenu:
+ submenu:
(Menu
(
(MenuItem
@@ -11061,7 +11069,7 @@
(MenuItem
label: 'Select'
isVisible: false
- submenu:
+ submenu:
(Menu
(
(MenuItem
@@ -19474,6 +19482,14 @@
^ self hasClassAndVariableSelectedHolder
!
+canGenerateAspectMethod
+ ^ self hasApplicationClassSelected
+!
+
+canGenerateAspectMethodHolder
+ ^ [ self canGenerateAspectMethod ]
+!
+
canGenerateMultiSetterMethodHolder
^ self hasSingleLoadedClassSelectedAndMultipleVariablesSelectedHolder
!
@@ -37289,6 +37305,7 @@
"Modified: / 28-02-2012 / 16:27:44 / cg"
! !
+
!NewSystemBrowser methodsFor:'menu actions-namespace'!
nameSpaceMenuCheckOut
@@ -44074,6 +44091,30 @@
^ self selectorMenuFileOutAsWithFormat:#xml
!
+selectorMenuGenerateAspectMethod
+ "generate an aspect method using the common bindings (i.e. not an instvar)"
+
+ |aspect cls|
+
+ aspect := Dialog request:'Name of aspect:'.
+ aspect isEmptyOrNil ifTrue:[^ self].
+ (aspect isValidSmalltalkIdentifier
+ and:[ aspect isUnarySelector]) ifFalse:[
+ Dialog warn:'Name of aspect must be a valid Smalltalk unary identifier'.
+ thisContext restart
+ ].
+
+ cls := self theSingleSelectedClass.
+ cls isNil ifTrue:[^ self].
+
+ self
+ generateUndoableChange:(resources string:'Generate Aspect Method for "%1"' with:aspect)
+ overClasses:(Array with:cls)
+ via:[:generator :eachClass |
+ generator createAspectMethodFor:aspect in:cls
+ ]
+!
+
selectorMenuGenerateCorrespondingInstanceCreationInClass
"generate a subclassResponsibility method in the methods superclass"
@@ -58489,15 +58530,15 @@
!NewSystemBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1892 2013-06-06 12:30:51 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1893 2013-06-07 12:08:09 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1892 2013-06-06 12:30:51 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1893 2013-06-07 12:08:09 cg Exp $'
!
version_SVN
- ^ '$Id: Tools__NewSystemBrowser.st,v 1.1892 2013-06-06 12:30:51 cg Exp $'
+ ^ '$Id: Tools__NewSystemBrowser.st,v 1.1893 2013-06-07 12:08:09 cg Exp $'
! !