public virtual void FromXml(XmlElement xmlEle, IXmlContext cnt) { XmlElement _infoEle = xmlEle["info"]; if (null != _infoEle) { _mkaInfo = cnt.FromXml(_infoEle as XmlElement) as MkaMokkanInfo; } XmlElement _formatEle = xmlEle["format"]; if (null != _formatEle) { _mkaInfo.Properties = cnt.FromXml(_formatEle as XmlElement) as GraphicsProperties; } }
/// <summary> /// Load glass information from xml file /// </summary> private MkaDocument FileLoadGlass(String filename) { XmlDocument doc = new XmlDocument(); doc.Load(filename); // Deserialize object from xml format IXmlFormatter formatter = FepXmlableFactory.CreateXmlFormatter(); IXmlContext cnt = FepXmlableFactory.CreateXmlContext(formatter, doc); XmlElement _eleBat = cnt.Document.DocumentElement; XmlNode _eleGlass = _eleBat.FirstChild; XmlNode _eleMk = _eleGlass.FirstChild; MkaDocument mkaDoc = new MkaDocument(null); mkaDoc.GlassInfo = cnt.FromXml(_eleGlass as XmlElement) as MkaGlassInfo; mkaDoc.BatInfo = cnt.FromXml(_eleBat as XmlElement) as MkaBatInfo; mkaDoc.MokkanList = cnt.FromXml(_eleMk as XmlElement) as MokkanList; mkaDoc.BatInfo.BatDirectory = Path.GetDirectoryName(filename); mkaDoc.GlassInfo.GlassFilePath = filename; mkaDoc.GlassInfo.MokkanKazu = mkaDoc.MokkanList.Count; mkaDoc.GlassImage = Path.GetDirectoryName(filename) + "\\" + mkaDoc.GlassInfo.ImageFileName; int maxRid = mkaDoc.MokkanList.GetMaxRBangou() + 1; if (maxRid == 1) { MkaMokkanInfo.LastRBangou = mkaDoc.GlassInfo.KaishiRBangou; } else { MkaMokkanInfo.LastRBangou = maxRid; } mkaDoc.MokkanList.KaishiRBangou = MkaMokkanInfo.LastRBangou; return(mkaDoc); }
void IXmlable.FromXml(XmlElement xmlEle, IXmlContext cnt) { this._mokkanObjList.Clear(); DrawObject.Ratio = 1.0f; DrawObject.Origin = new Point(0, 0); foreach (XmlElement objEle in xmlEle) { DrawObject obj = cnt.FromXml(objEle) as DrawObject; System.Diagnostics.Debug.Assert(null != obj); if (null != obj) { obj.Calculate(); _mokkanObjList.Add(obj); } } }