"{ Encoding: utf8 }" !
!Tools::ProjectBuilderAssistantApplication methodsFor:'actions'!

createNewProject
    <resource: #uiCallback>

    |newProjectID projectDefinitionType projectDefinitionClass projectClasses|

    newProjectID := self newProjectsName value.
    newProjectID isEmptyOrNil ifTrue:[
        Dialog warn:(resources string:'Please enter a packageID first.').
        ^ self
    ].
    newProjectID asPackageId isModuleId ifTrue:[
        Dialog warn:(resources stringWithCRs:
'Please enter a corrent packageID.

All packages must be named like "%1:%2"
(%2 can be a path like "dir/dir/...").' with:(resources string:'module')allItalic
                                        with:(resources string:'directory')allItalic).
        ^ self
    ].

    self withWaitCursorDo:[
        projectDefinitionType := self projectType. "/ ProjectDefinition perform:(self projectTypeHolder value).

        projectDefinitionClass := ProjectDefinition
                                    definitionClassForPackage:newProjectID
                                    projectType: projectDefinitionType
                                    createIfAbsent:true.

        projectDefinitionClass compileDescriptionMethods.
        self updateListOfMatchingProjects.
        self updateListOfNewProjectsName.

        self selectedProjectIndexHolder value:( self listOfMatchingProjects value indexOf:projectDefinitionClass).

        projectClasses := projectDefinitionClass allClasses.

"/    projectDefinitionClass isGUIApplication ifTrue:[
"/        "/ see if it has an AppModel class
"/        (projectClasses contains:[:cls | cls isVisualStartable]) ifFalse:[
"/            (Dialog confirm:'Create an Application Class ?') ifTrue:[
"/                self halt.
"/            ].
"/        ].
"/    ].

"/    projectDefinitionClass isLibrary ifFalse:[
"/        "/ see if it has a Startup class
"/        (projectClasses contains:[:cls | cls isStartable]) ifFalse:[
"/        ].
"/    ].

    ].

    "Modified: / 06-08-2012 / 16:55:54 / cg"
! !

