Exemplo n.º 1
0
        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);
        }