reuse of generate code for instance method #menu
authorca
Wed, 10 Sep 1997 10:36:23 +0200
changeset 318 31a94b71ae1b
parent 317 e59012bf505f
child 319 f16aa0e8541e
reuse of generate code for instance method #menu
MenuEditor.st
--- a/MenuEditor.st	Wed Sep 10 10:35:21 1997 +0200
+++ b/MenuEditor.st	Wed Sep 10 10:36:23 1997 +0200
@@ -75,6 +75,39 @@
 
 ! !
 
+!MenuEditor class methodsFor:'code generation'!
+
+generateCodeFor:aClass menuSelector:aSelector
+
+    |code category|
+
+    category := self sourceCategory.
+
+    code := Character excla asString 
+            , aClass name , ' methodsFor:' , category storeString
+            , Character excla asString , '\\'
+
+            , aSelector , '\'
+            , '    "this window spec was automatically generated by the UI Builder"\\'
+            , '    ^ self class ', aSelector, '\\'
+            , '\'
+            , Character excla asString
+            , ' '
+            , Character excla asString
+            , '\\'.
+    ^ code
+
+"
+self generateCodeFor:MenuEditor menuSelector:#menu
+"
+!
+
+sourceCategory
+    "returns the catagory where to instal the menu
+    "
+    ^ 'accessing menu'
+! !
+
 !MenuEditor class methodsFor:'icons'!
 
 iconCreateItem
@@ -1852,20 +1885,7 @@
     (ReadStream on:code) fileIn.
 
     (cls compiledMethodAt:selector) isNil ifTrue:[
-        category := 'accessing menu'.
-        code := Character excla asString 
-                , cls name , ' methodsFor:' , category storeString
-                , Character excla asString , '\\'
-
-                , selector , '\'
-                , '    "this window spec was automatically generated by the ST/X MenuEditor"\\'
-                , '    ^ self class ', selector, '\\'
-                , '\'
-                , Character excla asString
-                , ' '
-                , Character excla asString
-                , '\\'.
-
+        code := self class generateCodeFor:cls menuSelector:selector.
         code := code withCRs.
         (ReadStream on:code) fileIn.
     ].