private void CreateDefaultAttributes() { MobiseConfiguration parent = this.Parent as MobiseConfiguration; if (parent != null) { foreach (AttributeCategoryModel category in parent.baseControlAttributes) { AttributeCategoryModel newCategory = new AttributeCategoryModel(this); newCategory.FromXml(category.ToXml()); this.AttributeCategories.Add(newCategory); } } }
/// <summary> /// Froms the XML. /// </summary> /// <param name="xml">The XML.</param> /// <exception cref="System.NotImplementedException"></exception> public override void FromXml(XElement xml) { this.Name = xml.Attribute("name") != null?xml.Attribute("name").Value : string.Empty; this.Description = xml.Attribute("description") != null?xml.Attribute("description").Value : string.Empty; this.IconUrl = xml.Attribute("iconUrl") != null?xml.Attribute("iconUrl").Value : string.Empty; this.ContainerType = xml.Attribute("ContainerType") != null?xml.Attribute("ContainerType").Value : string.Empty; this.ContainerPropertyTypes = xml.Attribute("ContainerPropertyTypes") != null?xml.Attribute("ContainerPropertyTypes").Value : string.Empty; this.ContainerProperty = xml.Attribute("ContainerProperty") != null?xml.Attribute("ContainerProperty").Value : string.Empty; this.Browsable = xml.Attribute("browsable") != null?bool.Parse(xml.Attribute("browsable").Value) : true; if (xml.Attribute("class") != null) { this.DefaultStyleClass = xml.Attribute("class").Value; } XElement designerAttributesElement = xml.Element("designerAttributes"); if (designerAttributesElement != null && designerAttributesElement.HasElements) { foreach (XElement element in designerAttributesElement.Elements()) { string key = element.Attribute("name") != null?element.Attribute("name").Value.ToLowerInvariant() : string.Empty; string value = element.Attribute("value") != null?element.Attribute("value").Value : string.Empty; if (!string.IsNullOrEmpty(key)) { this.DesignerAttributes[key] = value; } } } if (this.DesignerAttributes.ContainsKey("portraitwidth") || this.DesignerAttributes.ContainsKey("portraitheight")) { double width = 100, height = 40; width = this.DesignerAttributes.ContainsKey("portraitwidth") ? double.Parse(this.DesignerAttributes["portraitwidth"]) : 100; height = this.DesignerAttributes.ContainsKey("portraitheight") ? double.Parse(this.DesignerAttributes["portraitheight"]) : 40; this.AttributeCategories[1].ControlAttributes[0].DefaultValue = new Rect(0, 0, width, height); if (this.Name.Equals("screen", StringComparison.OrdinalIgnoreCase) || this.Name.Equals("view", StringComparison.OrdinalIgnoreCase)) { this.AttributeCategories[1].ControlAttributes[1].DefaultValue = new Rect(0, 0, height, width); } else { this.AttributeCategories[1].ControlAttributes[1].DefaultValue = new Rect(0, 0, width, height); } } if (this.DesignerAttributes.ContainsKey("landscapewidth") || this.DesignerAttributes.ContainsKey("landscapeheight")) { double width = 100, height = 40; width = this.DesignerAttributes.ContainsKey("landscapewidth") ? double.Parse(this.DesignerAttributes["landscapewidth"]) : 100; height = this.DesignerAttributes.ContainsKey("landscapeheight") ? double.Parse(this.DesignerAttributes["landscapeheight"]) : 40; this.AttributeCategories[1].ControlAttributes[1].DefaultValue = new Rect(0, 0, width, height); } XElement AttributeCategoriesElement = xml.Element("AttributeCategories"); if (AttributeCategoriesElement != null && AttributeCategoriesElement.HasElements) { int numOfCategories = this.AttributeCategories.Count(); foreach (XElement item in AttributeCategoriesElement.Elements()) { bool created = false; string categoryName = item.Attribute("name") != null?item.Attribute("name").Value : string.Empty; AttributeCategoryModel category = this.AttributeCategories.FirstOrDefault(c => c.Name == categoryName); if (category == null) { created = true; category = new AttributeCategoryModel(this); category.FromXml(item); this.AttributeCategories.Add(category); } else { category.FromXml(item); } } } XElement VisualStatesDefinitionsElement = xml.Element("VisualStates"); if (VisualStatesDefinitionsElement != null && VisualStatesDefinitionsElement.HasElements) { foreach (XElement item in VisualStatesDefinitionsElement.Elements()) { string stateName = item.Attribute("name") != null?item.Attribute("name").Value : string.Empty; VisualStateDefinitionModel visualState = this.VisualStates.FirstOrDefault(c => c.Name == stateName); if (visualState == null) { visualState = new VisualStateDefinitionModel(); this.VisualStates.Add(visualState); } visualState.FromXml(item); } } }