pool code generation
authorClaus Gittinger <cg@exept.de>
Wed, 25 Oct 2006 09:34:43 +0200
changeset 7471 79723acd5f30
parent 7470 12c6eb575d88
child 7472 f4f94229ecc9
pool code generation
NewSystemBrowser.st
Tools__NewSystemBrowser.st
--- a/NewSystemBrowser.st	Wed Oct 25 09:33:28 2006 +0200
+++ b/NewSystemBrowser.st	Wed Oct 25 09:34:43 2006 +0200
@@ -5053,6 +5053,14 @@
             isVisible: hasNonProjectDefinitionSelectedHolder
           )
          (MenuItem
+            enabled: hasSharedPoolClassSelectedHolder
+            label: 'SharedPool Initialization Code'
+            itemValue: classMenuGeneratePoolInitializationCode
+            nameKey: satio
+            translateLabel: true
+            isVisible: hasNonProjectDefinitionSelectedHolder
+          )
+         (MenuItem
             enabled: hasLoadedClassSelectedHolder
             label: 'Required Protocol'
             itemValue: classMenuGenerateRequiredProtocol
@@ -5063,8 +5071,6 @@
         nil
         nil
       )
-
-    "Modified: / 10-10-2006 / 20:52:01 / cg"
 !
 
 classGenerateMenuAccessMethodsSlice
@@ -12981,6 +12987,16 @@
     ^ true.
 !
 
+hasSharedPoolClassSelected
+    ^ self hasClassSelected
+      and:[self selectedClasses value 
+                contains:[:cls | 
+                        cls theNonMetaclass isAbstract not
+                        and:[ cls inheritsFrom:SharedPool ]] ]
+
+    "Created: / 25-10-2006 / 09:23:07 / cg"
+!
+
 hasSingleCategorySelected
     ^ self selectedCategoriesValue size == 1
 
@@ -18278,6 +18294,21 @@
         ].
 !
 
+classMenuGeneratePoolInitializationCode
+    "create a Pool initialization template method"
+
+    self 
+        generateUndoableChangeOverSelectedClasses:'Generate Pool Initialization in %(singleClassNameOrNumberOfClasses)' 
+        via:[:generator :eachClass |
+            |cls|
+
+            cls := eachClass theNonMetaclass.
+            generator createPoolInitializationCodeFor:cls 
+        ]
+
+    "Created: / 25-10-2006 / 09:24:48 / cg"
+!
+
 classMenuGenerateProjectDefinitions
     self generateProjectDefinitionsIn:(self selectedClasses value ? #())
 !
@@ -39699,7 +39730,7 @@
 !NewSystemBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Attic/NewSystemBrowser.st,v 1.1095 2006-10-23 21:14:34 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Attic/NewSystemBrowser.st,v 1.1096 2006-10-25 07:34:43 cg Exp $'
 ! !
 
 NewSystemBrowser initialize!
--- a/Tools__NewSystemBrowser.st	Wed Oct 25 09:33:28 2006 +0200
+++ b/Tools__NewSystemBrowser.st	Wed Oct 25 09:34:43 2006 +0200
@@ -5053,6 +5053,14 @@
             isVisible: hasNonProjectDefinitionSelectedHolder
           )
          (MenuItem
+            enabled: hasSharedPoolClassSelectedHolder
+            label: 'SharedPool Initialization Code'
+            itemValue: classMenuGeneratePoolInitializationCode
+            nameKey: satio
+            translateLabel: true
+            isVisible: hasNonProjectDefinitionSelectedHolder
+          )
+         (MenuItem
             enabled: hasLoadedClassSelectedHolder
             label: 'Required Protocol'
             itemValue: classMenuGenerateRequiredProtocol
@@ -5063,8 +5071,6 @@
         nil
         nil
       )
-
-    "Modified: / 10-10-2006 / 20:52:01 / cg"
 !
 
 classGenerateMenuAccessMethodsSlice
@@ -12981,6 +12987,16 @@
     ^ true.
 !
 
+hasSharedPoolClassSelected
+    ^ self hasClassSelected
+      and:[self selectedClasses value 
+                contains:[:cls | 
+                        cls theNonMetaclass isAbstract not
+                        and:[ cls inheritsFrom:SharedPool ]] ]
+
+    "Created: / 25-10-2006 / 09:23:07 / cg"
+!
+
 hasSingleCategorySelected
     ^ self selectedCategoriesValue size == 1
 
@@ -18278,6 +18294,21 @@
         ].
 !
 
+classMenuGeneratePoolInitializationCode
+    "create a Pool initialization template method"
+
+    self 
+        generateUndoableChangeOverSelectedClasses:'Generate Pool Initialization in %(singleClassNameOrNumberOfClasses)' 
+        via:[:generator :eachClass |
+            |cls|
+
+            cls := eachClass theNonMetaclass.
+            generator createPoolInitializationCodeFor:cls 
+        ]
+
+    "Created: / 25-10-2006 / 09:24:48 / cg"
+!
+
 classMenuGenerateProjectDefinitions
     self generateProjectDefinitionsIn:(self selectedClasses value ? #())
 !
@@ -39699,7 +39730,7 @@
 !NewSystemBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1095 2006-10-23 21:14:34 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1096 2006-10-25 07:34:43 cg Exp $'
 ! !
 
 NewSystemBrowser initialize!