public Artifact(XmlNode node) { // initialize for english/french language mArticleName = new string[2]; mMaterials = new List<Material>(); mKeywords = new List<KeywordPair>(); mStems = new List<StemPair>(); // start pulling data from XML into this artifact // catalog number (non-language specific) mCatalogNumber = node.ChildNodes[0].InnerText; // the date it was added to the catalog float catalogYear = Convert.ToSingle(mCatalogNumber.Substring(0, mCatalogNumber.IndexOf("."))); catalogDate = new VagueDate(catalogYear, catalogYear, 0, VagueDate.Qualifier.Exact); // manufacture date float yearStart = 0; float yearEnd = 0; string qualifier = ""; // get manufacture date try { yearStart = Convert.ToSingle(node.ChildNodes[6].InnerText); if (node.ChildNodes[7].InnerText != "") { yearEnd = Convert.ToSingle(node.ChildNodes[7].InnerText); } qualifier = ExtractLanguage(LANGUAGE_ENGLISH, node.ChildNodes[5].InnerText); } catch (Exception e) { } manufactureDate = new VagueDate(yearStart, yearEnd, 0, VagueDate.ParseQualifier(qualifier)); // use date useDate = node.ChildNodes[14].InnerText; // article name mArticleName[LANGUAGE_ENGLISH] = ExtractLanguage(LANGUAGE_ENGLISH, node.ChildNodes[1].InnerText); mArticleName[LANGUAGE_FRENCH] = ExtractLanguage(LANGUAGE_FRENCH, node.ChildNodes[1].InnerText); // materials if (node.ChildNodes[23] == null) { // no secondary materials PopulateMaterials(node.ChildNodes[22].InnerText, ""); } else { // secondary materials exist PopulateMaterials(node.ChildNodes[22].InnerText, node.ChildNodes[23].InnerText); } // keywords AddKeywordsStems(node.ChildNodes[8].InnerText); AddKeywordsStems(node.ChildNodes[9].InnerText); AddKeywordsStems(node.ChildNodes[10].InnerText); }
public Artifact(XmlNode node) { // initialize for english/french language mArticleName = new string[2]; mMaterials = new List<Material>(); mKeywords = new List<KeywordPair>(); mStems = new List<StemPair>(); text = new SelectableText[2]; // start pulling data from XML into this artifact // catalog number (non-language specific) mCatalogNumber = node.ChildNodes[0].InnerText; texture = XNA.LoadTexture(BohemianArtifact.TexturePath + "artifacts\\" + mCatalogNumber + ".jpg"); // the date it was added to the catalog float catalogYear = Convert.ToSingle(mCatalogNumber.Substring(0, mCatalogNumber.IndexOf("."))); catalogDate = new VagueDate(catalogYear, catalogYear, 0, 0); // manufacture date float yearStart = 0; float yearEnd = 0; string qualifier = ""; // get manufacture date try { yearStart = Convert.ToSingle(node.ChildNodes[6].InnerText); if (node.ChildNodes[7].InnerText != "") { yearEnd = Convert.ToSingle(node.ChildNodes[7].InnerText); } else { yearEnd = yearStart; } qualifier = ExtractLanguage(LANGUAGE_ENGLISH, node.ChildNodes[5].InnerText); } catch (Exception e) { } manufactureDate = new VagueDate(yearStart, yearEnd, VagueDate.ParseQualifier(qualifier)); // get use date yearStart = 0; yearEnd = 0; qualifier = ""; try { yearStart = Convert.ToSingle(node.ChildNodes[26].InnerText); if (node.ChildNodes[27].InnerText != "" && node.ChildNodes[27].InnerText != " ") { yearEnd = Convert.ToSingle(node.ChildNodes[27].InnerText); } else { yearEnd = yearStart; } qualifier = ExtractLanguage(LANGUAGE_ENGLISH, node.ChildNodes[25].InnerText); } catch (Exception e) { } useDate = new VagueDate(yearStart, yearEnd, VagueDate.ParseQualifier(qualifier)); // article name mArticleName[LANGUAGE_ENGLISH] = ExtractLanguage(LANGUAGE_ENGLISH, node.ChildNodes[1].InnerText); mArticleName[LANGUAGE_FRENCH] = ExtractLanguage(LANGUAGE_FRENCH, node.ChildNodes[1].InnerText); text[LANGUAGE_ENGLISH] = new SelectableText(XNA.Font, mArticleName[LANGUAGE_ENGLISH]); text[LANGUAGE_FRENCH] = new SelectableText(XNA.Font, mArticleName[LANGUAGE_FRENCH]); string col = node.ChildNodes[28].InnerText; int r = Convert.ToInt32(col.Substring(1, 3)); int g = Convert.ToInt32(col.Substring(5, 3)); int b = Convert.ToInt32(col.Substring(9, 3)); color = new Color(r, g, b); //r12rg456b789 //012345678901 // materials if (node.ChildNodes[23] == null) { // no secondary materials PopulateMaterials(node.ChildNodes[22].InnerText, ""); } else { // secondary materials exist PopulateMaterials(node.ChildNodes[22].InnerText, node.ChildNodes[23].InnerText); } // keywords AddKeywordsStems(node.ChildNodes[8].InnerText); AddKeywordsStems(node.ChildNodes[9].InnerText); AddKeywordsStems(node.ChildNodes[10].InnerText); function = node.ChildNodes[11].InnerText; canadianSignificance = node.ChildNodes[12].InnerText; techSignificance = node.ChildNodes[13].InnerText; }