public void AgregarAMemoria(Splitter splitter1, TareaEntity t, int dir) { Random r = new Random(); Label estlb = new Label(); Color c = Color.FromArgb(r.Next(256), r.Next(256), r.Next(256)); estlb.Text = t.GetNombreTarea(); estlb.Visible = true; estlb.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; estlb.BackColor = c; splitter1.Controls.Add(estlb); t.SetYPos(dir / 4); estlb.SetBounds(0, t.GetYPos(), 307, t.GetTamañoTarea() / 4); }
}//________________________________________________________________________---------------------------- public void AgregarElementoTabAreas(TableLayoutPanel t, TareaEntity tarea) { if (filaLibreAreas.Count != 0 && encontrado == 0) { // Revisa si hay espacios disponibles si no, inserta uno nuevo Area prueba = new Area(); foreach (int x in filaLibreAreas) { prueba = null; for (var node = llArea.First; node != null; node = node.Next) { if (node.Value.num == x) { prueba = node.Value; break; } } if (prueba.tam == tarea.GetTamañoTarea()) { llArea.AddAfter(llArea.Find(prueba), new LinkedListNode <Area>(new Area(x, tarea.GetTamañoTarea(), prueba.dir, "A"))); llArea.Remove(prueba); ActualizarTabla(t); filaLibreAreas.Remove(x); encontrado = 0; break; } else if (prueba.tam > tarea.GetTamañoTarea()) { LinkedListNode <Area> p = llArea.Find(prueba); llArea.AddBefore(p, new LinkedListNode <Area>(new Area(x, tarea.GetTamañoTarea(), prueba.dir, "A"))); p.Value.dir = p.Previous.Value.tam + prueba.dir; p.Value.tam = prueba.tam - p.Previous.Value.tam; ActualizarTabla(t); filaLibreAreas.Remove(x); encontrado = 0; filaLibreAreas.Add(x + 1); numArea++; break; } else { encontrado = 1; AgregarElementoTabAreas(t, tarea); } } } else if (llArea.First == null) { llArea.AddFirst(new Area(numArea, tarea.GetTamañoTarea(), 0, "A")); numArea++; AñadirUltimoATabla(t); DejarVacioElementoTabAreas(t, 0); } else { llArea.AddLast(new Area(numArea, tarea.GetTamañoTarea(), llArea.Last.Value.dir + llArea.Last.Value.tam, "A")); numArea++; AñadirUltimoATabla(t); } encontrado = 0; }
}//________________________________________________________________________---------------------------- public ColaElement AgregarElementoTabAreas(TableLayoutPanel t, TareaEntity tarea) { //foreach (Particion a in llPart) //{ // Console.WriteLine(a.num + "|" + a.tam + "|" + a.dir + "|" + a.proceso + "|" + a.estado); //} //Console.WriteLine("\n----------------------------------\n"); if (filaLibreAreas.Count != 0 && encontrado == 0) { // Revisa si hay espacios disponibles si no, inserta uno nuevo Area prueba = new Area(); foreach (int x in filaLibreAreas) { prueba = null; for (var node = llArea.First; node != null; node = node.Next) { if (node.Value.num == x) { prueba = node.Value; break; } } if (prueba.tam == tarea.GetTamañoTarea()) { llArea.AddAfter(llArea.Find(prueba), new LinkedListNode <Area>(new Area(x, tarea.GetTamañoTarea(), prueba.dir, "A", tarea))); llArea.Remove(prueba); ActualizarTabla(t); filaLibreAreas.Remove(x); encontrado = 0; break; } else if (prueba.tam > tarea.GetTamañoTarea()) { LinkedListNode <Area> p = llArea.Find(prueba); llArea.AddBefore(p, new LinkedListNode <Area>(new Area(x, tarea.GetTamañoTarea(), prueba.dir, "A", tarea))); p.Value.dir = p.Previous.Value.tam + prueba.dir; p.Value.tam = prueba.tam - p.Previous.Value.tam; ActualizarTabla(t); filaLibreAreas.Remove(x); encontrado = 0; filaLibreAreas.Add(x + 1); numArea++; break; } else { encontrado = 1; AgregarElementoTabAreas(t, tarea); } } } else if (llArea.First == null) { llArea.AddFirst(new Area(numArea, tarea.GetTamañoTarea(), 0, "A", tarea)); numArea++; AñadirUltimoATabla(t); //DejarVacioElementoTabAreas(t, 0); PARA PRUEBA UNITARIA } else { if (llArea.Last.Value.dir + llArea.Last.Value.tam + tarea.GetTamañoTarea() > espacioDisponible) { tarea.SetPrioridad(tarea.GetPrioridad() + 1); return(new ColaElement(tarea)); } llArea.AddLast(new Area(numArea, tarea.GetTamañoTarea(), llArea.Last.Value.dir + llArea.Last.Value.tam, "A", tarea)); numArea++; AñadirUltimoATabla(t); } encontrado = 0; tarea.SetPrioridad(0);// tarea fue añadida a Tabla de Areas Disp. return(new ColaElement(tarea)); }