Example #1
0
        public void AddTransitionHandler(object sender, EventArgs args)
        {
            SelectStartAndTargetStateForTransition dialog = new SelectStartAndTargetStateForTransition();

            dialog.SetStateMachine(Item.EnclosingStateMachine, Item);
            dialog.ShowDialog(GuiUtils.MdiWindow);

            if (dialog.OkCkicked)
            {
                State sourceState = Item.EnclosingStateMachine.FindState(dialog.StartStateName);
                if (sourceState != null)
                {
                    Rule rule = Rule.CreateDefault(sourceState.StateMachine.Rules);
                    sourceState.StateMachine.appendRules(rule);
                    RuleCondition ruleCondition = (RuleCondition)rule.RuleConditions[0];

                    Action action = Action.CreateDefault(ruleCondition.Actions);
                    action.ExpressionText = "THIS <- " + dialog.EndStateName;
                    ruleCondition.appendActions(action);

                    RefreshModel.Execute();
                }
            }
        }