예제 #1
0
        private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            switch (e.ClickedItem.Name)
            {
            case "Agrega":
            case "AgregaNodo":
                pm = new Point();

                accion = 1;
                grafo.desseleccionar();
                break;

            case "Mueve":
            case "MueveNodo":
                band   = true;
                accion = 2;
                grafo.desseleccionar();
                break;

            case "EliminaNodo":
            case "EliminaNod":
                accion = 4;
                grafo.desseleccionar();
                break;

            case "MueveGrafo":
            case "MueveGraf":
                accion = 5;
                grafo.desseleccionar();
                break;

            case "EliminaArista":
                //      accion = 6;
                //     grafo.desseleccionar();

                break;

            case "PropiedadesGrafo":
                Form f;
                if (AristaDirigida.Enabled == false)
                {
                    f = new Form3(grafo, 2);
                }
                else
                {
                    f = new Form3(grafo, 1);
                }
                f.Activate();
                f.Show();
                grafo.desseleccionar();
                break;

            case "intercambio":
            case "intercambioTool":
                int  cont = 0;
                char name = 'A';
                bool num;
                int  aux;
                if ((int.TryParse(grafo[0].NOMBRE.ToString(), out aux)) == true)
                {
                    num = true;
                }
                else
                {
                    num = false;
                }
                if (num == true)
                {
                    foreach (NodoP cambio in grafo)
                    {
                        cambio.NOMBRE = name.ToString();
                        name++;
                    }
                    nombre = 'A';
                    for (int i = 0; i < grafo.Count; i++)
                    {
                        nombre++;
                    }
                }
                else
                {
                    numero = grafo.Count;
                    foreach (NodoP cambio in grafo)
                    {
                        cambio.NOMBRE = cont.ToString();
                        cont++;
                    }
                }
                break;

            case "cierraEuler":
                time.Stop();

                grafo.desColorea(resp);
                if (g2.Count > 1)
                {
                    grafo = new Grafo(g2);
                    g2    = new Grafo();
                }
                if (gis != null)
                {
                    gis = null;
                }
                grafo.bosque = false;
                foreach (Arista qt in grafo.Aristas)
                {
                    qt.bosqueT = 0;
                }
                band = false;
                grafo.pinta(g);

                orig   = null;
                destin = null;

                pm     = new Point();
                accion = 0;
                break;

            case "Dirigida":
                accion = 3;

                band = true;

                AgregaRelacion.Checked = true;

                fl.EndCap   = System.Drawing.Drawing2D.LineCap.ArrowAnchor;
                fl.StartCap = LineCap.RoundAnchor;
                fl.Width    = 4;
                tipoarista  = 1;
                grafo.desseleccionar();


                break;

            case "NoDirigida":
                accion = 3;
                band   = true;
                AgregaRelacion.Checked = true;
                fl.EndCap   = System.Drawing.Drawing2D.LineCap.NoAnchor;
                fl.StartCap = LineCap.NoAnchor;
                fl.Width    = 4;
                tipoarista  = 2;
                grafo.desseleccionar();
                break;
            }
        }
예제 #2
0
        private void nuevoToolStripMenuItem_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            nuevoToolStripMenuItem.HideDropDown();
            switch (e.ClickedItem.Name)
            {
            case "Nuevo":
                band      = false;
                mov       = false;
                BackColor = Color.White;
                g.Clear(BackColor);
                AristaNoDirigida.Enabled = true;
                AristaDirigida.Enabled   = true;
                g2      = new Grafo();
                grafo   = new Grafo();
                nombre  = 'A';
                gactivo = false;
                break;

            case "Abrir":

                OpenFileDialog filed = new OpenFileDialog();
                filed.InitialDirectory = Application.StartupPath + "\\Ejemplos";
                filed.DefaultExt       = ".grafo";
                string namefile;
                filed.Filter = "Grafo Files (*.grafo)|*.grafo|All files (*.*)|*.*";
                if (filed.ShowDialog() == DialogResult.OK)
                {
                    namefile = filed.FileName;

                    try
                    {
                        using (Stream stream = File.Open(namefile, FileMode.Open))
                        {
                            BinaryFormatter bin = new BinaryFormatter();
                            grafo = (Grafo)bin.Deserialize(stream);
                            grafo.pinta(g);
                        }
                    }
                    catch (IOException exe)
                    {
                        MessageBox.Show(exe.ToString());
                    }
                    g2 = new Grafo();


                    accion = 1;
                    grafo.desseleccionar();
                    nombre = 'A';
                    for (int nn = 0; nn < grafo.Count; nn++)
                    {
                        nombre++;
                    }
                }
                break;

            case "Guardar":
                SaveFileDialog sav = new SaveFileDialog();
                sav.Filter           = "Grafo Files (*.grafo)|*.grafo|All files (*.*)|*.*";
                sav.InitialDirectory = Application.StartupPath + "\\ProyectosGrafo";
                String nombr;
                if (sav.ShowDialog() == DialogResult.OK)
                {
                    nombr = sav.FileName;
                    try
                    {
                        using (Stream stream = File.Open(nombr, FileMode.Create))
                        {
                            BinaryFormatter bin = new BinaryFormatter();
                            bin.Serialize(stream, grafo);
                        }
                    }
                    catch (IOException exe)
                    {
                        MessageBox.Show(exe.ToString());
                    }
                }
                break;

            case "BorraGrafo":
                grafo = new Grafo();
                g.Clear(BackColor);
                g2     = new Grafo();
                nombre = 'A';
                break;

            case "Salir":
                System.Windows.Forms.Application.Exit();
                break;
            }
        }