예제 #1
0
        private void EllHandler(TransitionRes <StructAtom <string>, StructAtom <string> > transitionRes, GridEditorButton button)
        {
            frmTransitionEdit frm = new frmTransitionEdit();

            frm.DataChanged += frm_DataChanged;
            frm.Show(transitionRes.Transition);
        }
예제 #2
0
        private void PlusHandler(GridEditorButton button)
        {
            var state = fsm.StateSet.FirstOrDefault(s => s.ToString() == button.Column.FieldName);
            var cg    = gvEdit.Columns["Zs"];
            var v     = gvEdit.GetRowCellValue(button.RowHandle, cg);
            var input = v as string;

            if (state != null && input != null)
            {
                frmTransitionEdit frm = new frmTransitionEdit();
                frm.DataChanged += frm_DataChanged;

                var trans = fsm.Transitions.Values.FirstOrDefault(tr => tr.Input.KeyName == input && tr.SourceState.StateCore == state.StateCore);
                if (trans != null)
                {
                    frm.Show(trans);
                }
                else
                {
                    fsm.AddOutgoing(state, input);
                    trans = fsm.Transitions.Values.FirstOrDefault(tr => tr.Input.KeyName == input && tr.SourceState.StateCore == state.StateCore);
                    if (trans != null)
                    {
                        if (frm.Show(trans) != System.Windows.Forms.DialogResult.OK)
                        {
                        }
                        if (trans.destinationStates.Count == 0)
                        {
                            if (fsm.Transitions.Remove(trans.ToString()))
                            {
                                UpdateGrid();
                            }
                            else
                            {
                                Debug.WriteLine("Не удаётся откатить добавленый переход.");
                            }
                        }
                    }
                    else
                    {
                        Debug.WriteLine("Переход какбэ добавился и какбэ не добавился!");
                    }
                }
            }
        }