public void LoadSetting(System.Windows.Forms.Control control, string hardName, string defaultValue) { SettingsMenagerStructure2 defaultSetting; foreach (SettingsMenagerStructure2 setting in Items) { if (setting.HardName == hardName) { setting.SetValueToControl(control); return; } } if (defaultValue != null) { // control not find in collection, set default value defaultSetting = new SettingsMenagerStructure2(control, hardName); defaultSetting.SetValueToControl(control, defaultValue); } }
public void Add(SettingsMenagerStructure2 setting) { SettingsMenagerStructure2 itemSetting; for (int i = 0; i < list.Count; i++) { itemSetting = (SettingsMenagerStructure2)list[i]; if (itemSetting.HardName == setting.HardName) { list[i] = setting; return; } } list.Add(setting); }
/// <summary> /// Load settings in memory and then call refresh event /// </summary> /// <param name="path">Path to xml file</param> public void LoadFromFile(string path) { XmlDocument xmlDocument; XmlNodeList xmlNodeList; XmlNode xmlNode; XmlNode valueElement; XmlNode defaultValueElement; SettingsMenagerStructure2 setting; SettingsMenager2.Type type; int fileVersion; try { Log.Write(new string[] { "Loading settings...", path }, this, "LoadFromFile", Log.LogType.DEBUG); // load file in xml document DOM xmlDocument = new XmlDocument(); xmlDocument.Load(path); // select root node, get settings version xmlNode = xmlDocument.SelectSingleNode(XPATH_SELECT_ROOT); fileVersion = int.Parse(xmlNode.Attributes["version"].Value); // log warning if (fileVersion != VERSION) { Log.Write("Version of the files different than expected, attempting to load...", this, "LoadFromFile", Log.LogType.WARNING); } xmlNodeList = xmlDocument.SelectNodes(XPATH_SELECT_SETTING); // clear items before load Items.Clear(); foreach (XmlNode settingNode in xmlNodeList) { valueElement = settingNode.SelectSingleNode(XPATH_SELECT_SETTING_VALUE); defaultValueElement = settingNode.SelectSingleNode(XPATH_SELECT_SETTING_DEFAULT); type = GetTypeFromString(settingNode.Attributes["type"].Value); setting = new SettingsMenagerStructure2(settingNode.Attributes["name"].Value, settingNode.Attributes["hardname"].Value, valueElement.InnerText, defaultValueElement.InnerText, type); Items.Add(setting); } // Call refresh event to reflect settings on control if (Refresh != null) { Refresh(this, new EventArgs()); } } catch (Exception ex) { Log.Write(ex, this, "LoadFromFile", Log.LogType.ERROR); } }