private void New_Executed(object sender, ExecutedRoutedEventArgs e)
 {
     StateMachine sm = DataContext as StateMachine;
     if (e.Parameter is StateMachine)
     {
         StringQueryItem sqi = new StringQueryItem("Enter new state's name", "New State");
         StringQuery sq = new StringQuery();
         sq.DataContext = sqi;
         bool? result = sq.ShowDialog();
         if (result.Value)
         {
             State state = new State(sqi.Text);
             sm.addState(state);
         }
     }
 }
Ejemplo n.º 2
0
 public Transition(State from, State to)
 {
     m_from = from;
     m_to = to;
 }
Ejemplo n.º 3
0
        public void removeState(State state)
        {
            List<Transition> toDelete = new List<Transition>();
            foreach (Transition t in state.Transitions)
            {
                toDelete.Add(t);
                //removeTransition(t);
            }
            foreach (Transition t in toDelete)
            {
                removeTransition(t);
            }
            // remove all Transitions to this state
            toDelete = new List<Transition>();
            foreach (Transition t in m_transitions)
            {
                if (t.To == state)
                {
                    toDelete.Add(t);
                    //removeTransition(t);
                }
            }
            foreach (Transition t in toDelete)
            {
                removeTransition(t);
            }

            m_states.Remove(state);
        }
Ejemplo n.º 4
0
 public void addState(State state)
 {
     m_states.Add(state);
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Consutrctor to use!
        /// </summary>
        /// <param name="name">Name of the statemachine</param>
        /// <param name="transitions">A list of transitions betweenn the states</param>
        /// <param name="states">The states of the statemachine</param>
        public StateMachine(String name, Parameter transitions, ObservableCollection<Element> states)
        {
            m_name = name;
            m_transitionsParameter = transitions;

            foreach (Element element in states)
            {
                if (element.Semantic == Element.ElementSemantic.STATE)
                {
                    Parameter id = element.getParameter("id");
                    if (id != null)
                    {
                        State newState = new State(id.Values);
                        addState(newState);
                    }

                }
            }
        }
 private void selectState(StateMachine sm, State state)
 {
     if (sm.SelectedState != null)
         sm.SelectedState.Selected = false;
     sm.SelectedState = state;
     if (sm.SelectedState != null)
         sm.SelectedState.Selected = true;
 }
 private void deleteState(StateMachine sm, State state)
 {
     // copy transitions
     ObservableCollection<Transition> transitions = new ObservableCollection<Transition>(state.Transitions);
     // delete transitions from this state
     foreach (Transition t in transitions)
     {
         sm.Transitions.Remove(t);
         state.Transitions.Remove(t);
     }
     // delete transitions to this state
     foreach (State s in sm.States)
     {
         // copy transitions
         ObservableCollection<Transition> transitions2 = new ObservableCollection<Transition>(s.Transitions);
         foreach (Transition t2 in transitions2)
         {
             if (t2.To == state)
             {
                 s.Transitions.Remove(t2);
                 sm.Transitions.Remove(t2);
             }
         }
     }
     // delete state
     sm.States.Remove(state);
 }