Exemple #1
0
        public void Test_GetBirthDateD()
        {
            GDMIndividualRecord iRec = fContext.Tree.XRefIndex_Find("I1") as GDMIndividualRecord;

            Assert.IsNull(GKUtils.GetBirthDate(null));

            GDMCustomDate date = GKUtils.GetBirthDate(iRec);

            Assert.IsNotNull(date);
            Assert.AreEqual("28 DEC 1990", date.StringValue);
        }
        public override bool Accept()
        {
            try {
                fEvent.Place.StringValue    = fView.Place.Text;
                fEvent.Place.Location.Value = fTempLocation;
                fEvent.Classification       = fView.EventName.Text;
                fEvent.Cause  = fView.Cause.Text;
                fEvent.Agency = fView.Agency.Text;

                GDMCustomDate dt = AssembleDate();
                if (dt == null)
                {
                    throw new ArgumentNullException("dt");
                }

                fEvent.Date.ParseString(dt.StringValue);

                int eventType = fView.EventType.SelectedIndex;
                if (fEvent is GDMFamilyEvent)
                {
                    fEvent.SetName(GKData.FamilyEvents[eventType].Sign);
                }
                else
                {
                    GKData.EventStruct eventProps = GKData.PersonEvents[eventType];
                    fEvent.SetName(eventProps.Sign);
                    if (eventProps.Kind == PersonEventKind.ekFact)
                    {
                        fEvent.StringValue = fView.Attribute.Text;
                    }
                    else
                    {
                        fEvent.StringValue = "";
                    }
                }

                if (fEvent is GDMIndividualEvent)
                {
                    if (GKData.PersonEvents[eventType].Kind == PersonEventKind.ekFact)
                    {
                        GDMIndividualAttribute attr = new GDMIndividualAttribute(fEvent.Owner);
                        attr.Assign(fEvent);
                        fEvent = attr;
                    }
                }

                CommitChanges();

                return(true);
            } catch (Exception ex) {
                Logger.WriteError("EventEditController.Accept()", ex);
                return(false);
            }
        }
Exemple #3
0
        protected static object GetDateValue(GDMCustomDate date, bool isVisible)
        {
            object result;

            if (date == null)
            {
                result = (isVisible) ? null : (object)UDN.CreateEmpty();
            }
            else
            {
                if (isVisible)
                {
                    GlobalOptions glob = GlobalOptions.Instance;
                    result = date.GetDisplayStringExt(glob.DefDateFormat, glob.ShowDatesSign, glob.ShowDatesCalendar);
                }
                else
                {
                    result = date.GetUDN();
                }
            }

            return(result);
        }
Exemple #4
0
        public void Test_GetMarriageDate()
        {
            GDMCustomDate dtx = GKUtils.GetMarriageDate(null);

            Assert.IsNull(dtx);
        }
