private void EllHandler(TransitionRes <StructAtom <string>, StructAtom <string> > transitionRes, GridEditorButton button) { frmTransitionEdit frm = new frmTransitionEdit(); frm.DataChanged += frm_DataChanged; frm.Show(transitionRes.Transition); }
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("Переход какбэ добавился и какбэ не добавился!"); } } } }