Tools__ProjectBuilderAssistantApplication.st
changeset 2864 fcdea80a431e
parent 2863 eb998d836550
child 2865 2600408a8005
equal deleted inserted replaced
2863:eb998d836550 2864:fcdea80a431e
  2270 
  2270 
  2271     "Modified: / 23-08-2011 / 12:13:29 / cg"
  2271     "Modified: / 23-08-2011 / 12:13:29 / cg"
  2272 !
  2272 !
  2273 
  2273 
  2274 canEnterContentsSelection
  2274 canEnterContentsSelection
  2275     |prj cls|
  2275     |prj cls impl|
  2276 
  2276 
  2277     self hasProjectSelected ifFalse:[
  2277     self hasProjectSelected ifFalse:[
  2278         self infoHolder value:'no project selected'. 
  2278         self infoHolder value:'no project selected'. 
  2279         ^ false
  2279         ^ false
  2280     ].
  2280     ].
  2292         self infoHolder value:'must have a startup selector'. 
  2292         self infoHolder value:'must have a startup selector'. 
  2293         ^ false
  2293         ^ false
  2294     ].
  2294     ].
  2295     (prj class compiledMethodAt:#startupSelector) isNil ifTrue:[
  2295     (prj class compiledMethodAt:#startupSelector) isNil ifTrue:[
  2296         self infoHolder value:('inherited startup selector is "%1"' bindWith:prj startupSelector). 
  2296         self infoHolder value:('inherited startup selector is "%1"' bindWith:prj startupSelector). 
  2297 "/        ^ false
  2297         impl := prj class whichClassImplements:#startupSelector.
       
  2298         impl theNonMetaclass isAbstract ifTrue:[
       
  2299             self infoHolder value:('must redefine startup selector method (#startupSelector) in "%1"' bindWith:prj class name). 
       
  2300             ^ false
       
  2301         ].
  2298     ].
  2302     ].
  2299     (prj class compiledMethodAt:#startupClassName) package == prj package ifFalse:[
  2303     (prj class compiledMethodAt:#startupClassName) package == prj package ifFalse:[
  2300         self infoHolder value:('startup class method must be in package "%1" (is in "%2")' 
  2304         self infoHolder value:('startup class method (#startupClassName) must be in package "%1" (is in "%2")' 
  2301             bindWith:prj package
  2305             bindWith:prj package
  2302             with:(prj class compiledMethodAt:#startupClassName) package). 
  2306             with:(prj class compiledMethodAt:#startupClassName) package). 
  2303         ^ false
  2307         ^ false
  2304     ].
  2308     ].
  2305     (prj class compiledMethodAt:#startupSelector) notNil ifTrue:[
  2309     (prj class compiledMethodAt:#startupSelector) notNil ifTrue:[
  2306         (prj class compiledMethodAt:#startupSelector) package == prj package ifFalse:[
  2310         (prj class compiledMethodAt:#startupSelector) package == prj package ifFalse:[
  2307             self infoHolder value:('startup class method must be in package "%1" (is in "%2")' 
  2311             self infoHolder value:('startup class method (#startupSelector) must be in package "%1" (is in "%2")' 
  2308                 bindWith:prj package
  2312                 bindWith:prj package
  2309                 with:(prj class compiledMethodAt:#startupSelector) package). 
  2313                 with:(prj class compiledMethodAt:#startupSelector) package). 
  2310             ^ false
  2314             ^ false
  2311         ].
  2315         ].
  2312     ].
  2316     ].
  2313 "/    cls := Smalltalk classNamed:prj startupClassName.
  2317     cls := Smalltalk classNamed:prj startupClassName.
  2314 "/    (cls implements:(prj startupSelector)) ifFalse:[
  2318     cls isNil ifTrue:[
  2315 "/        self infoHolder value:('startup class "%1" does not implement startup selector "%2"' 
  2319         self infoHolder value:('startup class "%1" does not exist' bindWith:prj startupClassName).
  2316 "/                bindWith:cls name
  2320         ^ false.
  2317 "/                with:prj startupSelector). 
  2321     ].
  2318 "/        ^ false
  2322     (cls implements:(prj startupSelector)) ifFalse:[
  2319 "/    ].
  2323         self infoHolder value:('startup class "%1" does not implement startup selector "%2"' 
       
  2324                 bindWith:cls name
       
  2325                 with:prj startupSelector). 
       
  2326         ^ false
       
  2327     ].
  2320     ^ true.
  2328     ^ true.
  2321 
  2329 
  2322     "Modified: / 23-08-2011 / 12:50:07 / cg"
  2330     "Modified: / 04-12-2011 / 20:09:34 / cg"
  2323 !
  2331 !
  2324 
  2332 
  2325 canEnterDeploy
  2333 canEnterDeploy
  2326     self hasProjectBuilder ifFalse:[
  2334     self hasProjectBuilder ifFalse:[
  2327         self infoHolder value:'no project builder specified'. 
  2335         self infoHolder value:'no project builder specified'. 
  2655     self companyNameHolder value:(selectedProjectDefinition companyName).
  2663     self companyNameHolder value:(selectedProjectDefinition companyName).
  2656 ! !
  2664 ! !
  2657 
  2665 
  2658 !ProjectBuilderAssistantApplication class methodsFor:'documentation'!
  2666 !ProjectBuilderAssistantApplication class methodsFor:'documentation'!
  2659 
  2667 
       
  2668 version
       
  2669     ^ '$Header$'
       
  2670 !
       
  2671 
  2660 version_CVS
  2672 version_CVS
  2661     ^ '$Header$'
  2673     ^ '$Header$'
  2662 ! !
  2674 ! !