/// <summary> /// Añade un algoritmo de procesado a la lista. /// </summary> /// <param name="p"> /// A <see cref="BitmapProcess"/> /// </param> private void AddProcess(BitmapProcess p) { BitmapProcessNode node = new BitmapProcessNode(p, bitmapProcessesTypes[p.GetType()]); processesView.NodeStore.AddNode(node); processesView.NodeSelection.SelectNode(node); TreePath path = processesView.Selection.GetSelectedRows()[0]; processesView.ScrollToCell(path, null, true, 0f, 0); }
/// <summary> /// Maneja el uso del boton de editar los parametros de un algoritmo. /// </summary> private void OnEditProcessBtnClicked(object e, EventArgs a) { BitmapProcessNode node = processesView.NodeSelection.SelectedNode as BitmapProcessNode; if (node != null) { Type t = node.Process.GetType(); ProcessEditorDialog.Show(Assistant.Window, node.Process, bitmapProcessesTypes[t]); processesView.QueueDraw(); processesView.ColumnsAutosize(); } }
/// <summary> /// Maneja el cambio de la seleccion en la lista de algoritmos. /// </summary> /// <param name="e"> /// A <see cref="System.Object"/> /// </param> /// <param name="a"> /// A <see cref="EventArgs"/> /// </param> private void OnProcessesSelectionChanged(object e, EventArgs a) { int selectedIdx = -1; if (processesView.Selection.CountSelectedRows() > 0) { selectedIdx = processesView.Selection.GetSelectedRows()[0].Indices[0]; } int count = 0; foreach (TreeNode n in processesView.NodeStore) { count++; } // Activamos los botones segun la posicion del elemento de la lista upProcessBtn.Sensitive = selectedIdx > 0; removeProcessBtn.Sensitive = selectedIdx >= 0; downProcessBtn.Sensitive = selectedIdx >= 0 && selectedIdx < count - 1; // En el caso de editar, comprobamos que el elemento tenga // algo que editar BitmapProcessNode node = (BitmapProcessNode)processesView.NodeSelection.SelectedNode; editProcessBtn.Sensitive = selectedIdx >= 0 && node.ProcessValues != ""; }