예제 #1
0
        /// <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);
        }
예제 #2
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();
            }
        }
예제 #3
0
        /// <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 != "";
        }