Exemple #5
0
        private void SetDate(GDMCustomDate date)
        {
            if (date is GDMDateRange)
            {
                GDMDateRange dtRange = date as GDMDateRange;

                if (dtRange.After.StringValue == "" && dtRange.Before.StringValue != "")
                {
                    cmbDateType.SelectedIndex = 1;
                }
                else if (dtRange.After.StringValue != "" && dtRange.Before.StringValue == "")
                {
                    cmbDateType.SelectedIndex = 2;
                }
                else if (dtRange.After.StringValue != "" && dtRange.Before.StringValue != "")
                {
                    cmbDateType.SelectedIndex = 3;
                }

                txtDate1.NormalizeDate = dtRange.After.GetDisplayString(DateFormat.dfDD_MM_YYYY);
                txtDate2.NormalizeDate = dtRange.Before.GetDisplayString(DateFormat.dfDD_MM_YYYY);
                cmbDate1Calendar.SetSelectedTag <GDMCalendar>(dtRange.After.DateCalendar);
                cmbDate2Calendar.SetSelectedTag <GDMCalendar>(dtRange.Before.DateCalendar);
                chkBC1.Checked = dtRange.After.YearBC;
                chkBC2.Checked = dtRange.Before.YearBC;
            }
            else if (date is GDMDatePeriod)
            {
                GDMDatePeriod dtPeriod = date as GDMDatePeriod;

                if (dtPeriod.DateFrom.StringValue != "" && dtPeriod.DateTo.StringValue == "")
                {
                    cmbDateType.SelectedIndex = 4;
                }
                else if (dtPeriod.DateFrom.StringValue == "" && dtPeriod.DateTo.StringValue != "")
                {
                    cmbDateType.SelectedIndex = 5;
                }
                else if (dtPeriod.DateFrom.StringValue != "" && dtPeriod.DateTo.StringValue != "")
                {
                    cmbDateType.SelectedIndex = 6;
                }

                txtDate1.NormalizeDate = dtPeriod.DateFrom.GetDisplayString(DateFormat.dfDD_MM_YYYY);
                txtDate2.NormalizeDate = dtPeriod.DateTo.GetDisplayString(DateFormat.dfDD_MM_YYYY);
                cmbDate1Calendar.SetSelectedTag <GDMCalendar>(dtPeriod.DateFrom.DateCalendar);
                cmbDate2Calendar.SetSelectedTag <GDMCalendar>(dtPeriod.DateTo.DateCalendar);
                chkBC1.Checked = dtPeriod.DateFrom.YearBC;
                chkBC2.Checked = dtPeriod.DateTo.YearBC;
            }
            else if (date is GDMDate)
            {
                GDMApproximated approximated = (date as GDMDate).Approximated;

                switch (approximated)
                {
                case GDMApproximated.daExact:
                    cmbDateType.SelectedIndex = 0;
                    break;

                case GDMApproximated.daAbout:
                    cmbDateType.SelectedIndex = 7;
                    break;

                case GDMApproximated.daCalculated:
                    cmbDateType.SelectedIndex = 8;
                    break;

                case GDMApproximated.daEstimated:
                    cmbDateType.SelectedIndex = 9;
                    break;
                }

                txtDate1.NormalizeDate = (date as GDMDate).GetDisplayString(DateFormat.dfDD_MM_YYYY);
                cmbDate1Calendar.SetSelectedTag <GDMCalendar>((date as GDMDate).DateCalendar);
                chkBC1.Checked = (date as GDMDate).YearBC;
            }
            else
            {
                cmbDateType.SelectedIndex = 0;
                txtDate1.NormalizeDate    = "";
                cmbDate1Calendar.SetSelectedTag <GDMCalendar>(GDMCalendar.dcGregorian);
                chkBC1.Checked = false;
            }
        }
