class: Tools::NewSystemBrowser
authorClaus Gittinger <cg@exept.de>
Wed, 21 Jan 2015 10:49:33 +0100
changeset 15095 92695ed838f5
parent 15094 7e80c05b797b
child 15096 8fefa892330b
class: Tools::NewSystemBrowser changed: #projectMenuFileOutAsWithFormat:
Tools__NewSystemBrowser.st
--- a/Tools__NewSystemBrowser.st	Tue Jan 20 15:20:04 2015 +0100
+++ b/Tools__NewSystemBrowser.st	Wed Jan 21 10:49:33 2015 +0100
@@ -41331,7 +41331,9 @@
 !
 
 projectMenuFileOutAsWithFormat:aFormatSymbolOrNil
-    |currentProject selectedProjects suffix saveName fileName "methodsToFileOut fileNameForExtensions" mgr s classesToFileout|
+    |currentProject selectedProjects suffix saveName fileName 
+     "methodsToFileOut fileNameForExtensions" mgr s classesToFileout
+     writer|
 
     selectedProjects := self selectedProjectsValue.
     currentProject := self theSingleSelectedProject.
@@ -41422,10 +41424,53 @@
         ^ self
     ].
 
+    aFormatSymbolOrNil == #vsePackage ifTrue:[
+        self busyLabel:'writing...'.
+        s := fileName asFilename writeStream.
+        ((aFormatSymbolOrNil == #vse) or:[aFormatSymbolOrNil == #vsePackage]) ifTrue:[
+            s lineEndCRLF
+        ].
+        classesToFileout := OrderedCollection withAll:(self selectedProjectClasses).
+        classesToFileout topologicalSort:[:a :b | b isSubclassOf:a].
+
+        writer := VSEPackageFileSourceWriter new.
+        writer packageName:currentProject.
+        writer writeHeaderOn:s.
+
+        AbstractSourceFileWriter methodSourceRewriteQuery handle:[:rewriteQuery |
+            |method source|
+
+            method := rewriteQuery method.
+            source := rewriteQuery source.
+            source := VSEChunkFileSourceWriter vseSourceRewriter rewriteMethod:method.
+            rewriteQuery proceedWith:source.
+        ] do:[
+            classesToFileout do:[:eachClass |
+                writer fileOut:eachClass on:s
+            ].
+
+            "/ fileout extensions
+            Smalltalk allClassesDo:[:eachClass |
+                eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
+                    |mPckg|
+
+                    mPckg := mthd package.
+                    (mPckg = currentProject and:[mPckg ~= eachClass package]) ifTrue:[
+                        writer fileOutMethod:mthd on:s.
+                        s cr.
+                    ]
+                ]
+            ].
+        ].
+        s close.
+        self normalLabel.
+        ^ self.
+    ].
+
     (aFormatSymbolOrNil isNil or:[aFormatSymbolOrNil == #vse]) ifTrue:[
         self busyLabel:'writing...'.
         s := fileName asFilename writeStream.
-        ((aFormatSymbolOrNil == #vse) or:[aFormatSymbolOrNil == #vsePackage]) ifTrue:[
+        (aFormatSymbolOrNil == #vse) ifTrue:[
             s lineEndCRLF
         ].
         classesToFileout := OrderedCollection withAll:(self selectedProjectClasses).
@@ -41436,8 +41481,8 @@
 
             method := rewriteQuery method.
             source := rewriteQuery source.
-            ((aFormatSymbolOrNil == #vse) or:[aFormatSymbolOrNil == #vsePackage]) ifTrue:[
-                source := VSESourceRewriter rewriteMethod:method.
+            (aFormatSymbolOrNil == #vse) ifTrue:[
+                source := VSEChunkFileSourceWriter vseSourceRewriter rewriteMethod:method.
                 rewriteQuery proceedWith:source.
             ].
             rewriteQuery proceedWith:source
@@ -57474,7 +57519,6 @@
     "Created: / 04-12-2011 / 22:22:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !NewSystemBrowser methodsFor:'private-semantic checks'!
 
 checkAcceptedMethod:aMethod inClass:aClass
@@ -61946,11 +61990,11 @@
 !NewSystemBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2155 2015-01-20 13:18:44 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2156 2015-01-21 09:49:33 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2155 2015-01-20 13:18:44 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2156 2015-01-21 09:49:33 cg Exp $'
 !
 
 version_HG
@@ -61959,7 +62003,7 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__NewSystemBrowser.st,v 1.2155 2015-01-20 13:18:44 cg Exp $'
+    ^ '$Id: Tools__NewSystemBrowser.st,v 1.2156 2015-01-21 09:49:33 cg Exp $'
 ! !