Exemplo n.º 1
0
        private void cmdWife_Click(object sender, EventArgs e)
        {
            ItemPicker IP = new ItemPicker();
            string     ID;
            XmlNode    tmpNode;

            if (lblWife.Tag == null)
            {
                ID = IP.ShowDialogAndReturnString("", "INDI");
            }
            else
            {
                ID = IP.ShowDialogAndReturnString(lblWife.Tag.ToString(), "INDI");
            }

            if (ID != "")
            {
                tmpNode = GEDXMLUtilites.GlobalLocateNodeByID(ID, "INDI", MyNode);
                if (tmpNode != null)
                {
                    GEDFileEntryIndi Wife = new GEDFileEntryIndi();
                    Wife.Node    = tmpNode;
                    lblWife.Text = Wife.DisplayName;
                    lblWife.Tag  = ID;
                }
            }
            else
            {
                lblWife.Text = "";
                lblWife.Tag  = "";
            }
        }
Exemplo n.º 2
0
        private void ParseNodeToUIComponents(XmlNode Node)
        {
            XmlNode tmpNode;
            string  sID;

            foreach (XmlNode Child in Node.ChildNodes)
            {
                switch (Child.Name.ToUpper())
                {
                case "HUSB":
                    sID     = Child.Attributes["REF"].Value;
                    tmpNode = GEDXMLUtilites.GlobalLocateNodeByID(sID, "INDI", Child);
                    if (tmpNode != null)
                    {
                        GEDFileEntryIndi Husb = new GEDFileEntryIndi();
                        Husb.Node       = tmpNode;
                        lblHusband.Text = Husb.DisplayName;
                        lblHusband.Tag  = sID;
                    }
                    break;

                case "WIFE":
                    sID     = Child.Attributes["REF"].Value;
                    tmpNode = GEDXMLUtilites.GlobalLocateNodeByID(sID, "INDI", Child);
                    if (tmpNode != null)
                    {
                        GEDFileEntryIndi Wife = new GEDFileEntryIndi();
                        Wife.Node    = tmpNode;
                        lblWife.Text = Wife.DisplayName;
                        lblWife.Tag  = sID;
                    }
                    break;

                case "CHIL":
                    sID     = Child.Attributes["REF"].Value;
                    tmpNode = GEDXMLUtilites.GlobalLocateNodeByID(sID, "INDI", Child);
                    if (tmpNode != null)
                    {
                        GEDFileEntryIndi Chil = new GEDFileEntryIndi();
                        Chil.Node = tmpNode;
                        lstChildren.Items.Add(Chil);
                    }
                    break;

                case "MARR":
                    GEDXMLUtilites.ParseCompoundDate(Child, mdpMarriage);
                    break;

                case "DIV":
                    GEDXMLUtilites.ParseCompoundDate(Child, mdpDivorce);
                    break;

                default:
                    break;
                }
            }
        }
Exemplo n.º 3
0
        public GEDFile(XmlDocument Doc)
        {
            GEDFileEntry Entry;

            // Top level nodes are "Head", "Subm", "Indi", "Fam", "Sour"
            foreach (XmlNode Node in Doc.DocumentElement.ChildNodes)
            {
                Entry = null;

                switch (Node.Name.ToUpper())
                {
                case "HEAD":
                    Entry = new GEDFileEntryHead();
                    break;

                case "SUBM":
                    Entry = new GEDFileEntrySubm();
                    break;

                case "INDI":
                    Entry = new GEDFileEntryIndi();
                    break;

                case "FAM":
                    Entry = new GEDFileEntryFam();
                    break;

                case "SOUR":
                    Entry = new GEDFileEntrySour();
                    break;

                default:

                    frmGEDXmlEditor.Log("Node type not recognised: " + Node.Name);
                    break;
                }
                if (Entry != null)
                {
                    Entry.Node = Node;
                    Entries.Add(Entry);
                }
            }

            // Now, for each family, cross-reference individuals
            foreach (GEDFileEntry FEntry in Entries)
            {
                if (FEntry.ListType() == "FAM")
                {
                    ((GEDFileEntryFam)FEntry).ResolveXrefs();
                }
            }
        }
Exemplo n.º 4
0
        public GEDFileEntry NewEntry(string Type, XmlDocument Doc)
        {
            GEDFileEntry Entry   = null;
            String       sIDCode = "";

            switch (Type)
            {
            case "HEAD":
                Entry   = new GEDFileEntryHead();
                sIDCode = "X";
                break;

            case "SUBM":
                Entry   = new GEDFileEntrySubm();
                sIDCode = "SUB";
                break;

            case "INDI":
                Entry   = new GEDFileEntryIndi();
                sIDCode = "I";
                break;

            case "FAM":
                Entry   = new GEDFileEntryFam();
                sIDCode = "F";
                break;

            case "SOUR":
                Entry   = new GEDFileEntrySour();
                sIDCode = "S";
                break;

            default:
                frmGEDXmlEditor.Log("Node type not recognised: " + Type);
                break;
            }
            if (Entry != null)
            {
                XmlNode Node;
                Node = Doc.CreateElement(Type);
                // Everything will fall apart if we create an element with no ID
                GEDXMLUtilites.SetAttribute("ID", GetNextID(sIDCode), Node);
                Doc.DocumentElement.AppendChild(Node);
                Entry.Node = Node;
                Entries.Add(Entry);
            }

            return(Entry);
        }
Exemplo n.º 5
0
        private void cmdAddChild_Click(object sender, EventArgs e)
        {
            ItemPicker IP = new ItemPicker();
            string     ID;
            XmlNode    tmpNode;

            ID = IP.ShowDialogAndReturnString("", "INDI");

            if (ID != "")
            {
                tmpNode = GEDXMLUtilites.GlobalLocateNodeByID(ID, "INDI", MyNode);
                if (tmpNode != null)
                {
                    GEDFileEntryIndi Chil = new GEDFileEntryIndi();
                    Chil.Node = tmpNode;
                    lstChildren.Items.Add(Chil);
                }
            }
        }