Example #1
0
        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;
            }
        }
Example #2
0
        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();
        }
Example #3
0
        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;
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }