ProjectBrowser.st
changeset 1291 2beb244c45df
parent 1290 57d613905108
child 1292 f5fcf9ef07ab
equal deleted inserted replaced
1290:57d613905108 1291:2beb244c45df
   402     <resource: #programImage>
   402     <resource: #programImage>
   403 
   403 
   404     ^ self classesIcon
   404     ^ self classesIcon
   405 !
   405 !
   406 
   406 
   407 prerequisiteProjectsIcon
   407 prerequisitePackagesIcon
   408     <resource: #programImage>
   408     <resource: #programImage>
   409 
   409 
   410     ^ self projectsIcon
   410     ^ self projectsIcon
   411 !
   411 !
   412 
   412 
  1589          
  1589          
  1590         )
  1590         )
  1591       )
  1591       )
  1592 !
  1592 !
  1593 
  1593 
  1594 rightCanvasSpecForPrerequisiteProjects
  1594 rightCanvasSpecForPrerequisitePackages
  1595     "This resource specification was automatically generated
  1595     "This resource specification was automatically generated
  1596      by the UIPainter of ST/X."
  1596      by the UIPainter of ST/X."
  1597 
  1597 
  1598     "Do not manually edit this!! If it is corrupted,
  1598     "Do not manually edit this!! If it is corrupted,
  1599      the UIPainter may not be able to read the specification."
  1599      the UIPainter may not be able to read the specification."
  1600 
  1600 
  1601     "
  1601     "
  1602      UIPainter new openOnClass:ProjectBrowser andSelector:#rightCanvasSpecForPrerequisiteProjects
  1602      UIPainter new openOnClass:ProjectBrowser andSelector:#rightCanvasSpecForPrerequisitePackages
  1603      ProjectBrowser new openInterface:#rightCanvasSpecForPrerequisiteProjects
  1603      ProjectBrowser new openInterface:#rightCanvasSpecForPrerequisitePackages
  1604     "
  1604     "
  1605 
  1605 
  1606     <resource: #canvas>
  1606     <resource: #canvas>
  1607 
  1607 
  1608     ^ 
  1608     ^ 
  1609      #(#FullSpec
  1609      #(#FullSpec
  1610         #name: #rightCanvasSpecForPrerequisiteProjects
  1610         #name: #rightCanvasSpecForPrerequisitePackages
  1611         #window: 
  1611         #window: 
  1612        #(#WindowSpec
  1612        #(#WindowSpec
  1613           #label: 'NewApplication'
  1613           #label: 'NewApplication'
  1614           #name: 'NewApplication'
  1614           #name: 'NewApplication'
  1615           #layout: #(#LayoutFrame 220 0 200 0 519 0 499 0)
  1615           #layout: #(#LayoutFrame 220 0 200 0 519 0 499 0)
  1755        #(#WindowSpec
  1755        #(#WindowSpec
  1756           #label: 'NewApplication'
  1756           #label: 'NewApplication'
  1757           #name: 'NewApplication'
  1757           #name: 'NewApplication'
  1758           #min: #(#Point 10 10)
  1758           #min: #(#Point 10 10)
  1759           #max: #(#Point 1280 1024)
  1759           #max: #(#Point 1280 1024)
  1760           #bounds: #(#Rectangle 12 22 373 385)
  1760           #bounds: #(#Rectangle 12 22 373 346)
  1761         )
  1761         )
  1762         #component: 
  1762         #component: 
  1763        #(#SpecCollection
  1763        #(#SpecCollection
  1764           #collection: #(
  1764           #collection: #(
  1765            #(#FramedBoxSpec
  1765            #(#FramedBoxSpec
  1796               )
  1796               )
  1797             )
  1797             )
  1798            #(#FramedBoxSpec
  1798            #(#FramedBoxSpec
  1799               #label: 'Project Working Directory'
  1799               #label: 'Project Working Directory'
  1800               #name: 'FramedBox2'
  1800               #name: 'FramedBox2'
  1801               #layout: #(#LayoutFrame 0 0.0 62 0.0 0 1.0 122 0)
  1801               #layout: #(#LayoutFrame 0 0.0 67 0.0 0 1.0 127 0)
  1802               #labelPosition: #topLeft
  1802               #labelPosition: #topLeft
  1803               #translateLabel: true
  1803               #translateLabel: true
  1804               #component: 
  1804               #component: 
  1805              #(#SpecCollection
  1805              #(#SpecCollection
  1806                 #collection: #(
  1806                 #collection: #(
  1817                  )
  1817                  )
  1818                
  1818                
  1819               )
  1819               )
  1820             )
  1820             )
  1821            #(#FramedBoxSpec
  1821            #(#FramedBoxSpec
  1822               #label: 'Projects Package ID'
       
  1823               #name: 'FramedBox5'
       
  1824               #layout: #(#LayoutFrame 0 0.0 127 0.0 0 1.0 187 0)
       
  1825               #labelPosition: #topLeft
       
  1826               #translateLabel: true
       
  1827               #component: 
       
  1828              #(#SpecCollection
       
  1829                 #collection: #(
       
  1830                  #(#InputFieldSpec
       
  1831                     #name: 'EntryField5'
       
  1832                     #layout: #(#LayoutFrame 0 0.0 1 0 0 1.0 23 0)
       
  1833                     #activeHelpKey: #packageID
       
  1834                     #model: #projectPackage
       
  1835                     #acceptChannel: #acceptChannel
       
  1836                     #modifiedChannel: #modifiedChannel
       
  1837                     #acceptOnPointerLeave: false
       
  1838                   )
       
  1839                  )
       
  1840                
       
  1841               )
       
  1842             )
       
  1843            #(#FramedBoxSpec
       
  1844               #label: 'Repository'
  1822               #label: 'Repository'
  1845               #name: 'FramedBox3'
  1823               #name: 'FramedBox3'
  1846               #layout: #(#LayoutFrame 0 0.0 191 0.0 0 1.0 274 0)
  1824               #layout: #(#LayoutFrame 0 0.0 137 0.0 0 1.0 220 0)
  1847               #labelPosition: #topLeft
  1825               #labelPosition: #topLeft
  1848               #translateLabel: true
  1826               #translateLabel: true
  1849               #component: 
  1827               #component: 
  1850              #(#SpecCollection
  1828              #(#SpecCollection
  1851                 #collection: #(
  1829                 #collection: #(
  1888               )
  1866               )
  1889             )
  1867             )
  1890            #(#FramedBoxSpec
  1868            #(#FramedBoxSpec
  1891               #label: 'Default Namespace'
  1869               #label: 'Default Namespace'
  1892               #name: 'FramedBox4'
  1870               #name: 'FramedBox4'
  1893               #layout: #(#LayoutFrame 0 0.0 279 0 0 1.0 337 0)
  1871               #layout: #(#LayoutFrame 0 0.0 226 0 0 1.0 284 0)
  1894               #activeHelpKey: #defaultNamespace
  1872               #activeHelpKey: #defaultNamespace
  1895               #labelPosition: #topLeft
  1873               #labelPosition: #topLeft
  1896               #translateLabel: true
  1874               #translateLabel: true
  1897               #component: 
  1875               #component: 
  1898              #(#SpecCollection
  1876              #(#SpecCollection
  2614         nil
  2592         nil
  2615         nil
  2593         nil
  2616       )
  2594       )
  2617 !
  2595 !
  2618 
  2596 
       
  2597 prerequisitePackagesItemMenu
       
  2598     "This resource specification was automatically generated
       
  2599      by the MenuEditor of ST/X."
       
  2600 
       
  2601     "Do not manually edit this!! If it is corrupted,
       
  2602      the MenuEditor may not be able to read the specification."
       
  2603 
       
  2604     "
       
  2605      MenuEditor new openOnClass:ProjectBrowser andSelector:#prerequisiteClassesItemMenu
       
  2606      (Menu new fromLiteralArrayEncoding:(ProjectBrowser prerequisiteClassesItemMenu)) startUp
       
  2607     "
       
  2608 
       
  2609     <resource: #menu>
       
  2610 
       
  2611     ^ 
       
  2612      #(#Menu
       
  2613         #(
       
  2614          #(#MenuItem
       
  2615             #label: 'Add package...'
       
  2616             #translateLabel: true
       
  2617             #value: #addPrerequisitePackage
       
  2618           )
       
  2619          )
       
  2620         nil
       
  2621         nil
       
  2622       )
       
  2623 !
       
  2624 
  2619 projectItemMenu
  2625 projectItemMenu
  2620     "This resource specification was automatically generated
  2626     "This resource specification was automatically generated
  2621      by the MenuEditor of ST/X."
  2627      by the MenuEditor of ST/X."
  2622 
  2628 
  2623     "Do not manually edit this!! If it is corrupted,
  2629     "Do not manually edit this!! If it is corrupted,
  2633     ^
  2639     ^
  2634      
  2640      
  2635        #(#Menu
  2641        #(#Menu
  2636           
  2642           
  2637            #(
  2643            #(
       
  2644              #(#MenuItem
       
  2645                 #label: 'Load Project'
       
  2646                 #translateLabel: true
       
  2647                 #value: #loadProject
       
  2648                 #enabled: #canLoadCurrentProjectHolder
       
  2649             )
       
  2650              #(#MenuItem
       
  2651                 #label: 'Unload Project'
       
  2652                 #translateLabel: true
       
  2653                 #value: #unloadProject
       
  2654                 #enabled: #canUnloadCurrentProjectHolder
       
  2655             )
       
  2656              #(#MenuItem
       
  2657                 #label: '-'
       
  2658             )
  2638              #(#MenuItem
  2659              #(#MenuItem
  2639                 #label: 'Make Current'
  2660                 #label: 'Make Current'
  2640                 #translateLabel: true
  2661                 #translateLabel: true
  2641                 #value: #makeCurrentProject
  2662                 #value: #makeCurrentProject
  2642                 #enabled: #hasProjectSelectedHolder
  2663                 #enabled: #hasProjectSelectedHolder
  2940         builder aspectAt:#canDeliverForWin32 put:holder.
  2961         builder aspectAt:#canDeliverForWin32 put:holder.
  2941     ].
  2962     ].
  2942     ^ holder.
  2963     ^ holder.
  2943 !
  2964 !
  2944 
  2965 
       
  2966 canLoadCurrentProjectHolder
       
  2967     |holder|
       
  2968 
       
  2969     (holder := builder bindingAt:#canLoadCurrentProjectHolder) isNil ifTrue:[
       
  2970         holder := false asValue.
       
  2971         builder aspectAt:#canLoadCurrentProjectHolder put:holder.
       
  2972     ].
       
  2973     ^ holder.
       
  2974 
       
  2975     "Modified: / 26.4.1999 / 22:47:33 / cg"
       
  2976 !
       
  2977 
  2945 canRemoveSelectedClassFromPrerequisites
  2978 canRemoveSelectedClassFromPrerequisites
  2946     |holder|
  2979     |holder|
  2947 
  2980 
  2948     (holder := builder bindingAt:#canRemoveSelectedClassFromPrerequisites) isNil ifTrue:[
  2981     (holder := builder bindingAt:#canRemoveSelectedClassFromPrerequisites) isNil ifTrue:[
  2949         holder := BlockValue with:[:m | m notNil] argument:(self selectedRequiredClassInPrerequisites).
  2982         holder := BlockValue with:[:m | m notNil] argument:(self selectedRequiredClassInPrerequisites).
  2962         builder aspectAt:#canRemoveSelectedProjectFromPrerequisites put:holder.
  2995         builder aspectAt:#canRemoveSelectedProjectFromPrerequisites put:holder.
  2963     ].
  2996     ].
  2964     ^ holder.
  2997     ^ holder.
  2965 
  2998 
  2966     "Created: / 23.3.1999 / 14:18:05 / cg"
  2999     "Created: / 23.3.1999 / 14:18:05 / cg"
       
  3000 !
       
  3001 
       
  3002 canUnloadCurrentProjectHolder
       
  3003     |holder|
       
  3004 
       
  3005     (holder := builder bindingAt:#canUnloadCurrentProjectHolder) isNil ifTrue:[
       
  3006         holder := false asValue.
       
  3007         builder aspectAt:#canUnloadCurrentProjectHolder put:holder.
       
  3008     ].
       
  3009     ^ holder.
       
  3010 
       
  3011     "Modified: / 26.4.1999 / 22:47:33 / cg"
  2967 !
  3012 !
  2968 
  3013 
  2969 classList
  3014 classList
  2970     "automatically generated by UIPainter ..."
  3015     "automatically generated by UIPainter ..."
  2971 
  3016 
  3769         ^ self class methodsItemMenu
  3814         ^ self class methodsItemMenu
  3770     ].      
  3815     ].      
  3771     self hasPrerequisiteClassesNodeSelected ifTrue:[
  3816     self hasPrerequisiteClassesNodeSelected ifTrue:[
  3772         ^ self class prerequisiteClassesItemMenu
  3817         ^ self class prerequisiteClassesItemMenu
  3773     ].      
  3818     ].      
       
  3819     self hasPrerequisitePackagesNodeSelected ifTrue:[
       
  3820         ^ self class prerequisitePackagesItemMenu
       
  3821     ].      
  3774     ^ nil
  3822     ^ nil
  3775 !
  3823 !
  3776 
  3824 
  3777 itemMenuHolder
  3825 itemMenuHolder
  3778     ^ [ self itemMenu]
  3826     ^ [ self itemMenu]
  3862 
  3910 
  3863     (manager checkForExistingModule:moduleDir package:packageDir) ifFalse:[^ false].
  3911     (manager checkForExistingModule:moduleDir package:packageDir) ifFalse:[^ false].
  3864 
  3912 
  3865     AlreadCheckedExistingModulesAndPackages add:(Array with:moduleDir with:packageDir).
  3913     AlreadCheckedExistingModulesAndPackages add:(Array with:moduleDir with:packageDir).
  3866     ^ true
  3914     ^ true
       
  3915 !
       
  3916 
       
  3917 canLoadCurrentProject
       
  3918     |prj|
       
  3919 
       
  3920     self hasProjectSelected ifFalse:[^ false].
       
  3921     (prj := self currentProject) isNil ifTrue:[^ self].
       
  3922     ^ prj isLoaded not
       
  3923 
       
  3924 !
       
  3925 
       
  3926 canUnloadCurrentProject
       
  3927     |prj|
       
  3928 
       
  3929     self hasProjectSelected ifFalse:[^ false].
       
  3930     (prj := self currentProject) isNil ifTrue:[^ self].
       
  3931     ^ prj isLoaded
       
  3932 
  3867 !
  3933 !
  3868 
  3934 
  3869 checkInClasses:aCollectionOfClasses
  3935 checkInClasses:aCollectionOfClasses
  3870     |logMessage|
  3936     |logMessage|
  3871 
  3937 
  3977 
  4043 
  3978 hasPrerequisiteClassesNodeSelected
  4044 hasPrerequisiteClassesNodeSelected
  3979     ^ self hasNodeSelected:#prerequisiteClasses.
  4045     ^ self hasNodeSelected:#prerequisiteClasses.
  3980 !
  4046 !
  3981 
  4047 
       
  4048 hasPrerequisitePackagesNodeSelected
       
  4049     ^ self hasNodeSelected:#prerequisitePackages.
       
  4050 !
       
  4051 
  3982 hasProjectNodeSelected
  4052 hasProjectNodeSelected
  3983     |selectedNode|
  4053     |selectedNode|
  3984 
  4054 
  3985     selectedNode := self selectedTreeNode.
  4055     selectedNode := self selectedTreeNode.
  3986     selectedNode isNil ifTrue:[^ false].
  4056     selectedNode isNil ifTrue:[^ false].
  4028     |projectName pNode 
  4098     |projectName pNode 
  4029      propertiesNode docNode classesNode patchesNode subprojectsNode filesNode
  4099      propertiesNode docNode classesNode patchesNode subprojectsNode filesNode
  4030      commentNode prerequisitesNode analysisNode designNode codeNode
  4100      commentNode prerequisitesNode analysisNode designNode codeNode
  4031      userDocNode userOverViewNode userGuideNode userRefManNode
  4101      userDocNode userOverViewNode userGuideNode userRefManNode
  4032      deploymentNode classIcon methodIcon buildOptionsNode
  4102      deploymentNode classIcon methodIcon buildOptionsNode
  4033      prerequisiteProjectsNode prerequisiteClassesNode|
  4103      prerequisitePackagesNode prerequisiteClassesNode|
  4034 
  4104 
  4035     projectName := aProject name.
  4105     projectName := aProject name.
  4036     pNode := ProjectNode name:projectName.
  4106     pNode := ProjectNode name:projectName.
  4037     pNode contents:aProject.
  4107     pNode contents:aProject.
  4038 
  4108 
  4073         docNode add:(userDocNode := ProjectTreeItem name:'Error Reports').
  4143         docNode add:(userDocNode := ProjectTreeItem name:'Error Reports').
  4074         docNode add:(userDocNode := ProjectTreeItem name:'Other').
  4144         docNode add:(userDocNode := ProjectTreeItem name:'Other').
  4075     ].
  4145     ].
  4076 
  4146 
  4077     prerequisitesNode icon:(self class prerequisitesIcon).
  4147     prerequisitesNode icon:(self class prerequisitesIcon).
  4078     prerequisitesNode add:(prerequisiteProjectsNode := ProjectTreeItem name:'Packages').
  4148     prerequisitesNode add:(prerequisitePackagesNode := ProjectTreeItem name:'Packages').
  4079     prerequisitesNode add:(prerequisiteClassesNode := ProjectTreeItem name:'Classes').
  4149     prerequisitesNode add:(prerequisiteClassesNode := ProjectTreeItem name:'Classes').
  4080     prerequisitesNode info:'Other projects and classes required by the project'.
  4150     prerequisitesNode info:'Other projects and classes required by the project'.
  4081 
  4151 
  4082     prerequisiteProjectsNode contents:#prerequisiteProjects.
  4152     prerequisitePackagesNode contents:#prerequisitePackages.
  4083     prerequisiteProjectsNode icon:(self class prerequisiteProjectsIcon).
  4153     prerequisitePackagesNode icon:(self class prerequisitePackagesIcon).
  4084     prerequisiteProjectsNode spec:[self class rightCanvasSpecForPrerequisiteProjects].
  4154     prerequisitePackagesNode spec:[self class rightCanvasSpecForPrerequisitePackages].
  4085     prerequisiteProjectsNode info:'Other projects required by the project'.
  4155     prerequisitePackagesNode info:'Other projects required by the project'.
  4086 
  4156 
  4087     prerequisiteClassesNode contents:#prerequisiteClasses.
  4157     prerequisiteClassesNode contents:#prerequisiteClasses.
  4088     prerequisiteClassesNode icon:(self class prerequisiteClassesIcon).
  4158     prerequisiteClassesNode icon:(self class prerequisiteClassesIcon).
  4089     prerequisiteClassesNode spec:[self class rightCanvasSpecForPrerequisiteClasses].
  4159     prerequisiteClassesNode spec:[self class rightCanvasSpecForPrerequisiteClasses].
  4090     prerequisiteClassesNode info:'Other (autoloaded-) classes required by the project'.
  4160     prerequisiteClassesNode info:'Other (autoloaded-) classes required by the project'.
  4162 
  4232 
  4163     ^ projectTree
  4233     ^ projectTree
  4164 !
  4234 !
  4165 
  4235 
  4166 readAspectsFromProject
  4236 readAspectsFromProject
  4167     |p type l ns|
  4237     |p type l ns mMod mDir mPkg pkg|
  4168 
  4238 
  4169     p := self currentProject.
  4239     p := self currentProject.
  4170     p notNil ifTrue:[
  4240     p notNil ifTrue:[
  4171         self selectedTreeNode contents == #comment ifTrue:[
  4241         self selectedTreeNode contents == #comment ifTrue:[
  4172             self rightCanvasTextHolder value:p comment.
  4242             self rightCanvasTextHolder value:p comment.
  4182         (type := p type) == #classLibrary ifTrue:[
  4252         (type := p type) == #classLibrary ifTrue:[
  4183            type := #library
  4253            type := #library
  4184         ].
  4254         ].
  4185         self projectType value:type.
  4255         self projectType value:type.
  4186         self projectDirectory value:(p directory).
  4256         self projectDirectory value:(p directory).
  4187         self projectPackage value:(p package).
       
  4188         ns := p defaultNameSpace ? Smalltalk.
  4257         ns := p defaultNameSpace ? Smalltalk.
  4189         ns isSymbol ifFalse:[
  4258         ns isSymbol ifFalse:[
  4190             ns := ns name
  4259             ns := ns name
  4191         ].
  4260         ].
  4192         self projectNamespace value:ns.
  4261         self projectNamespace value:ns.
  4193 
  4262 
  4194         self repositoryModule value:(p repositoryModule).
  4263         pkg := p package ? Project current package.
  4195         self repositoryDirectory value:(p repositoryDirectory).
  4264         mMod := p repositoryModule ? '?'.
       
  4265         mDir := p repositoryDirectory ? '?'.
       
  4266         mPkg := mMod , ':' , mDir.
       
  4267 
       
  4268         mPkg ~= pkg ifTrue:[
       
  4269             (pkg includes:$:) ifTrue:[
       
  4270                 mMod := pkg upTo:$:.
       
  4271                 mDir := pkg copyFrom:mMod size + 2.
       
  4272                 self warn:('package id: ''' , pkg , ''' different from moduleId: ''' , mPkg , 
       
  4273                            '\\Assume module:''' , mMod , ''' directory:''' , mDir , '''') withCRs.
       
  4274             ] ifFalse:[
       
  4275                 ((mMod ~= '?') and:[mDir ~= '?']) ifTrue:[
       
  4276                     self warn:('package id: ''' , pkg , ''' different from moduleId: ''' , mPkg , 
       
  4277                                '\\Assume package:''' , mMod , ':' , mDir , '''') withCRs.
       
  4278                     pkg := mMod , ':' , mDir
       
  4279                 ] ifFalse:[
       
  4280                     self warn:('package id: ''' , pkg , ''' different from moduleId: ''' , mPkg , 
       
  4281                                '\\Please care for the module and directory settings.') withCRs.
       
  4282                 ]
       
  4283             ]
       
  4284         ].
       
  4285         self projectPackage value:pkg.
       
  4286         self repositoryModule value:mMod.
       
  4287         self repositoryDirectory value:mDir.
  4196 
  4288 
  4197         self deliverCompiledBinary value:(p propertyAt:#deliverCompiledBinary) ? false.
  4289         self deliverCompiledBinary value:(p propertyAt:#deliverCompiledBinary) ? false.
  4198         self deliverByteCode value:(p propertyAt:#deliverByteCode) ? false.
  4290         self deliverByteCode value:(p propertyAt:#deliverByteCode) ? false.
  4199         self deliverGZipArchive value:(p propertyAt:#deliverGZipArchive) ? false.
  4291         self deliverGZipArchive value:(p propertyAt:#deliverGZipArchive) ? false.
  4200         self deliverZipArchive value:(p propertyAt:#deliverZipArchive) ? false.
  4292         self deliverZipArchive value:(p propertyAt:#deliverZipArchive) ? false.
  4325     self halt.
  4417     self halt.
  4326 
  4418 
  4327 !
  4419 !
  4328 
  4420 
  4329 saveAspectsIntoProject
  4421 saveAspectsIntoProject
  4330     |p s ns dir|
  4422     |p s ns dir pkg|
  4331 
  4423 
  4332     p := self currentProject.
  4424     p := self currentProject.
  4333     p notNil ifTrue:[
  4425     p notNil ifTrue:[
  4334         p removeDependent:self.
  4426         p removeDependent:self.
  4335 
  4427 
  4342         (dir exists and:[dir isDirectory]) ifFalse:[
  4434         (dir exists and:[dir isDirectory]) ifFalse:[
  4343             self warn:'Invalid project directory: ' , dir pathName
  4435             self warn:'Invalid project directory: ' , dir pathName
  4344         ].
  4436         ].
  4345 
  4437 
  4346         p directory:self projectDirectory value.
  4438         p directory:self projectDirectory value.
  4347         p packageName:(self projectPackage value) asSymbol.
  4439         pkg := self repositoryModule value , ':' , self repositoryDirectory value.
       
  4440         p packageName:pkg asSymbol.
  4348 
  4441 
  4349         p repositoryModule:self repositoryModule value.
  4442         p repositoryModule:self repositoryModule value.
  4350         p repositoryDirectory:self repositoryDirectory value.
  4443         p repositoryDirectory:self repositoryDirectory value.
  4351 
  4444 
  4352         s := self projectNamespace value.
  4445         s := self projectNamespace value.
  4409     ^ mthd
  4502     ^ mthd
  4410 !
  4503 !
  4411 
  4504 
  4412 transcript
  4505 transcript
  4413     ^ self builder componentAt:#commandOutputView
  4506     ^ self builder componentAt:#commandOutputView
       
  4507 !
       
  4508 
       
  4509 updateFlagValueHolders
       
  4510     self hasProjectSelectedHolder value:(self hasProjectSelected).
       
  4511     self canLoadCurrentProjectHolder value:(self canLoadCurrentProject).
       
  4512     self canUnloadCurrentProjectHolder value:(self canUnloadCurrentProject).
       
  4513 
  4414 !
  4514 !
  4415 
  4515 
  4416 updateProjectTree
  4516 updateProjectTree
  4417     |tree moduleRoots root showWhat|
  4517     |tree moduleRoots root showWhat|
  4418 
  4518 
  4707             info := 'Projects code is not loaded.'
  4807             info := 'Projects code is not loaded.'
  4708         ].
  4808         ].
  4709     ].
  4809     ].
  4710     self valueOfInfoLabel value:info.
  4810     self valueOfInfoLabel value:info.
  4711 
  4811 
  4712     self hasProjectSelectedHolder value:self hasProjectSelected.
  4812     self updateFlagValueHolders.
  4713     modifiedChannel value:false.
  4813     modifiedChannel value:false.
  4714 
  4814 
  4715     "Modified: / 26.4.1999 / 22:49:20 / cg"
  4815     "Modified: / 26.4.1999 / 22:49:20 / cg"
  4716 !
  4816 !
  4717 
  4817 
  4736         ].
  4836         ].
  4737         self expandPathToNodeFor:newProject.
  4837         self expandPathToNodeFor:newProject.
  4738 
  4838 
  4739     ].
  4839     ].
  4740     ^ newProject
  4840     ^ newProject
       
  4841 !
       
  4842 
       
  4843 loadProject
       
  4844     |project|
       
  4845 
       
  4846     project := self currentProject.
       
  4847 self halt.
       
  4848     Smalltalk loadPackage:(project name)
  4741 !
  4849 !
  4742 
  4850 
  4743 loadProjectCode
  4851 loadProjectCode
  4744     |project filesToLoad methodsFile ns anyPatchClassMissing anyPatches
  4852     |project filesToLoad methodsFile ns anyPatchClassMissing anyPatches
  4745      nMissingSuper prevNMissingSuper|
  4853      nMissingSuper prevNMissingSuper|
  5004     self currentCanvasHolder value:(self class rightCanvasSpecForReadOnlyText).
  5112     self currentCanvasHolder value:(self class rightCanvasSpecForReadOnlyText).
  5005     self rightCanvasTextHolder value:someText.
  5113     self rightCanvasTextHolder value:someText.
  5006 
  5114 
  5007 !
  5115 !
  5008 
  5116 
       
  5117 unloadProject
       
  5118     |project filesToLoad methodsFile ns anyPatchClassMissing anyPatches
       
  5119      nMissingSuper prevNMissingSuper|
       
  5120 
       
  5121     project := self currentProject.
       
  5122 self halt.
       
  5123 !
       
  5124 
  5009 updateClassListForProject:aProject
  5125 updateClassListForProject:aProject
  5010     |classInfo l|
  5126     |classInfo l|
  5011 
  5127 
  5012     classInfo := aProject classInfo copy asOrderedCollection.
  5128     classInfo := aProject classInfo copy asOrderedCollection.
  5013     classInfo sort:[:a :b | a className < b className].
  5129     classInfo sort:[:a :b | a className < b className].
  5429 
  5545 
  5430     self updateClassListForProject:project
  5546     self updateClassListForProject:project
  5431 
  5547 
  5432 !
  5548 !
  5433 
  5549 
       
  5550 addPrerequisitePackage
       
  5551     "ask for, and add a single class"
       
  5552 
       
  5553     |p packageName cls|
       
  5554 
       
  5555     p := self currentProject.
       
  5556 
       
  5557     packageName := Dialog request:'Package to add:'.
       
  5558     packageName size == 0 ifTrue:[^ self].
       
  5559 
       
  5560     p addPrerequisitePackage:packageName.
       
  5561     self updatePrerequisitePackageListForProject:p.
       
  5562 
       
  5563     self listOfRequiredProjectsInPrerequisites value add:packageName.
       
  5564     self listOfAllProjectsInPrerequisites value remove:packageName ifAbsent:nil.
       
  5565     self selectedProjectInPrerequisites value:nil.
       
  5566 
       
  5567     self listOfRequiredProjectsInPrerequisites changed.
       
  5568     self listOfAllProjectsInPrerequisites changed.
       
  5569     self accept
       
  5570 
       
  5571 !
       
  5572 
  5434 browseClasses
  5573 browseClasses
  5435     "browse the projects classes"
  5574     "browse the projects classes"
  5436 
  5575 
  5437     |ns p classes nBad uniqueClasses|
  5576     |ns p classes nBad uniqueClasses|
  5438 
  5577