Tools__ProjectBuilderAssistantApplication.st
changeset 2872 78e56e7f9638
parent 2865 2600408a8005
child 2874 cd62528801d5
equal deleted inserted replaced
2871:23c3bb9d51be 2872:78e56e7f9638
    28 		selectedApplicationsComment buildDirectoryHolder makeProcess
    28 		selectedApplicationsComment buildDirectoryHolder makeProcess
    29 		listOfClassesInProject makeOutputWindow projectBuilder
    29 		listOfClassesInProject makeOutputWindow projectBuilder
    30 		newStartupClassName usedCompilerHolder listOfNewProjectsName
    30 		newStartupClassName usedCompilerHolder listOfNewProjectsName
    31 		newProjectsNameListExtendedComboBox productNameHolder
    31 		newProjectsNameListExtendedComboBox productNameHolder
    32 		companyNameHolder compilerWarnMessageHolder
    32 		companyNameHolder compilerWarnMessageHolder
    33 		compilerWarnMessageVisibleHolder'
    33 		compilerWarnMessageVisibleHolder listOfPrerequisitesInProject'
    34 	classVariableNames:''
    34 	classVariableNames:''
    35 	poolDictionaries:''
    35 	poolDictionaries:''
    36 	category:'System-Support-Projects'
    36 	category:'System-Support-Projects'
    37 !
    37 !
    38 
    38 
   248             canEnterQuerySelector: #canEnterContentsSelection
   248             canEnterQuerySelector: #canEnterContentsSelection
   249             infoText: 'Define which (other) classes are to be included. Press "<I>Scan</I>" to include all classes of the package; browse to edit the contents manually.'
   249             infoText: 'Define which (other) classes are to be included. Press "<I>Scan</I>" to include all classes of the package; browse to edit the contents manually.'
   250         )
   250         )
   251 
   251 
   252         (AssistantPageSpec
   252         (AssistantPageSpec
       
   253             pageTitle: 'Specify Prerequisites'
       
   254             windowSpecSelector: page5b_specifyPrerequisitePackages
       
   255             enterCallbackSelector: enterPrerequisitesSpecification
       
   256             canEnterQuerySelector: #canEnterPrerequisitesSelection
       
   257             infoText: 'Define which (other) packages are needed as prerequisites. Press "<I>Scan</I>" to search for prerequisites; browse to edit the list manually.'
       
   258         )
       
   259 
       
   260         (AssistantPageSpec
   253             pageTitle: 'Specify Project Attributes'
   261             pageTitle: 'Specify Project Attributes'
   254             windowSpecSelector: page6a_specifyProjectAttributes
   262             windowSpecSelector: page6a_specifyProjectAttributes
   255             infoText: 'Define additional attributes.'
   263             infoText: 'Define additional attributes.'
   256             enterCallbackSelector: updateProjectAttributes
   264             enterCallbackSelector: updateProjectAttributes
   257             leaveCallbackSelector: #rememberProjectAttributes
   265             leaveCallbackSelector: #rememberProjectAttributes
   279             canEnterQuerySelector: #canEnterDeploy
   287             canEnterQuerySelector: #canEnterDeploy
   280             infoText: 'Find the installer to be deployed (or test-run the binary). You can open a WindowsExplorer there to copy the files for deployment. After that, the build directory is no longer needed (but you can keep it for a faster compile the next time).'
   288             infoText: 'Find the installer to be deployed (or test-run the binary). You can open a WindowsExplorer there to copy the files for deployment. After that, the build directory is no longer needed (but you can keep it for a faster compile the next time).'
   281         )
   289         )
   282     ) decodeAsLiteralArray.
   290     ) decodeAsLiteralArray.
   283 
   291 
   284     "Modified: / 12-11-2010 / 12:27:56 / cg"
   292     "Modified: / 19-01-2012 / 15:36:05 / cg"
   285 ! !
   293 ! !
   286 
   294 
   287 !ProjectBuilderAssistantApplication class methodsFor:'defaults'!
   295 !ProjectBuilderAssistantApplication class methodsFor:'defaults'!
   288 
   296 
   289 defaultIcon
   297 defaultIcon
   965          
   973          
   966         )
   974         )
   967       )
   975       )
   968 !
   976 !
   969 
   977 
       
   978 page5b_specifyPrerequisitePackages
       
   979     "This resource specification was automatically generated
       
   980      by the UIPainter of ST/X."
       
   981 
       
   982     "Do not manually edit this!! If it is corrupted,
       
   983      the UIPainter may not be able to read the specification."
       
   984 
       
   985     "
       
   986      UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page5b_specifyPrerequisitePackages
       
   987      Tools::ProjectBuilderAssistantApplication new openInterface:#page5b_specifyPrerequisitePackages
       
   988     "
       
   989 
       
   990     <resource: #canvas>
       
   991 
       
   992     ^ 
       
   993      #(FullSpec
       
   994         name: #'page5b_specifyPrerequisitePackages'
       
   995         window: 
       
   996        (WindowSpec
       
   997           label: 'Project Selection'
       
   998           name: 'Project Selection'
       
   999           min: (Point 0 0)
       
  1000           bounds: (Rectangle 0 0 521 400)
       
  1001         )
       
  1002         component: 
       
  1003        (SpecCollection
       
  1004           collection: (
       
  1005            (FramedBoxSpec
       
  1006               label: 'Prerequisite Packages'
       
  1007               name: 'FramedBox3'
       
  1008               layout: (LayoutFrame 0 0.0 5 0 4 1.0 -30 1)
       
  1009               labelPosition: topLeft
       
  1010               translateLabel: true
       
  1011               component: 
       
  1012              (SpecCollection
       
  1013                 collection: (
       
  1014                  (SequenceViewSpec
       
  1015                     name: 'List1'
       
  1016                     layout: (LayoutFrame 0 0 0 0 0 1 0 1)
       
  1017                     initiallyDisabled: true
       
  1018                     hasHorizontalScrollBar: true
       
  1019                     hasVerticalScrollBar: true
       
  1020                     useIndex: false
       
  1021                     sequenceList: listOfPrerequisitesInProject
       
  1022                   )               
       
  1023                  )
       
  1024                
       
  1025               )
       
  1026             )
       
  1027            (HorizontalPanelViewSpec
       
  1028               name: 'HorizontalPanel1'
       
  1029               layout: (LayoutFrame 0 0 -30 1 0 1 0 1)
       
  1030               horizontalLayout: center
       
  1031               verticalLayout: center
       
  1032               horizontalSpace: 3
       
  1033               verticalSpace: 3
       
  1034               component: 
       
  1035              (SpecCollection
       
  1036                 collection: (
       
  1037                  (ActionButtonSpec
       
  1038                     label: 'Browse Project Definition'
       
  1039                     name: 'Button3'
       
  1040                     translateLabel: true
       
  1041                     model: doBrowseProjectDefinitionClass
       
  1042                     extent: (Point 180 22)
       
  1043                   )
       
  1044                  (ActionButtonSpec
       
  1045                     label: 'Update Prerequisites (Scan)'
       
  1046                     name: 'Button4'
       
  1047                     translateLabel: true
       
  1048                     model: doGenerateProjectPrerequisitesDefinition
       
  1049                     extent: (Point 180 22)
       
  1050                   )
       
  1051                  )
       
  1052                
       
  1053               )
       
  1054             )
       
  1055            )
       
  1056          
       
  1057         )
       
  1058       )
       
  1059 
       
  1060     "Modified: / 19-01-2012 / 15:45:14 / cg"
       
  1061 !
       
  1062 
   970 page6a_specifyProjectAttributes
  1063 page6a_specifyProjectAttributes
   971     "This resource specification was automatically generated
  1064     "This resource specification was automatically generated
   972      by the UIPainter of ST/X."
  1065      by the UIPainter of ST/X."
   973 
  1066 
   974     "Do not manually edit this!! If it is corrupted,
  1067     "Do not manually edit this!! If it is corrupted,
  1538 
  1631 
  1539 doGenerateProjectContentsDefinition
  1632 doGenerateProjectContentsDefinition
  1540     self generatePackageContentsMethods
  1633     self generatePackageContentsMethods
  1541 !
  1634 !
  1542 
  1635 
       
  1636 doGenerateProjectPrerequisitesDefinition
       
  1637     self generatePackageContentsMethods
       
  1638 
       
  1639     "Created: / 19-01-2012 / 15:44:23 / cg"
       
  1640 !
       
  1641 
  1543 doLaunchApplication
  1642 doLaunchApplication
  1544     <resource: #uiCallback>
  1643     <resource: #uiCallback>
  1545 
  1644 
  1546     |appClass|
  1645     |appClass|
  1547 
  1646 
  1901         ^ #('bcc' 'vc' 'lcc' 'gcc' )
  2000         ^ #('bcc' 'vc' 'lcc' 'gcc' )
  1902     ].
  2001     ].
  1903     ^ #('gcc')
  2002     ^ #('gcc')
  1904 !
  2003 !
  1905 
  2004 
       
  2005 listOfPrerequisitesInProject
       
  2006     <resource: #uiAspect>
       
  2007 
       
  2008     listOfPrerequisitesInProject isNil ifTrue:[
       
  2009         listOfPrerequisitesInProject := ValueHolder new.
       
  2010     ].
       
  2011     ^ listOfPrerequisitesInProject.
       
  2012 
       
  2013     "Created: / 19-01-2012 / 15:39:34 / cg"
       
  2014 !
       
  2015 
  1906 listOfStartupClassesInProject
  2016 listOfStartupClassesInProject
  1907     <resource: #uiAspect>
  2017     <resource: #uiAspect>
  1908 
  2018 
  1909     listOfStartupClassesInProject isNil ifTrue:[
  2019     listOfStartupClassesInProject isNil ifTrue:[
  1910         listOfStartupClassesInProject := ValueHolder new.
  2020         listOfStartupClassesInProject := ValueHolder new.
  2301                                     with:prj class name). 
  2411                                     with:prj class name). 
  2302             ^ false
  2412             ^ false
  2303         ].
  2413         ].
  2304     ].
  2414     ].
  2305     (prj class compiledMethodAt:#startupClassName) package == prj package ifFalse:[
  2415     (prj class compiledMethodAt:#startupClassName) package == prj package ifFalse:[
  2306         self infoHolder value:('startup class method (#startupClassName) must be in package "%1" (is in "%2")' 
  2416         (prj class compiledMethodAt:#startupClassName) package == PackageId noProjectID ifFalse:[
  2307             bindWith:prj package
  2417             self infoHolder value:('startup class method (#startupClassName) of %3 must be in package "%1" (is in "%2")' 
  2308             with:(prj class compiledMethodAt:#startupClassName) package). 
  2418                 bindWith:prj package
  2309         ^ false
  2419                 with:(prj class compiledMethodAt:#startupClassName) package
       
  2420                 with:prj class name). 
       
  2421             ^ false
       
  2422         ].
  2310     ].
  2423     ].
  2311     (prj class compiledMethodAt:#startupSelector) notNil ifTrue:[
  2424     (prj class compiledMethodAt:#startupSelector) notNil ifTrue:[
  2312         (prj class compiledMethodAt:#startupSelector) package == prj package ifFalse:[
  2425         (prj class compiledMethodAt:#startupSelector) package == prj package ifFalse:[
  2313             self infoHolder value:('startup class method (#startupSelector) must be in package "%1" (is in "%2")' 
  2426             (prj class compiledMethodAt:#startupSelector) package == PackageId noProjectID ifFalse:[
  2314                 bindWith:prj package
  2427                 self infoHolder value:('startup class method (#startupSelector) of %3 must be in package "%1" (is in "%2")' 
  2315                 with:(prj class compiledMethodAt:#startupSelector) package). 
  2428                     bindWith:prj package
  2316             ^ false
  2429                     with:(prj class compiledMethodAt:#startupSelector) package 
       
  2430                     with:prj class name). 
       
  2431                 ^ false
       
  2432             ]
  2317         ].
  2433         ].
  2318     ].
  2434     ].
  2319     cls := Smalltalk classNamed:prj startupClassName.
  2435     cls := Smalltalk classNamed:prj startupClassName.
  2320     cls isNil ifTrue:[
  2436     cls isNil ifTrue:[
  2321         self infoHolder value:('startup class "%1" does not exist' bindWith:prj startupClassName).
  2437         self infoHolder value:('startup class "%1" does not exist' bindWith:prj startupClassName).
  2329             ^ false
  2445             ^ false
  2330         ].
  2446         ].
  2331     ].
  2447     ].
  2332     ^ true.
  2448     ^ true.
  2333 
  2449 
  2334     "Modified: / 04-12-2011 / 20:18:12 / cg"
  2450     "Modified: / 19-01-2012 / 15:30:54 / cg"
  2335 !
  2451 !
  2336 
  2452 
  2337 canEnterDeploy
  2453 canEnterDeploy
  2338     self hasProjectBuilder ifFalse:[
  2454     self hasProjectBuilder ifFalse:[
  2339         self infoHolder value:'no project builder specified'. 
  2455         self infoHolder value:'no project builder specified'. 
  2340         ^ false
  2456         ^ false
  2341     ].
  2457     ].
  2342     ^ true
  2458     ^ true
  2343 
  2459 
  2344     "Modified: / 23-08-2011 / 12:13:23 / cg"
  2460     "Modified: / 23-08-2011 / 12:13:23 / cg"
       
  2461 !
       
  2462 
       
  2463 canEnterPrerequisitesSelection
       
  2464     |prj cls impl|
       
  2465 
       
  2466     self hasProjectSelected ifFalse:[
       
  2467         self infoHolder value:'no project selected'. 
       
  2468         ^ false
       
  2469     ].
       
  2470     ^ true.
       
  2471 
       
  2472     "Created: / 19-01-2012 / 15:37:30 / cg"
  2345 !
  2473 !
  2346 
  2474 
  2347 canEnterStartupClassSelection
  2475 canEnterStartupClassSelection
  2348     self hasProjectSelected ifFalse:[
  2476     self hasProjectSelected ifFalse:[
  2349         self infoHolder value:'no project selected'. 
  2477         self infoHolder value:'no project selected'. 
  2451     ].
  2579     ].
  2452 
  2580 
  2453     selectedProjectDefinition includeClasses:toAdd usingCompiler:nil.
  2581     selectedProjectDefinition includeClasses:toAdd usingCompiler:nil.
  2454 
  2582 
  2455     self updateListOfClassesInProject.
  2583     self updateListOfClassesInProject.
       
  2584 !
       
  2585 
       
  2586 enterPrerequisitesSpecification
       
  2587     |toAdd|
       
  2588 
       
  2589     self updateListOfPrerequisitesInProject.
       
  2590 
       
  2591 "/    toAdd := OrderedCollection new.
       
  2592 "/
       
  2593 "/    "/ ensure that startup & app-class are in the list
       
  2594 "/    selectedApplication notNil ifTrue:[
       
  2595 "/        (selectedProjectDefinition classNames includes:selectedApplication name) ifFalse:[
       
  2596 "/            toAdd add:selectedApplication.
       
  2597 "/        ].
       
  2598 "/    ].
       
  2599 "/    selectedStartupClass notNil ifTrue:[
       
  2600 "/        (selectedProjectDefinition classNames includes:selectedStartupClass name) ifFalse:[
       
  2601 "/            toAdd add:selectedStartupClass.
       
  2602 "/        ].
       
  2603 "/    ].
       
  2604 "/
       
  2605 "/    selectedProjectDefinition includeClasses:toAdd usingCompiler:nil.
       
  2606 "/
       
  2607 "/    self updateListOfClassesInProject.
       
  2608 
       
  2609     "Created: / 19-01-2012 / 15:36:47 / cg"
  2456 !
  2610 !
  2457 
  2611 
  2458 rememberMakeOutputsContents
  2612 rememberMakeOutputsContents
  2459     makeOutputHolder value:(makeOutputWindow contents)
  2613     makeOutputHolder value:(makeOutputWindow contents)
  2460 !
  2614 !
  2623                                                                 and:[ (ProjectDefinition definitionClassForPackage: eachProjectID) isNil ].
  2777                                                                 and:[ (ProjectDefinition definitionClassForPackage: eachProjectID) isNil ].
  2624                                                             ].
  2778                                                             ].
  2625     self listOfNewProjectsName value:loadedProjectIDsWithoutProjectDefinition.
  2779     self listOfNewProjectsName value:loadedProjectIDsWithoutProjectDefinition.
  2626 !
  2780 !
  2627 
  2781 
       
  2782 updateListOfPrerequisitesInProject
       
  2783     self listOfPrerequisitesInProject value:(selectedProjectDefinition preRequisites).
       
  2784 
       
  2785     "Created: / 19-01-2012 / 15:39:15 / cg"
       
  2786 !
       
  2787 
  2628 updateListOfStartupClassesInProject
  2788 updateListOfStartupClassesInProject
  2629     |startupClasses package startUpClassName startUpClass startupClassIndex|
  2789     |startupClasses package startUpClassName startUpClass startupClassIndex|
  2630 
  2790 
  2631     startupClassIndex := nil.
  2791     startupClassIndex := nil.
  2632     self selectedStartupClassIndexHolder value:nil.
  2792     self selectedStartupClassIndexHolder value:nil.