/*События, при выборе файла в очерди ГОТОВНОСТЬ*/ private void QueueOfReady_LB_SelectedIndexChanged(object sender, EventArgs e) { if (TimerOfProcessor.Enabled == false) { Log.Clear(); Load_GB.Hide(); ReadyLoad_LB.ClearSelected(); ToLog("Что бы удалить выбранный файл, выюерите его и кликните ПКМ по области ГОТОВНОСТЬ", Color.DeepSkyBlue); } }
/*ПКМ - скрыть описание загруженного файла*/ private void FileShow_LB_MouseUp(object sender, MouseEventArgs e) { switch (e.Button) { case MouseButtons.Right: { ReadyLoad_LB.ClearSelected(); Load_GB.Hide(); break; } } }
/*Запуск модели*/ private void Go_B_Click(object sender, EventArgs e) { Load_GB.Hide(); ReadyLoad_LB.ClearSelected(); Log.Clear(); //TBootFile bf = new TBootFile(); //bf.nameOfFile = "процесс2"; //bf.comandsOfFile.Add("ПАМЯТЬ-1000"); //bf.comandsOfFile.Add("ПРОЦЕССОР-3"); //bf.comandsOfFile.Add("ПРОЦЕССОР-2"); //bf.comandsOfFile.Add("КОНЕЦ"); //TProcess prss = CreateProcess(bf); //queueOfReady.Add(prss); //TimerOfProcessor.Start(); if (QueueOfReady_LB.Items.Count > 0) { ///Processor_TC.TabPages.Clear();//Очистка вкладок /*Заполнение главного списка процессов из списка ГОТОВНОСТЬ*/ for (int i = 0; i < QueueOfReady_LB.Items.Count; i++) { TBootFile bootFile = QueueOfReady_LB.Items[i] as TBootFile; TProcess process = CreateProcess(bootFile); queueOfReady.Add(process); /* Для рендера ЛОГА при создании процесса*/ ToLog("Создан процесс "); ToLog(process.ToString(), Color.Lime); ToLog(" и добавлен в очерель ГОТОВНОСТЬ.", Color.White); ToLog("Занято "); ToLog(process.descriptor.memory.ToString() + " байт", Color.Lime); ToLog(" процессом ", Color.White); ToLog(process.descriptor.name, Color.Lime); } /*Отрисовка вкладок ПРОЦЕССОР*/ /*int j = 0; * foreach (TProcess str in queueOfReady) * { * DrawPageProc(queueOfReady[j++]); * }*/ ToLog("Очередь ГОТОВНОСТЬ сформирована."); ToLog("Планировщик процессов - запущен."); TimerOfProcessor.Start(); Go_B.Enabled = false; } else { ToLog("Добавте сперва процесс в очередь ГОТОВНОСТЬ", Color.Red); } }
/*Добавить в список ГОТОВНОСТЬ все из списка Доступные файлы*/ private void AddAll_B_Click(object sender, EventArgs e) { Load_GB.Hide(); ReadyLoad_LB.ClearSelected(); if (TimerOfProcessor.Enabled == false) { Log.Clear(); ToLog("Что бы удалить файл из списка ГОТОВНОСТЬ выберите его.", Color.DeepSkyBlue); if (ReadyLoad_LB.Items.Count != 0) { QueueOfReady_LB.Items.AddRange(ReadyLoad_LB.Items); Go_B.Enabled = true; } else { Log.Clear(); ToLog("Список доступных файлов пуст. Загрузите хоть один файл, моделирующий процесс.", Color.Red); } } }
/*Меню загрузки файла*/ private void Button_TS_Click(object sender, EventArgs e) { Load_GB.Hide(); ReadyLoad_LB.ClearSelected(); Open_D.Multiselect = true; Open_D.Filter = "Text files(*.txt)|*.txt|All files(*.*)|*.*"; Open_D.FileName = ""; // Имя файла "по умолчанию" не задано Open_D.Title = "Загрузка файла, моделирующего процесс"; /* * * Вызов диалогового окна выбора файла для загрузки и проверка результата завершения его работы. * Если окно закрыто с подтверждением загрузки (нажата кнопка OK), * то выполнение действий по чтению файла построчно * */ if (Open_D.ShowDialog() == DialogResult.OK) { foreach (string file in Open_D.FileNames) { using (StreamReader sr = new StreamReader(file, Encoding.Default)) { TBootFile bootFile = new TBootFile(); bootFile.nameOfFile = Path.GetFileNameWithoutExtension(file); while (!sr.EndOfStream) { string line = sr.ReadLine().Trim(); bootFile.comandsOfFile.Add(line); } ReadyLoad_LB.Items.Add(bootFile); } } if (!TimerOfProcessor.Enabled) { Log.Clear(); ToLog("Выберите любой файл и добавте его в список ГОТОВНОСТЬ", Color.DeepSkyBlue); } } }