public override void Modify(object sender, ModifyEventArgs eArgs) { var dataOwner = fDataOwner as IGEDCOMStructWithLists; if (fBaseWin == null || fSheetList == null || dataOwner == null) { return; } GEDCOMSourceCitation aCit = eArgs.ItemData as GEDCOMSourceCitation; bool result = false; switch (eArgs.Action) { case RecordAction.raAdd: case RecordAction.raEdit: result = BaseController.ModifySourceCitation(fBaseWin, fUndoman, dataOwner, ref aCit); break; case RecordAction.raDelete: if (AppHost.StdDialogs.ShowQuestionYN(LangMan.LS(LSID.LSID_DetachSourceQuery))) { result = fUndoman.DoOrdinaryOperation(OperationType.otRecordSourceCitRemove, fDataOwner, aCit); } break; case RecordAction.raMoveUp: case RecordAction.raMoveDown: { int idx = dataOwner.SourceCitations.IndexOf(aCit); switch (eArgs.Action) { case RecordAction.raMoveUp: dataOwner.SourceCitations.Exchange(idx - 1, idx); break; case RecordAction.raMoveDown: dataOwner.SourceCitations.Exchange(idx, idx + 1); break; } result = true; } break; } if (result) { fBaseWin.Context.Modified = true; eArgs.IsChanged = true; } }
public override void Setup() { base.Setup(); fBase = new BaseWindowStub(); fSourceCitation = new GEDCOMSourceCitation(fBase.Context.Tree, null, "", ""); fDialog = new SourceCitEditDlg(fBase); fDialog.SourceCitation = fSourceCitation; fDialog.Show(); }
private void SetSourceCitation(GEDCOMSourceCitation value) { fSourceCitation = value; GEDCOMSourceRecord src = (fSourceCitation.Value as GEDCOMSourceRecord); if (src != null) { cmbSource.Text = src.FiledByEntry; } txtPage.Text = fSourceCitation.Page; txtCertainty.SelectedIndex = fSourceCitation.CertaintyAssessment; }
public static bool ModifySourceCitation(IBaseWindow baseWin, ChangeTracker undoman, IGEDCOMStructWithLists _struct, ref GEDCOMSourceCitation cit) { bool result; try { baseWin.Context.BeginUpdate(); GEDCOMTree tree = baseWin.Context.Tree; using (var dlg = AppHost.Container.Resolve <ISourceCitEditDlg>()) { dlg.InitDialog(baseWin); bool exists = cit != null; if (!exists) { cit = new GEDCOMSourceCitation(tree, _struct as GEDCOMObject, "", ""); } dlg.SourceCitation = cit; result = AppHost.Instance.ShowModalX(dlg, false); if (!exists) { if (result) { //_struct.SourceCitations.Add(cit); result = undoman.DoOrdinaryOperation(OperationType.otRecordSourceCitAdd, (GEDCOMObject)_struct, cit); } else { cit.Dispose(); } } } } finally { baseWin.Context.EndUpdate(); } return(result); }
private bool ProcessRecordSourceCit(bool redo) { IGEDCOMStructWithLists swl = fObj as IGEDCOMStructWithLists; GEDCOMSourceCitation sourceCit = fNewVal as GEDCOMSourceCitation; if (swl == null || sourceCit == null) { return(false); } if (fType == OperationType.otRecordSourceCitRemove) { redo = !redo; } if (redo) { swl.SourceCitations.Add(sourceCit); } else { swl.SourceCitations.Extract(sourceCit); // bugfix(no delete!) } return(true); }