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'. |