private void OnCreateProjectClick() { InputDialog input = Instantiate(m_inputDialogPrefab); input.transform.position = Vector3.zero; m_windowManager.Dialog(m_localization.GetString("ID_RTEditor_ProjectsDialog_CreateProject", "Create Project"), input.transform, (sender, args) => { string projectName = input.Text; if (string.IsNullOrEmpty(projectName)) { args.Cancel = true; return; } if (m_treeView.Items != null && m_treeView.Items.OfType <ProjectInfo>().Any(p => p.Name == projectName)) { m_windowManager.MessageBox( m_localization.GetString("ID_RTEditor_ProjectsDialog_UnableToCreateProject", "Unable to create project"), m_localization.GetString("ID_RTEditor_ProjectsDialog_ProjectWithSameNameExists", "Project with the same name already exists")); args.Cancel = true; return; } Editor.IsBusy = true; m_project.CreateProject(projectName, (error, newProjectInfo) => { Editor.IsBusy = false; if (error.HasError) { m_windowManager.MessageBox(m_localization.GetString("ID_RTEditor_ProjectsDialog_UnableToCreateProject", "Unable to create project"), error.ErrorText); args.Cancel = true; return; } m_treeView.SelectedItem = null; ProjectInfo[] projectInfo = m_treeView.Items.OfType <ProjectInfo>().Union(new[] { newProjectInfo }).OrderBy(p => p.Name).ToArray(); m_treeView.Insert(Array.IndexOf(projectInfo, newProjectInfo), newProjectInfo); m_treeView.SelectedItem = newProjectInfo; m_treeView.ScrollIntoView(newProjectInfo); }); }, (sender, args) => { }, m_localization.GetString("ID_RTEditor_ProjectsDialog_Btn_Create", "Create"), m_localization.GetString("ID_RTEditor_ProjectsDialog_Btn_Cancel", "Cancel"), 120, 100, 350, 100); }