Пример #1
0
        private void WriteEventList(PedigreePerson person, ExtList <PedigreeEvent> evList)
        {
            evList.QuickSort(EventsCompare);

            int num3 = evList.Count;

            for (int i = 0; i < num3; i++)
            {
                GEDCOMCustomEvent evt = evList[i].Event;
                if (evt != null && Equals(evList[i].IRec, person.IRec))
                {
                    if (evt.Name == "BIRT")
                    {
                        evList.Exchange(i, 0);
                    }
                    else if (evt.Name == "DEAT")
                    {
                        evList.Exchange(i, evList.Count - 1);
                    }
                }
            }

            fWriter.beginList();

            int num4 = evList.Count;

            for (int i = 0; i < num4; i++)
            {
                PedigreeEvent     evObj = evList[i];
                GEDCOMCustomEvent evt   = evObj.Event;
                string            li;

                if (evObj.IRec == person.IRec)
                {
                    int    ev = GKUtils.GetPersonEventIndex(evt.Name);
                    string st;
                    if (ev == 0)
                    {
                        st = evt.Classification;
                    }
                    else
                    {
                        st = (ev > 0) ? LangMan.LS(GKData.PersonEvents[ev].Name) : evt.Name;
                    }

                    string dt = GKUtils.GEDCOMEventToDateStr(evt, DateFormat.dfDD_MM_YYYY, false);
                    li = dt + ": " + st + ".";
                    if (evt.Place.StringValue != "")
                    {
                        li = li + " " + LangMan.LS(LSID.LSID_Place) + ": " + evt.Place.StringValue;
                    }

                    fWriter.addListItem(" " + li, fTextFont);
                }
                else
                {
                    string dt = (evt == null) ? "?" : GKUtils.GEDCOMEventToDateStr(evt, DateFormat.dfDD_MM_YYYY, false);

                    string st = (evObj.IRec.Sex == GEDCOMSex.svMale) ? ": Родился " : ": Родилась ";

                    li = dt + st + GKUtils.GetNameString(evObj.IRec, true, false);
                    PedigreePerson prs = FindPerson(evObj.IRec);
                    string         id  = (prs != null) ? prs.Id : "";

                    fWriter.addListItemLink(" " + li + " ", fTextFont, id, fLinkFont);
                }
            }

            fWriter.endList();
        }
Пример #2
0
        private void WriteEventList(PedigreePerson person, ExtList <PedigreeEvent> evList)
        {
            evList.QuickSort(EventsCompare);

            int evtNum = evList.Count;

            for (int i = 0; i < evtNum; i++)
            {
                GDMCustomEvent evt = evList[i].Event;
                if (evt != null && Equals(evList[i].IRec, person.IRec))
                {
                    var evtType = evt.GetTagType();

                    if (evtType == GEDCOMTagType.BIRT)
                    {
                        evList.Exchange(i, 0);
                    }
                    else if (evtType == GEDCOMTagType.DEAT)
                    {
                        evList.Exchange(i, evtNum - 1);
                    }
                }
            }

            fWriter.BeginList();

            var dateFormat = GlobalOptions.Instance.DefDateFormat;

            for (int i = 0; i < evtNum; i++)
            {
                PedigreeEvent  evObj = evList[i];
                GDMCustomEvent evt   = evObj.Event;
                string         li;

                if (evObj.IRec == person.IRec)
                {
                    var    evtName = evt.GetTagName();
                    int    ev      = GKUtils.GetPersonEventIndex(evtName);
                    string st;
                    if (ev == 0)
                    {
                        st = evt.Classification;
                    }
                    else
                    {
                        st = (ev > 0) ? LangMan.LS(GKData.PersonEvents[ev].Name) : evtName;
                    }

                    string dt = GKUtils.GEDCOMEventToDateStr(evt, dateFormat, false);
                    li = dt + ": " + st + ".";
                    if (evt.Place.StringValue != "")
                    {
                        li = li + " " + LangMan.LS(LSID.LSID_Place) + ": " + evt.Place.StringValue;
                    }

                    fWriter.AddListItem(" " + li, fTextFont);
                }
                else
                {
                    string dt = (evt == null) ? "?" : GKUtils.GEDCOMEventToDateStr(evt, dateFormat, false);

                    string st = (evObj.IRec.Sex == GDMSex.svMale) ? LangMan.LS(LSID.LSID_HeWasBorn) : LangMan.LS(LSID.LSID_SheWasBorn);

                    li = string.Format("{0}: {1} {2}", dt, st, GKUtils.GetNameString(evObj.IRec, true, false));
                    PedigreePerson prs = FindPerson(evObj.IRec);
                    string         id  = (prs != null) ? prs.Id : "";

                    fWriter.AddListItemLink(" " + li + " ", fTextFont, id, fLinkFont);
                }
            }

            fWriter.EndList();
        }
Пример #3
0
 public void Exchange(int Index1, int Index2)
 {
     Changing();
     fList.Exchange(Index1, Index2);
     Changed();
 }
Пример #4
0
        public void Test_Common()
        {
            using (ExtList <object> list = new ExtList <object>(true))
            {
                Assert.IsNotNull(list);
            }

            using (ExtList <object> list = new ExtList <object>())
            {
                Assert.IsNotNull(list);
                Assert.AreEqual(0, list.Count);

                Assert.Throws(typeof(ListException), () => { list[-1] = null; });

                object obj  = new object();
                object obj1 = new object();

                list.Add(obj);
                Assert.AreEqual(1, list.Count);
                Assert.AreEqual(obj, list[0]);
                Assert.AreEqual(0, list.IndexOf(obj));

                list.Delete(0);
                Assert.AreEqual(0, list.Count);

                list.Add(obj);
                Assert.AreEqual(obj, list.Extract(obj));

                list.Insert(0, obj);

                list[0] = obj;
                Assert.AreEqual(obj, list[0]);

                list.Add(null);
                Assert.AreEqual(2, list.Count);
                Assert.AreEqual(null, list[1]);
                list[1] = obj1;
                Assert.AreEqual(obj1, list[1]);

                list[1] = null;
                Assert.AreEqual(2, list.Count);
                list.Pack();
                Assert.AreEqual(1, list.Count);

                list.Remove(obj);
                Assert.AreEqual(0, list.Count);

                Assert.AreEqual(false, list.OwnsObjects);

                list.OwnsObjects = true;
                Assert.AreEqual(true, list.OwnsObjects);

                list.Clear();
                list.Add(obj);
                list.Add(obj1);
                Assert.AreEqual(obj, list[0]);
                Assert.AreEqual(obj1, list[1]);
                list.Exchange(0, 1);
                Assert.AreEqual(obj, list[1]);
                Assert.AreEqual(obj1, list[0]);
            }

            using (ExtList <ValItem> list = new ExtList <ValItem>())
            {
                Assert.IsNotNull(list);

                list.Add(new ValItem(5));
                list.Add(new ValItem(1));
                list.Add(new ValItem(17));
                list.Add(new ValItem(4));

                list.QuickSort(CompareItems);

                list.MergeSort(CompareItems);
            }
        }