Added option to file out classes and packages in Bee source format. jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Tue, 14 Apr 2015 15:00:35 +0100
branchjv
changeset 15582 3fd5977bf5af
parent 15574 9f53df941beb
child 15583 2c1242f8a967
Added option to file out classes and packages in Bee source format. This makes exporting code to Bee a lot easier.
Tools__NewSystemBrowser.st
--- a/Tools__NewSystemBrowser.st	Mon Apr 13 06:41:26 2015 +0200
+++ b/Tools__NewSystemBrowser.st	Tue Apr 14 15:00:35 2015 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "
  COPYRIGHT (c) 2000 by eXept Software AG
               All Rights Reserved
@@ -7897,13 +7895,13 @@
 
     <resource: #menu>
 
-    ^
+    ^ 
      #(Menu
         (
          (MenuItem
             enabled: hasClassSelectedHolder
             label: 'FileOut'
-            submenu:
+            submenu: 
            (Menu
               (
                (MenuItem
@@ -7925,7 +7923,7 @@
                (MenuItem
                   enabled: hasClassSelectedHolder
                   label: 'Special Formats'
-                  submenu:
+                  submenu: 
                  (Menu
                     (
                      (MenuItem
@@ -7980,6 +7978,23 @@
                         label: '-'
                       )
                      (MenuItem
+                        enabled: hasClassSelectedAndCanFileOutBeeHolder
+                        label: 'Bee Fileout Format as...'
+                        itemValue: classMenuFileOutBeeAs
+                        isVisible: hasSingleClassSelectedHolder
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        enabled: hasClassSelectedAndCanFileOutBeeHolder
+                        label: 'Bee Fileout Format each in...'
+                        itemValue: classMenuFileOutEachBeeIn
+                        isVisible: hasMultipleClassesSelectedHolder
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        label: '-'
+                      )
+                     (MenuItem
                         enabled: hasClassSelectedAndCanFileOutBinaryHolder
                         label: 'Binary as...'
                         itemValue: classMenuFileOutBinaryAs
@@ -8050,7 +8065,7 @@
          (MenuItem
             enabled: hasClassSelectedHolder
             label: 'Spawn'
-            submenu:
+            submenu: 
            (Menu
               (
                (MenuItem
@@ -8204,7 +8219,7 @@
             enabled: hasClassSelectedHolder
             label: 'Find'
             isVisible: false
-            submenu:
+            submenu: 
            (Menu
               (
                (MenuItem
@@ -8248,7 +8263,7 @@
          (MenuItem
             label: 'New'
             isVisible: isNotEmbeddedBrowserHolder
-            submenu:
+            submenu: 
            (Menu
               (
                (MenuItem
@@ -8271,7 +8286,7 @@
             enabled: hasClassSelectedHolder
             label: 'Move'
             isVisible: isNotEmbeddedBrowserHolder
-            submenu:
+            submenu: 
            (Menu
               (
                (MenuItem
@@ -8357,7 +8372,7 @@
          (MenuItem
             enabled: hasClassSelectedHolder
             label: 'Compare'
-            submenu:
+            submenu: 
            (Menu
               (
                (MenuItem
@@ -10246,13 +10261,13 @@
 
     <resource: #menu>
 
-    ^
+    ^ 
      #(Menu
         (
          (MenuItem
             enabled: hasProjectSelectedHolder
             label: 'File out'
-            submenu:
+            submenu: 
            (Menu
               (
                (MenuItem
@@ -10273,7 +10288,7 @@
                (MenuItem
                   enabled: hasProjectSelectedHolder
                   label: 'Special Formats'
-                  submenu:
+                  submenu: 
                  (Menu
                     (
                      (MenuItem
@@ -10319,10 +10334,19 @@
                         showBusyCursorWhilePerforming: true
                       )
                      (MenuItem
-                        isVisible: false
                         enabled: hasProjectSelectedAndCanFileOutVSEHolder
                         label: 'VSE Fileout Format each in...'
                         itemValue: projectMenuFileOutEachVSEIn
+                        isVisible: false
+                        showBusyCursorWhilePerforming: true
+                      )
+                     (MenuItem
+                        label: '-'
+                      )
+                     (MenuItem
+                        enabled: hasProjectSelectedAndCanFileOutBeeHolder
+                        label: 'Bee Project Source as...'
+                        itemValue: projectMenuFileOutBeeProjectSourceAs
                         showBusyCursorWhilePerforming: true
                       )
                      (MenuItem
@@ -10381,7 +10405,7 @@
           )
          (MenuItem
             label: 'Documentation'
-            submenu:
+            submenu: 
            (Menu
               (
                (MenuItem
@@ -10415,7 +10439,7 @@
          (MenuItem
             enabled: hasProjectSelectedHolder
             label: 'Spawn'
-            submenu:
+            submenu: 
            (Menu
               (
                (MenuItem
@@ -10493,11 +10517,11 @@
             showBusyCursorWhilePerforming: true
           )
          (MenuItem
+            enabled: hasUnloadedProjectSelectedHolder
             label: 'Load'
             itemValue: projectMenuLoad
             isVisible: hasProjectSelectedHolder
             showBusyCursorWhilePerforming: true
-            enabled: hasUnloadedProjectSelectedHolder
           )
          (MenuItem
             enabled: hasProjectSelectedHolder
@@ -10514,7 +10538,7 @@
           )
          (MenuItem
             label: 'Build'
-            submenu:
+            submenu: 
            (Menu
               (
                (MenuItem
@@ -10556,7 +10580,7 @@
          (MenuItem
             enabled: hasProjectSelectedHolder
             label: 'Generate'
-            submenu:
+            submenu: 
            (Menu
               (
                (MenuItem
@@ -10596,7 +10620,7 @@
           )
          (MenuItem
             label: 'Special'
-            submenu:
+            submenu: 
            (Menu
               (
                (MenuItem
@@ -19673,6 +19697,7 @@
 ! !
 
 
+
 !NewSystemBrowser methodsFor:'aspects-organization'!
 
 categoryMenuVisible
@@ -21234,6 +21259,12 @@
     "Created: / 4.2.2000 / 22:02:53 / cg"
 !
 
+hasClassSelectedAndCanFileOutBeeHolder
+    ^ [ self hasClassSelected and:[self canFileOutBee]]
+
+    "Created: / 14-04-2015 / 12:48:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 hasClassSelectedAndCanFileOutBinaryHolder
     ^ [ self hasClassSelected and:[self canFileOutBinary]]
 
@@ -22422,7 +22453,9 @@
 !
 
 hasProjectSelectedAndCanFileOutVSEHolder
-    ^ [ self hasProjectSelected and:[self canFileOutVSE] ]
+    ^ [ self hasProjectSelected and:[self canFileOutBee] ]
+
+    "Modified: / 14-04-2015 / 14:05:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 hasProjectSelectedAndCanFileOutXMLHolder
@@ -23446,6 +23479,7 @@
     ^ UserPreferences current useSearchBarInBrowser or:[self codeView searchBarActionBlock notNil]
 ! !
 
+
 !NewSystemBrowser methodsFor:'binding access'!
 
 menuFor:key
@@ -29756,12 +29790,28 @@
     "Modified: / 28-02-2012 / 16:46:20 / cg"
 !
 
+classMenuFileOutBeeAs
+    "fileOut selected classes - visual smalltalk enterprise file format"
+
+    ^ self classMenuFileOutAsWithFormat:#bee
+
+    "Created: / 14-04-2015 / 12:49:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 classMenuFileOutBinaryAs
     "fileOut selected classes - binary file format"
 
     ^ self classMenuFileOutAsWithFormat:#binary
 !
 
+classMenuFileOutEachBeeIn
+    "fileOut selected classes as individual files - visual smalltalk enterprise format"
+
+    self classMenuFileOutEachInWithFormat:#bee
+
+    "Created: / 14-04-2015 / 12:51:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 classMenuFileOutEachBinaryIn
     "fileOut selected classes as individual files - binary format"
 
@@ -32503,13 +32553,17 @@
                         aClass fileOutXML.
                     ]
                 ] ifFalse:[
-                    formatSymbolOrNil == #binary ifTrue:[
-                        aClass binaryFileOutOn:(saveName asFilename writeStream binary) sourceMode:sourceMode
-                    ] ifFalse:[
-                        saveName notNil ifTrue:[
-                            aClass fileOutAs:saveName.
+                    formatSymbolOrNil == #bee ifTrue:[ 
+                        saveName asFilename writingFileDo:[:s| BeeSourceWriter fileOut: aClass on: s]
+                    ] ifFalse:[ 
+                        formatSymbolOrNil == #binary ifTrue:[
+                            aClass binaryFileOutOn:(saveName asFilename writeStream binary) sourceMode:sourceMode
                         ] ifFalse:[
-                            aClass fileOut.
+                            saveName notNil ifTrue:[
+                                aClass fileOutAs:saveName.
+                            ] ifFalse:[
+                                aClass fileOut.
+                            ]
                         ]
                     ]
                 ]
@@ -32519,6 +32573,7 @@
     self normalLabel.
 
     "Modified: / 27-07-2012 / 09:45:02 / cg"
+    "Modified: / 14-04-2015 / 12:55:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 fileOutClasses:aBunchOfClasses withFormat:aFormatSymbolOrNil
@@ -39656,6 +39711,7 @@
     "Modified: / 28-02-2012 / 16:27:44 / cg"
 ! !
 
+
 !NewSystemBrowser methodsFor:'menu actions-namespace'!
 
 nameSpaceMenuCheckOut
@@ -41693,7 +41749,11 @@
                 aFormatSymbolOrNil == #vsePackage ifTrue:[
                     suffix := '.pkg'
                 ] ifFalse:[
-                    suffix := '.st'
+                    aFormatSymbolOrNil == #beestp ifTrue:[
+                        suffix := '.stp'
+                    ] ifFalse:[ 
+                        suffix := '.st'
+                    ]
                 ]
             ]
         ]
@@ -41830,11 +41890,40 @@
         ^ self
     ].
 
+    aFormatSymbolOrNil == #beestp ifTrue:[
+        | writer |
+
+        writer := [ :project |
+            tmpFilename := fileName asFilename withSuffix:'part'.
+            s := tmpFilename writeStream.
+            s lineEndCRLF.
+            [
+                BeeProjectSourceWriter fileOut:currentProject on:s.
+            ] ifCurtailed:[
+                s close.
+                tmpFilename remove
+            ].
+            s close.
+            tmpFilename renameTo:(fileName asFilename).                        
+        ].
+        self showMessage: (resources string:'Writing as Bee Project...')
+                   while: [ selectedProjects do:[:each | writer value: each ] ]
+            inBackground: true.
+        LastCypressDirectory := saveName.
+        ^ self
+    ].
+
 
     self shouldImplement:'support for:',aFormatSymbolOrNil asString.
 
     "Modified: / 27-10-2010 / 11:34:45 / cg"
-    "Modified: / 12-01-2014 / 23:25:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-04-2015 / 14:12:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuFileOutBeeProjectSourceAs
+    self projectMenuFileOutAsWithFormat:#beestp
+
+    "Created: / 14-04-2015 / 14:04:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 projectMenuFileOutBuildSupportFiles
@@ -45047,6 +45136,7 @@
     self findResponseTo:selector in:nil
 ! !
 
+
 !NewSystemBrowser methodsFor:'menu actions-selector'!
 
 askForClassToMoveOrCopy:doWhat
@@ -48962,6 +49052,7 @@
     "Modified: / 28-02-2012 / 16:48:38 / cg"
 ! !
 
+
 !NewSystemBrowser methodsFor:'menu actions-variables'!
 
 browseVarRefsOrModsWithTitle:browserTitle boxTitle:boxTitle variables:varType access:accessType all:browseAll
@@ -50424,6 +50515,7 @@
     "Modified: / 24-02-2014 / 22:44:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+
 !NewSystemBrowser methodsFor:'menus-dynamic'!
 
 boockmarksMenu
@@ -53519,6 +53611,12 @@
     "Modified: / 27-07-2012 / 22:19:07 / cg"
 !
 
+canFileOutBee
+    ^ self hasOnlySmalltalkClassesSelected
+
+    "Created: / 14-04-2015 / 12:48:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 canFileOutBinary
     ^ self hasOnlySmalltalkClassesSelected
 !
@@ -55903,6 +56001,7 @@
             cancel: [nil]
 ! !
 
+
 !NewSystemBrowser methodsFor:'private-helpers'!
 
 anySelectedClass
@@ -57134,6 +57233,7 @@
     ^ navigationState projectListApplication
 ! !
 
+
 !NewSystemBrowser methodsFor:'private-history'!
 
 lastSearchPatterns