Example #1
0
        private void SetEvent(GEDCOMCustomEvent value)
        {
            fEvent = value;

            if (fEvent is GEDCOMFamilyEvent)
            {
                int num = GKData.FamilyEvents.Length;
                for (int i = 0; i < num; i++)
                {
                    cmbEventType.Items.Add(LangMan.LS(GKData.FamilyEvents[i].Name));
                }

                int idx = GKUtils.GetFamilyEventIndex(fEvent.Name);
                if (idx < 0)
                {
                    idx = 0;
                }
                cmbEventType.SelectedIndex = idx;
            }
            else
            {
                int num = GKData.PersonEvents.Length;
                for (int i = 0; i < num; i++)
                {
                    cmbEventType.Items.Add(LangMan.LS(GKData.PersonEvents[i].Name));
                }

                int idx = GKUtils.GetPersonEventIndex(fEvent.Name);
                if (idx < 0)
                {
                    idx = 0;
                }
                cmbEventType.SelectedIndex = idx;

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

            EditEventType_SelectedIndexChanged(null, null);

            GEDCOMCustomDate date = fEvent.Date.Value;

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

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

                txtEventDate1.Text = dtRange.After.GetDisplayString(DateFormat.dfDD_MM_YYYY);
                txtEventDate2.Text = dtRange.Before.GetDisplayString(DateFormat.dfDD_MM_YYYY);
                SetComboCalendar(cmbDate1Calendar, dtRange.After.DateCalendar);
                SetComboCalendar(cmbDate2Calendar, dtRange.Before.DateCalendar);
                btnBC1.Checked = dtRange.After.YearBC;
                btnBC2.Checked = dtRange.Before.YearBC;
            }
            else if (date is GEDCOMDatePeriod)
            {
                GEDCOMDatePeriod dtPeriod = date as GEDCOMDatePeriod;

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

                txtEventDate1.Text = dtPeriod.DateFrom.GetDisplayString(DateFormat.dfDD_MM_YYYY);
                txtEventDate2.Text = dtPeriod.DateTo.GetDisplayString(DateFormat.dfDD_MM_YYYY);
                SetComboCalendar(cmbDate1Calendar, dtPeriod.DateFrom.DateCalendar);
                SetComboCalendar(cmbDate2Calendar, dtPeriod.DateTo.DateCalendar);
                btnBC1.Checked = dtPeriod.DateFrom.YearBC;
                btnBC2.Checked = dtPeriod.DateTo.YearBC;
            }
            else if (date is GEDCOMDate)
            {
                GEDCOMApproximated approximated = (date as GEDCOMDate).Approximated;

                switch (approximated)
                {
                case GEDCOMApproximated.daExact:
                    cmbEventDateType.SelectedIndex = 0;
                    break;

                case GEDCOMApproximated.daAbout:
                    cmbEventDateType.SelectedIndex = 7;
                    break;

                case GEDCOMApproximated.daCalculated:
                    cmbEventDateType.SelectedIndex = 8;
                    break;

                case GEDCOMApproximated.daEstimated:
                    cmbEventDateType.SelectedIndex = 9;
                    break;
                }

                txtEventDate1.Text = (date as GEDCOMDate).GetDisplayString(DateFormat.dfDD_MM_YYYY);
                SetComboCalendar(cmbDate1Calendar, (date as GEDCOMDate).DateCalendar);
                btnBC1.Checked = (date as GEDCOMDate).YearBC;
            }
            else
            {
                cmbEventDateType.SelectedIndex = 0;
                txtEventDate1.Text             = "";
                cmbDate1Calendar.SelectedIndex = 0;
                btnBC1.Checked = false;
            }

            EditEventDateType_SelectedIndexChanged(null, null);
            txtEventName.Text  = fEvent.Classification;
            txtEventCause.Text = fEvent.Cause;
            txtEventOrg.Text   = fEvent.Agency;
            fLocation          = (fEvent.Place.Location.Value as GEDCOMLocationRecord);

            fNotesList.ListModel.DataOwner   = fEvent;
            fMediaList.ListModel.DataOwner   = fEvent;
            fSourcesList.ListModel.DataOwner = fEvent;

            ControlsRefresh();

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

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

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

            ChangeEventType();

            GEDCOMCustomDate date = fEvent.Date.Value;

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

                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.Text = dtRange.After.GetDisplayString(DateFormat.dfDD_MM_YYYY);
                fView.Date2.Text = dtRange.Before.GetDisplayString(DateFormat.dfDD_MM_YYYY);
                fView.Date1Calendar.SelectedTag = dtRange.After.DateCalendar;
                fView.Date2Calendar.SelectedTag = dtRange.Before.DateCalendar;
                fView.Date1BC.Checked           = dtRange.After.YearBC;
                fView.Date2BC.Checked           = dtRange.Before.YearBC;
            }
            else if (date is GEDCOMDatePeriod)
            {
                GEDCOMDatePeriod dtPeriod = date as GEDCOMDatePeriod;

                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.Text = dtPeriod.DateFrom.GetDisplayString(DateFormat.dfDD_MM_YYYY);
                fView.Date2.Text = dtPeriod.DateTo.GetDisplayString(DateFormat.dfDD_MM_YYYY);
                fView.Date1Calendar.SelectedTag = dtPeriod.DateFrom.DateCalendar;
                fView.Date2Calendar.SelectedTag = dtPeriod.DateTo.DateCalendar;
                fView.Date1BC.Checked           = dtPeriod.DateFrom.YearBC;
                fView.Date2BC.Checked           = dtPeriod.DateTo.YearBC;
            }
            else if (date is GEDCOMDate)
            {
                GEDCOMApproximated approximated = (date as GEDCOMDate).Approximated;

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

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

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

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

                fView.Date1.Text = (date as GEDCOMDate).GetDisplayString(DateFormat.dfDD_MM_YYYY);
                fView.Date1Calendar.SelectedTag = (date as GEDCOMDate).DateCalendar;
                fView.Date1BC.Checked           = (date as GEDCOMDate).YearBC;
            }
            else
            {
                fView.EventDateType.SelectedIndex = 0;
                fView.Date1.Text = "";
                fView.Date1Calendar.SelectedTag = GEDCOMCalendar.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 GEDCOMLocationRecord);
            UpdatePlace();

            fView.NotesList.UpdateSheet();
            fView.MediaList.UpdateSheet();
            fView.SourcesList.UpdateSheet();
        }