private void RunWizardForNewProjectFromTemplate(string selectedTemplate = null) { selectedTemplate = selectedTemplate == null ? string.Empty : selectedTemplate; ProjectFromTemplateDialog dialog = new ProjectFromTemplateDialog(selectedTemplate); string projectName = string.Empty; string projectDescription = string.Empty; string projectLocation = string.Empty; string dataDBInfo = string.Empty; Data.DbDriverInfo dbDriverInfo = new Data.DbDriverInfo(); string projectTemplatePath = string.Empty; try { dialog.ShowDialog(); if (dialog.DialogResult == DialogResult.OK) { CloseCurrentProject(); projectName = dialog.ProjectName; projectLocation = dialog.ProjectLocation; dataDBInfo = dialog.DataDBInfo; dbDriverInfo = dialog.DriverInfo; projectTemplatePath = dialog.ProjectTemplatePath; } else { return; } } finally { dialog.Dispose(); GC.Collect(); Refresh(); } canvas.HideUpdateStart(SharedStrings.CREATING_PROJECT); Project newProject = new Project(); newProject = newProject.CreateProject( projectName, projectDescription, projectLocation, dataDBInfo, dbDriverInfo); if (newProject != null) { mediator.Project = newProject; if (this.Interpreter == null) { Assembly assembly = Assembly.Load(newProject.EnterMakeviewIntepreter); Type myType = assembly.GetType(newProject.EnterMakeviewIntepreter + ".EpiInterpreterParser"); this.Interpreter = (IEnterInterpreter)Activator.CreateInstance(myType, new object[] { this.mediator }); this.Interpreter.Host = this.mediator; } canvas.UpdateHidePanel(SharedStrings.LOADING_PROJECT); projectExplorer.LoadProject(newProject); Template template = new Template(this.mediator); template.CreateFromTemplate(projectTemplatePath); //EnableFeatures(); OnProjectAccessed(newProject); // The code below is needed to catch a condition where the ParentView property of each View object is // not set during the creation of the template. Instead of re-writing this code in the template creation // process, we simply force the metadata to be refreshed (which assigns the ParentView property correctly). newProject.views = null; newProject.LoadViews(); } canvas.HideUpdateEnd(); EnableFeatures(); }