Exemple #6
0
        private GDMCustomDate GetDate()
        {
            GDMCustomDate result = null;

            GDMCalendar cal1 = cmbDate1Calendar.GetSelectedTag <GDMCalendar>();
            GDMCalendar cal2 = cmbDate2Calendar.GetSelectedTag <GDMCalendar>();

            GDMDate gcd1 = GDMDate.CreateByFormattedStr(txtDate1.NormalizeDate, cal1, true);

            if (gcd1 == null)
            {
                throw new ArgumentNullException("gcd1");
            }

            GDMDate gcd2 = GDMDate.CreateByFormattedStr(txtDate2.NormalizeDate, cal2, true);

            if (gcd2 == null)
            {
                throw new ArgumentNullException("gcd2");
            }

            gcd1.YearBC = chkBC1.Checked.GetValueOrDefault();
            gcd2.YearBC = chkBC2.Checked.GetValueOrDefault();

            switch (cmbDateType.SelectedIndex)
            {
            case 0:
                result = gcd1;
                break;

            case 1:     // BEF gcd2
                result = GDMCustomDate.CreateRange(null, gcd2);
                break;

            case 2:     // AFT gcd1
                result = GDMCustomDate.CreateRange(gcd1, null);
                break;

            case 3:     // "BET " + gcd1 + " AND " + gcd2
                result = GDMCustomDate.CreateRange(gcd1, gcd2);
                break;

            case 4:     // FROM gcd1
                result = GDMCustomDate.CreatePeriod(gcd1, null);
                break;

            case 5:     // TO gcd2
                result = GDMCustomDate.CreatePeriod(null, gcd2);
                break;

            case 6:     // FROM gcd1 TO gcd2
                result = GDMCustomDate.CreatePeriod(gcd1, gcd2);
                break;

            case 7:     // ABT gcd1
                result = GDMCustomDate.CreateApproximated(gcd1, GDMApproximated.daAbout);
                break;

            case 8:     // CAL gcd1
                result = GDMCustomDate.CreateApproximated(gcd1, GDMApproximated.daCalculated);
                break;

            case 9:     // EST gcd1
                result = GDMCustomDate.CreateApproximated(gcd1, GDMApproximated.daEstimated);
                break;
            }

            return(result);
        }
        public override void UpdateView()
        {
            fView.NotesList.ListModel.DataOwner   = fEvent;
            fView.MediaList.ListModel.DataOwner   = fEvent;
            fView.SourcesList.ListModel.DataOwner = fEvent;

            var evtName = fEvent.GetTagName();

            if (fEvent is GDMFamilyEvent)
            {
                SetEventTypes(GKData.FamilyEvents);
                int idx = GKUtils.GetFamilyEventIndex(evtName);
                if (idx < 0)
                {
                    idx = 0;
                }
                fView.EventType.SelectedIndex = idx;
            }
            else
            {
                SetEventTypes(GKData.PersonEvents);
                int idx = GKUtils.GetPersonEventIndex(evtName);
                if (idx < 0)
                {
                    idx = 0;
                }
                fView.EventType.SelectedIndex = idx;

                if (idx >= 0 && GKData.PersonEvents[idx].Kind == PersonEventKind.ekFact)
                {
                    fView.Attribute.Text = fEvent.StringValue;
                }
            }

            ChangeEventType();

            GDMCustomDate date = fEvent.Date.Value;

            if (date is GDMDateRange)
            {
                GDMDateRange dtRange = date as GDMDateRange;

                if (dtRange.After.StringValue == "" && dtRange.Before.StringValue != "")
                {
                    fView.EventDateType.SelectedIndex = 1;
                }
                else if (dtRange.After.StringValue != "" && dtRange.Before.StringValue == "")
                {
                    fView.EventDateType.SelectedIndex = 2;
                }
                else if (dtRange.After.StringValue != "" && dtRange.Before.StringValue != "")
                {
                    fView.EventDateType.SelectedIndex = 3;
                }

                fView.Date1.NormalizeDate = dtRange.After.GetDisplayString(DateFormat.dfDD_MM_YYYY);
                fView.Date2.NormalizeDate = dtRange.Before.GetDisplayString(DateFormat.dfDD_MM_YYYY);
                fView.Date1Calendar.SetSelectedTag <GDMCalendar>(dtRange.After.DateCalendar);
                fView.Date2Calendar.SetSelectedTag <GDMCalendar>(dtRange.Before.DateCalendar);
                fView.Date1BC.Checked = dtRange.After.YearBC;
                fView.Date2BC.Checked = dtRange.Before.YearBC;
            }
            else if (date is GDMDatePeriod)
            {
                GDMDatePeriod dtPeriod = date as GDMDatePeriod;

                if (dtPeriod.DateFrom.StringValue != "" && dtPeriod.DateTo.StringValue == "")
                {
                    fView.EventDateType.SelectedIndex = 4;
                }
                else if (dtPeriod.DateFrom.StringValue == "" && dtPeriod.DateTo.StringValue != "")
                {
                    fView.EventDateType.SelectedIndex = 5;
                }
                else if (dtPeriod.DateFrom.StringValue != "" && dtPeriod.DateTo.StringValue != "")
                {
                    fView.EventDateType.SelectedIndex = 6;
                }

                fView.Date1.NormalizeDate = dtPeriod.DateFrom.GetDisplayString(DateFormat.dfDD_MM_YYYY);
                fView.Date2.NormalizeDate = dtPeriod.DateTo.GetDisplayString(DateFormat.dfDD_MM_YYYY);
                fView.Date1Calendar.SetSelectedTag <GDMCalendar>(dtPeriod.DateFrom.DateCalendar);
                fView.Date2Calendar.SetSelectedTag <GDMCalendar>(dtPeriod.DateTo.DateCalendar);
                fView.Date1BC.Checked = dtPeriod.DateFrom.YearBC;
                fView.Date2BC.Checked = dtPeriod.DateTo.YearBC;
            }
            else if (date is GDMDate)
            {
                GDMApproximated approximated = (date as GDMDate).Approximated;

                switch (approximated)
                {
                case GDMApproximated.daExact:
                    fView.EventDateType.SelectedIndex = 0;
                    break;

                case GDMApproximated.daAbout:
                    fView.EventDateType.SelectedIndex = 7;
                    break;

                case GDMApproximated.daCalculated:
                    fView.EventDateType.SelectedIndex = 8;
                    break;

                case GDMApproximated.daEstimated:
                    fView.EventDateType.SelectedIndex = 9;
                    break;
                }

                fView.Date1.NormalizeDate = (date as GDMDate).GetDisplayString(DateFormat.dfDD_MM_YYYY);
                fView.Date1Calendar.SetSelectedTag <GDMCalendar>((date as GDMDate).DateCalendar);
                fView.Date1BC.Checked = (date as GDMDate).YearBC;
            }
            else
            {
                fView.EventDateType.SelectedIndex = 0;
                fView.Date1.NormalizeDate         = "";
                fView.Date1Calendar.SetSelectedTag <GDMCalendar>(GDMCalendar.dcGregorian);
                fView.Date1BC.Checked = false;
            }

            ChangeDateType();
            fView.EventName.Text = fEvent.Classification;
            fView.Cause.Text     = fEvent.Cause;
            fView.Agency.Text    = fEvent.Agency;

            fTempLocation = (fEvent.Place.Location.Value as GDMLocationRecord);
            UpdatePlace();

            fView.NotesList.UpdateSheet();
            fView.MediaList.UpdateSheet();
            fView.SourcesList.UpdateSheet();
        }
