Ejemplo n.º 1
0
        private void Automates_tree_DoubleClick(object sender, EventArgs e)
        {
            try
            {

                Selected = getautomate(Automates_tree.SelectedNode.Text);
                //////////////////////////////
                if (Selected.Automate == null) return;
                //////////////////////////////
                Grammer UserGrammer = new Grammer();
                switch (Selected.type)
                {
                    case Automata.TYPE.Dfa:
                        ((Dfa)Selected.Automate).Afficher_grid(transition_Grid);
                        ((Dfa)Selected.Automate).Draw(Drawpanel, true);
                        UserGrammer = ((Dfa)Selected.Automate).toGrammer();
                        GrammerRTF.Text = UserGrammer.ToString();
                        break;
                    case Automata.TYPE.Nfa:

                        ((Nfa)Selected.Automate).Afficher_grid(transition_Grid);
                        ((Nfa)Selected.Automate).Draw(Drawpanel, true);
                        UserGrammer = ((Nfa)Selected.Automate).toGrammer();
                        GrammerRTF.Text = UserGrammer.ToString();
                        break;
                    case Automata.TYPE.PGfa:
                        ((PGfa)Selected.Automate).Afficher_grid(transition_Grid);
                        ((PGfa)Selected.Automate).Draw(Drawpanel, true);
                        UserGrammer = ((PGfa)Selected.Automate).toGrammer();
                        GrammerRTF.Text = UserGrammer.ToString();
                        break;
                    case Automata.TYPE.Gfa:
                        ((Gfa)Selected.Automate).Afficher_grid(transition_Grid);
                        ((Gfa)Selected.Automate).Draw(Drawpanel, true);
                        try
                        {
                            UserGrammer = ((Gfa)Selected.Automate).toGrammer();
                        }
                        catch (Exception)
                        {
                            break;
                        }

                        break;
                    default:
                        break;

                }
                UserGrammer.AfficherGrammair(GrammerRTF);

                Type_label.Text = "L'automate : " + ((Automata)Selected.Automate).Name + "  de type : " + Selected.type.ToString();
            }
            catch (Exception)
            {
                Type_label.Text = "L'automate : " + ((Automata)Selected.Automate).Name + "  de type : " + Selected.type.ToString() + "!!!";
            }
        }