Tools__NewSystemBrowser.st
changeset 11843 1418fefa55c1
parent 11834 ac5e0e017274
child 11845 907ff100e5f2
--- a/Tools__NewSystemBrowser.st	Mon Oct 15 22:17:19 2012 +0200
+++ b/Tools__NewSystemBrowser.st	Mon Oct 15 22:33:27 2012 +0200
@@ -11098,6 +11098,12 @@
                   translateLabel: true
                 )
                (MenuItem
+                  enabled: methodIsTestAndNotImplementedInSuperclass
+                  label: 'False-returning Test in SuperClass'
+                  itemValue: selectorMenuGenerateFalseReturnInSuperclass
+                  translateLabel: true
+                )
+               (MenuItem
                   label: 'Templates in Subclasses'
                   itemValue: selectorMenuGenerateTemplateInSubclasses
                   translateLabel: true
@@ -22020,6 +22026,13 @@
     ^ false.
 !
 
+methodIsTestAndNotImplementedInSuperclass
+    self selectedMethodsDo:[:eachMethod |
+        (eachMethod selector startsWith:'is') ifFalse:[^ false].
+    ].
+    ^ self methodNotImplementedInSuperclass
+!
+
 methodNotImplementedInClass
     |selector|
 
@@ -43200,6 +43213,44 @@
         ]
 !
 
+selectorMenuGenerateFalseReturnInSuperclass
+    "generate a ^false method in the method's superclass"
+
+    self
+        generateUndoableChangeOverSelectedMethods:'Generate False-return in superclass for %(singleMethodNameOrNumberOfMethods)'
+        via:[:generator :eachMethod |
+
+            |selector category mclass implClass defineIt answer|
+
+            selector := eachMethod selector.
+            category := eachMethod category.
+            mclass := eachMethod mclass.
+
+            mclass superclass notNil ifTrue:[
+                (mclass superclass includesSelector:selector) ifFalse:[
+                    defineIt := true.
+
+                    implClass := mclass superclass whichClassIncludesSelector:selector.
+                    implClass notNil ifTrue:[
+                        answer := Dialog
+                                    confirmWithCancel:(resources
+                                                            string:'%1 is inherited from %2.\\Define as false-return in %3 anyway ?'
+                                                            with:selector allBold
+                                                            with:implClass name allBold
+                                                            with:mclass superclass name allBold
+                                                      ) withCRs.
+                        answer isNil ifTrue:[^ self].
+                        defineIt := answer.
+                    ].
+                    defineIt ifTrue:[
+                        generator
+                            createFalseReturnMethodFor:selector category:category in:mclass superclass.
+                    ]
+                ].
+            ].
+        ]
+!
+
 selectorMenuGenerateForwardingMethodForInstances
     "generate a forwarding method on the instance side"
 
@@ -57421,11 +57472,11 @@
 !NewSystemBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1786 2012-10-08 12:42:00 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1787 2012-10-15 20:33:27 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1786 2012-10-08 12:42:00 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1787 2012-10-15 20:33:27 cg Exp $'
 !
 
 version_SVN