/// <summary> /// Insere o processo no ListView listProcessos /// </summary> /// <param name="toadd"></param> private ListViewItem AddProcessToListView(Processo toadd) { ListViewItem item = new ListViewItem(); item.Text = toadd.Pid.ToString(); item.SubItems.Add(toadd.Name); item.SubItems.Add(toadd.Prio.ToString()); item.SubItems.Add(toadd.Tempo_por_ciclo.ToString()); item.SubItems.Add(toadd.Ciclo.ToString()); item.SubItems.Add(toadd.Ciclos_executados.ToString()); item.SubItems.Add("Parado"); item.SubItems.Add("0"); listProcessos.Items.Add(item); return item; }
/// <summary> /// Abre o FileDialog para selecionar o arquivo que contem os processos separa-os em suas respectivas listas /// </summary> private void SetFile() { OpenFileDialog open = new OpenFileDialog(); open.Multiselect = false; if (open.ShowDialog() == DialogResult.OK) { if (listProcessos.Items.Count > 0) { DialogResult result = MessageBox.Show("Já existe processos na lista. Deseja substitui-los ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { listProcessos.Items.Clear(); motor = new ProcessManager(); } } else motor = new ProcessManager(); if (open.FileName.EndsWith("txt")) { using (StreamReader read = new StreamReader(open.FileName)) { string line; while ((line = read.ReadLine()) != null) { string[] splt = line.Split(';'); try { Processo toadd = new Processo(int.Parse(splt[0]), splt[1], int.Parse(splt[2]), float.Parse(splt[3]), int.Parse(splt[4])); motor.SetProcessToRightLine(toadd); if (ListColors) SetRowColor(AddProcessToListView(toadd)); else AddProcessToListView(toadd); UpdateCounters(); } catch { MessageBox.Show("O arquivo informado não está no formato correto para leitura", "Format fail", MessageBoxButtons.OK, MessageBoxIcon.Error); break; } } read.Close(); motor.ClearAuxs(); lbllist.Text = "Processo listados " + motor.TotalCount(); } } } }
/// <summary> /// Atualiza o ID e o nome do processo que esta em execução no momento /// </summary> /// <param name="aux"></param> private void UpdateInExecutionProcess(Processo aux) { item_to_execute = GetProcessInListView(aux); if (aux != null && item_to_execute != null) { lblid.Text = "ID: " + aux.Pid; lblnome.Text = "Nome: " + aux.Name; if (FollowProcess == true) { listProcessos.Select(); item_to_execute.Selected = true; listProcessos.EnsureVisible(item_to_execute.Index); } else if (CheckInExecution == true) { listProcessos.Select(); item_to_execute.Selected = true; } } }