public bool ResetToIC() { foreach (var v in interface_prop_initial_value) { PropertyNode node = v.Key; if (!node.GetAttribute(PropertyNode.Attribute.PRESERVE)) { node.Set(v.Value); } } return(true); }
public void Load(XmlElement el, PropertyManager PM, bool _override) { XmlNodeList elemList = el.GetElementsByTagName("property"); if (elemList.Count > 0 && log.IsDebugEnabled) { string cout = "\n "; if (_override) { cout += "Overriding"; } else { cout += "Declared"; } cout += " properties \n\n"; log.Debug(cout); } foreach (XmlNode xmlNode in elemList) { if (xmlNode.NodeType == XmlNodeType.Element) { XmlElement property_element = xmlNode as XmlElement; PropertyNode node = null; double value = 0.0; if (!string.IsNullOrEmpty(property_element.GetAttribute("value"))) { value = double.Parse(property_element.GetAttribute("value")); } string interface_property_string = property_element.InnerText; if (PM.HasNode(interface_property_string)) { if (_override) { node = PM.GetNode(interface_property_string); if (log.IsDebugEnabled) { if (interface_prop_initial_value.ContainsKey(node)) { log.Debug(" The following property will be overridden but it has not been\n" + " defined in the current model '" + el.Name + "'"); } log.Debug(" " + "Overriding value for property " + interface_property_string + "\n" + " (old value: " + node.Get() + " new value: " + value + ")"); } node.Set(value); } else { log.Error(" Property " + interface_property_string + " is already defined."); continue; } } else { node = PM.GetNode(interface_property_string, true); if (node != null) { node.Set(value); if (log.IsDebugEnabled) { log.Debug(" " + interface_property_string + " (initial value: " + value + ")"); } ; } else { log.Error("Could not create property " + interface_property_string);; continue; } } interface_prop_initial_value[node] = value; if (property_element.GetAttribute("persistent") == "true") { node.SetAttribute(PropertyNode.Attribute.PRESERVE, true); } } // End of interface property loading logic } }