--- a/Tools__ProjectBuilderAssistantApplication.st Sun Dec 04 19:56:26 2011 +0100
+++ b/Tools__ProjectBuilderAssistantApplication.st Sun Dec 04 20:10:00 2011 +0100
@@ -2272,7 +2272,7 @@
!
canEnterContentsSelection
- |prj cls|
+ |prj cls impl|
self hasProjectSelected ifFalse:[
self infoHolder value:'no project selected'.
@@ -2294,32 +2294,40 @@
].
(prj class compiledMethodAt:#startupSelector) isNil ifTrue:[
self infoHolder value:('inherited startup selector is "%1"' bindWith:prj startupSelector).
-"/ ^ false
+ impl := prj class whichClassImplements:#startupSelector.
+ impl theNonMetaclass isAbstract ifTrue:[
+ self infoHolder value:('must redefine startup selector method (#startupSelector) in "%1"' bindWith:prj class name).
+ ^ false
+ ].
].
(prj class compiledMethodAt:#startupClassName) package == prj package ifFalse:[
- self infoHolder value:('startup class method must be in package "%1" (is in "%2")'
+ self infoHolder value:('startup class method (#startupClassName) must be in package "%1" (is in "%2")'
bindWith:prj package
with:(prj class compiledMethodAt:#startupClassName) package).
^ false
].
(prj class compiledMethodAt:#startupSelector) notNil ifTrue:[
(prj class compiledMethodAt:#startupSelector) package == prj package ifFalse:[
- self infoHolder value:('startup class method must be in package "%1" (is in "%2")'
+ self infoHolder value:('startup class method (#startupSelector) must be in package "%1" (is in "%2")'
bindWith:prj package
with:(prj class compiledMethodAt:#startupSelector) package).
^ false
].
].
-"/ cls := Smalltalk classNamed:prj startupClassName.
-"/ (cls implements:(prj startupSelector)) ifFalse:[
-"/ self infoHolder value:('startup class "%1" does not implement startup selector "%2"'
-"/ bindWith:cls name
-"/ with:prj startupSelector).
-"/ ^ false
-"/ ].
+ cls := Smalltalk classNamed:prj startupClassName.
+ cls isNil ifTrue:[
+ self infoHolder value:('startup class "%1" does not exist' bindWith:prj startupClassName).
+ ^ false.
+ ].
+ (cls implements:(prj startupSelector)) ifFalse:[
+ self infoHolder value:('startup class "%1" does not implement startup selector "%2"'
+ bindWith:cls name
+ with:prj startupSelector).
+ ^ false
+ ].
^ true.
- "Modified: / 23-08-2011 / 12:50:07 / cg"
+ "Modified: / 04-12-2011 / 20:09:34 / cg"
!
canEnterDeploy
@@ -2657,6 +2665,10 @@
!ProjectBuilderAssistantApplication class methodsFor:'documentation'!
+version
+ ^ '$Header$'
+!
+
version_CVS
^ '$Header$'
! !