--- a/Tools__ProjectBuilderAssistantApplication.st Mon Aug 22 10:36:39 2011 +0200
+++ b/Tools__ProjectBuilderAssistantApplication.st Tue Aug 23 13:51:32 2011 +0200
@@ -2252,25 +2252,94 @@
!ProjectBuilderAssistantApplication methodsFor:'queries'!
canEnterApplicationSelection
- ^ self hasProjectSelected
+ self hasProjectSelected ifFalse:[
+ self infoHolder value:'no project selected'.
+ ^ false
+ ].
+ ^ true
+
+ "Modified: / 23-08-2011 / 12:12:35 / cg"
!
canEnterBuild
- ^ self hasBuildDirectorySpecified
+ self hasBuildDirectorySpecified ifFalse:[
+ self infoHolder value:'no build directory specified'.
+ ^ false
+ ].
+ ^ true
+
+ "Modified: / 23-08-2011 / 12:13:29 / cg"
!
canEnterContentsSelection
- ^ self hasProjectSelected
- and:[ true "self hasApplicationSelected"
- and:[ (self projectTypeIsLibrary or:[self hasStartupClassSelected]) ]]
+ |prj cls|
+
+ self hasProjectSelected ifFalse:[
+ self infoHolder value:'no project selected'.
+ ^ false
+ ].
+ "self hasApplicationSelected ifFalse:[^ false]."
+ (self projectTypeIsLibrary or:[self hasStartupClassSelected]) ifFalse:[
+ self infoHolder value:'must be either library or have a startup class'.
+ ^ false
+ ].
+ prj := self selectedProjectDefinition.
+ ([prj startupClassName] on:Error do:nil) notNil ifFalse:[
+ self infoHolder value:'must have a startup class'.
+ ^ false
+ ].
+ ([prj startupSelector] on:Error do:nil) notNil ifFalse:[
+ self infoHolder value:'must have a startup selector'.
+ ^ false
+ ].
+ (prj class compiledMethodAt:#startupSelector) isNil ifTrue:[
+ self infoHolder value:('inherited startup selector is "%1"' bindWith:prj startupSelector).
+"/ ^ false
+ ].
+ (prj class compiledMethodAt:#startupClassName) package == prj package ifFalse:[
+ self infoHolder value:('startup class method 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")'
+ 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
+"/ ].
+ ^ true.
+
+ "Modified: / 23-08-2011 / 12:50:07 / cg"
!
canEnterDeploy
- ^ self hasProjectBuilder
+ self hasProjectBuilder ifFalse:[
+ self infoHolder value:'no project builder specified'.
+ ^ false
+ ].
+ ^ true
+
+ "Modified: / 23-08-2011 / 12:13:23 / cg"
!
canEnterStartupClassSelection
+ self hasProjectSelected ifFalse:[
+ self infoHolder value:'no project selected'.
+ ^ false
+ ].
^ self hasProjectSelected "and:[ self hasApplicationSelected ]"
+
+ "Modified: / 23-08-2011 / 12:16:35 / cg"
!
isUnixOS