class: Tools::NewSystemBrowser
authorClaus Gittinger <cg@exept.de>
Fri, 07 Jun 2013 14:08:09 +0200
changeset 12878 f7c65c57e858
parent 12877 56aee4c5bb78
child 12879 a544ab64abc0
class: Tools::NewSystemBrowser added: #canGenerateAspectMethod #canGenerateAspectMethodHolder #selectorMenuGenerateAspectMethod changed: #selectorMenuCompareGenerateDebugSlice
Tools__NewSystemBrowser.st
--- 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 $'
 ! !