Exemple #8
0
 public GEDCOMDateItem(GDMCustomDate date)
 {
     fDate = date;
 }
Exemple #9
0
        private GDMCustomDate AssembleDate()
        {
            GDMCustomDate result = null;

            GDMCalendar cal1 = (GDMCalendar)fView.Date1Calendar.SelectedTag;
            GDMCalendar cal2 = (GDMCalendar)fView.Date2Calendar.SelectedTag;

            GDMDate gcd1 = GDMDate.CreateByFormattedStr(fView.Date1.NormalizeDate, cal1, true);

            if (gcd1 == null)
            {
                throw new ArgumentNullException("gcd1");
            }

            GDMDate gcd2 = GDMDate.CreateByFormattedStr(fView.Date2.NormalizeDate, cal2, true);

            if (gcd2 == null)
            {
                throw new ArgumentNullException("gcd2");
            }

            gcd1.YearBC = fView.Date1BC.Checked;
            gcd2.YearBC = fView.Date2BC.Checked;

            switch (fView.EventDateType.SelectedIndex)
            {
            case 0:
                result = gcd1;
                break;

            case 1:     // BEF gcd2
                result = GDMCustomDate.CreateRange(null, null, gcd2);
                break;

            case 2:     // AFT gcd1
                result = GDMCustomDate.CreateRange(null, gcd1, null);
                break;

            case 3:     // "BET " + gcd1 + " AND " + gcd2
                result = GDMCustomDate.CreateRange(null, gcd1, gcd2);
                break;

            case 4:     // FROM gcd1
                result = GDMCustomDate.CreatePeriod(null, gcd1, null);
                break;

            case 5:     // TO gcd2
                result = GDMCustomDate.CreatePeriod(null, null, gcd2);
                break;

            case 6:     // FROM gcd1 TO gcd2
                result = GDMCustomDate.CreatePeriod(null, gcd1, gcd2);
                break;

            case 7:     // ABT gcd1
                result = GDMCustomDate.CreateApproximated(null, gcd1, GDMApproximated.daAbout);
                break;

            case 8:     // CAL gcd1
                result = GDMCustomDate.CreateApproximated(null, gcd1, GDMApproximated.daCalculated);
                break;

            case 9:     // EST gcd1
                result = GDMCustomDate.CreateApproximated(null, gcd1, GDMApproximated.daEstimated);
                break;
            }

            return(result);
        }