Ejemplo n.º 1
0
        /// <summary>
        /// Открывает указанный проект в новой вкладке.
        /// </summary>
        /// <param name="project">Открываемый проект.</param>
        public void OpenProject(AbstractProject project)
        {
            if (project == null)
                throw new ArgumentNullException("Открываемый проект не может быть неопределенным");

            IMachineVisualizer vis = visualsCtrl.GetOpenedProject(project.ProjectDirectory, project.Name);
            if (vis != null)
                visualsCtrl.CloseVisualizer(vis);

            switch(project.Machine)
            {
                case MachineId.Post:
                    {
                        visualsCtrl.AddVisualizer(new PostVisualizer() { CurrentProject = project, Debug = debug });
                        break;
                    }
                case MachineId.Turing:
                    {
                        visualsCtrl.AddVisualizer(new TuringVisualizer() { CurrentProject = project, Debug = debug });
                        break;
                    }
                case MachineId.Register:
                    {
                        visualsCtrl.AddVisualizer(new RegisterMachineVisualizer() { CurrentProject = project, Debug = debug });
                        break;
                    }
                default:
                    throw new ArgumentException("Невозможно открыть проект, поскольку он имеет неизвестный тип абстрактной машины");
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Создает новый проект с указанным названием и типом абстрактной машины.
        /// </summary>
        /// <param name="name">Название создаваемого проекта.</param>
        /// <param name="machine">Тип абстрактной машины, под который создается проект.</param>
        /// <param name="settings">Начальные установки визуализатора.</param>
        /// <returns>Созданный проект.</returns>
        private AbstractProject CreateProject(string name, MachineId machine, Dictionary<string, bool> settings = null)
        {
            string fileName = nameBox.Text;
            string folder = newFolderBox.Checked ? Path.Combine(_folderDialog.SelectedPath, fileName) : _folderDialog.SelectedPath;

            AbstractProject result = new AbstractProject(name, machine, folder);
            result.VisualizerSettings = settings;

            return result;
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Открывает проект в новой вкладке рабочей среды.
 /// </summary>
 /// <param name="project">Открываемый проект.</param>
 private void OpenProject(AbstractProject project)
 {
     _environment.OpenProject(project);
     stateCtrl.CurrentControl = _environment;
     ItemsToEnvState();
     backBtn.Visible = false;
 }