From: <fr...@us...> - 2008-05-20 05:52:21
|
Revision: 1799 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1799&view=rev Author: framug Date: 2008-05-19 22:52:09 -0700 (Mon, 19 May 2008) Log Message: ----------- - XmlConfig for setup Modified Paths: -------------- trunk/plugins/MyStatus/My Status.csproj trunk/plugins/MyStatus/SetupForm.cs Added Paths: ----------- trunk/plugins/MyStatus/XmlConfig.cs Modified: trunk/plugins/MyStatus/My Status.csproj =================================================================== --- trunk/plugins/MyStatus/My Status.csproj 2008-05-20 04:31:48 UTC (rev 1798) +++ trunk/plugins/MyStatus/My Status.csproj 2008-05-20 05:52:09 UTC (rev 1799) @@ -63,6 +63,7 @@ <Compile Include="SetupForm.cs"> <SubType>Form</SubType> </Compile> + <Compile Include="XmlConfig.cs" /> </ItemGroup> <ItemGroup> <EmbeddedResource Include="SetupForm.resx"> Modified: trunk/plugins/MyStatus/SetupForm.cs =================================================================== --- trunk/plugins/MyStatus/SetupForm.cs 2008-05-20 04:31:48 UTC (rev 1798) +++ trunk/plugins/MyStatus/SetupForm.cs 2008-05-20 05:52:09 UTC (rev 1799) @@ -521,7 +521,7 @@ this.label15.Name = "label15"; this.label15.Size = new System.Drawing.Size(64, 16); this.label15.TabIndex = 33; - this.label15.Text = "mHz"; + this.label15.Text = "Mhz"; // // checkBox13 // @@ -1147,7 +1147,7 @@ /// </summary> private void SaveSettings() { - using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MyStatus.xml"))) +/* using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MyStatus.xml"))) { xmlwriter.SetValueAsBool("status", "status_is_mbm", isMbm); xmlwriter.SetValueAsBool("status", "status_bar_show", checkBox39.Checked); @@ -1213,7 +1213,76 @@ xmlwriter.SetValueAsBool("status", "status_lwx", checkBox35.Checked); xmlwriter.SetValueAsBool("status", "status_lwy", checkBox34.Checked); xmlwriter.SetValueAsBool("status", "status_lwz", checkBox33.Checked); - } + } */ + + XmlConfig XmlConfig = new XmlConfig(); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_is_mbm", isMbm); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_bar_show", checkBox39.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_bar_top", checkBox40.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_bar_bottom", checkBox41.Checked); + if (checkBox39.Checked == true) + { + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_bar_sensor", comboBox1.Items[comboBox1.SelectedIndex].ToString()); + } + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_sound_folder", textBox1.Text); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_hd_threshold", textBox2.Text); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_temp1", checkBox1.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_temp1i", aTemperature[1]); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_temp2", checkBox2.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_temp2i", aTemperature[2]); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_temp3", checkBox3.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_temp3i", aTemperature[3]); + + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_fan1", checkBox6.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_fan1i", aFan[1]); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_fan2", checkBox5.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_fan2i", aFan[2]); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_fan3", checkBox4.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_fan3i", aFan[3]); + + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_volt1", checkBox9.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_volt1i", aVolt[1]); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_volt2", checkBox8.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_volt2i", aVolt[2]); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_volt3", checkBox7.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_volt3i", aVolt[3]); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_volt4", checkBox12.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_volt4i", aVolt[4]); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_volt5", checkBox11.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_volt5i", aVolt[5]); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_volt6", checkBox11.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_volt6i", aVolt[6]); + + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_mhz1", checkBox13.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_mhz1i", aMhz[1]); + + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_perc1", checkBox15.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_perc1i", aPercentage[1]); + + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwc", checkBox14.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwd", checkBox16.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwe", checkBox17.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwf", checkBox20.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwg", checkBox19.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwh", checkBox18.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwi", checkBox26.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwj", checkBox25.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwk", checkBox24.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwl", checkBox23.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwm", checkBox22.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwn", checkBox21.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwo", checkBox32.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwp", checkBox31.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwq", checkBox30.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwr", checkBox29.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lws", checkBox28.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwt", checkBox27.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwu", checkBox38.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwv", checkBox37.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lww", checkBox36.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwx", checkBox35.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwy", checkBox34.Checked); + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_lwz", checkBox33.Checked); } /// <summary> @@ -1221,8 +1290,7 @@ /// </summary> private void LoadSettings() { - bool isver = false; - using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MyStatus.xml"))) +/* using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MyStatus.xml"))) { int ver = 0; ver = xmlreader.GetValueAsInt("status", "status_ver", 0); @@ -1281,7 +1349,65 @@ { xmlwriter.SetValue("status", "status_ver", statusVer); } - } + } */ + + XmlConfig XmlConfig = new XmlConfig(); + bool isver = false; + int ver = 0; + ver = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_ver", 0); + if (ver != statusVer) + { + isver = false; + } + else + { + isver = true; + textBox2.Text = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_hd_threshold", "100"); + textBox1.Text = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_sound_folder", "C:\\windows\\media"); + checkBox1.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_temp1", false); + checkBox2.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_temp2", false); + checkBox3.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_temp3", false); + checkBox6.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_fan1", false); + checkBox5.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_fan2", false); + checkBox4.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_fan3", false); + checkBox9.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_volt1", false); + checkBox8.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_volt2", false); + checkBox7.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_volt3", false); + checkBox12.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_volt4", false); + checkBox11.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_volt5", false); + checkBox10.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_volt6", false); + checkBox13.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_mhz1", false); + checkBox15.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_perc1", false); + checkBox14.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwc", false); + checkBox16.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwd", false); + checkBox17.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwe", false); + checkBox20.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwf", false); + checkBox19.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwg", false); + checkBox18.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwh", false); + checkBox26.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwi", false); + checkBox25.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwj", false); + checkBox24.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwk", false); + checkBox23.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwl", false); + checkBox22.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwm", false); + checkBox21.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwn", false); + checkBox32.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwo", false); + checkBox31.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwp", false); + checkBox30.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwq", false); + checkBox29.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwr", false); + checkBox28.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lws", false); + checkBox27.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwt", false); + checkBox38.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwu", false); + checkBox37.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwv", false); + checkBox36.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lww", false); + checkBox35.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwx", false); + checkBox34.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwy", false); + checkBox33.Checked = XmlConfig.ReadXmlConfig("MyStatus", "status", "status_lwz", false); + } + + if (isver == false) + { + XmlConfig.WriteXmlConfig("MyStatus", "status", "status_ver", statusVer); + } } #endregion Added: trunk/plugins/MyStatus/XmlConfig.cs =================================================================== --- trunk/plugins/MyStatus/XmlConfig.cs (rev 0) +++ trunk/plugins/MyStatus/XmlConfig.cs 2008-05-20 05:52:09 UTC (rev 1799) @@ -0,0 +1,320 @@ +#region Banneer +/* + * Copyright (C) 2008 framug + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ +#endregion + +#region HowToUse +/* + * Purpose of this class is to manage a xml config file. + * The generated file is MediaPortal xml config file compatible. + * It has been written in case of you have your own plugin save button or, you don't want + * to use MediaPortal.Configuration and MediaPortal.Profile in your plugin classes. + * ie : using (Settings ReadOrWriteXml = new Settings(Config.GetFile(Config.Dir.Config, PluginName()))) + * { ReadOrWriteXml = ... } + * + * How to use : + * - Add this class to your project. + * - Change namespace of this class with your own plugin name. + * + * - Call methods in your own plugin this way for writing : + * XmlConfig XmlConfig = new XmlConfig(); + * XmlConfig.WriteXmlConfig(StringFileName, StringSectionName, StringEntryName, StringValueName); + * XmlConfig.WriteXmlConfig(StringFileName, StringSectionName, StringEntryName, BoolValueName); + * XmlConfig.WriteXmlConfig(StringFileName, StringSectionName, StringEntryName, IntValueName); + * + * - Call methods in your own plugin this way for reading : + * XmlConfig XmlConfig = new XmlConfig(); + * YourString = XmlConfig.ReadXmlConfig(StringFileName, StringSectionName, StringEntryName, StringValueDefaultName); + * YourBool = XmlConfig.ReadXmlConfig(StringFileName, StringSectionName, StringEntryName, BoolValueDefaultName); + * YourInt = XmlConfig.ReadXmlConfig(StringFileName, StringSectionName, StringEntryName, IntValueDefaultName); + * + * - Call methods in your own plugin this way for removing entry : + * XmlConfig XmlConfig = new XmlConfig(); + * XmlConfig.RemoveEntry(StringFileName, StringSectionName, StringEntryName); + * + */ +#endregion + +#region using +using System; +using System.IO; // For I/O file +using System.Collections.Generic; +using System.Text; +using System.Xml; // For XmlDocument +using MediaPortal.Configuration; // For recover install MediaPortal path +#endregion + +namespace GUIStatus +{ + class XmlConfig + { + +#region <<DECLARATION>> + XmlDocument configxml = new XmlDocument(); +#endregion + +#region <<public>> + + // Recover install MediaPortal path + public string PathInstalMP() + { + string path = Config.GetFolder(Config.Dir.Config); + return path; + } + + // Build entire filename of config file + public string EntireFilenameConfig(string FileName) + { + string entirefilename = PathInstalMP() + @"\" + FileName + ".xml"; + return entirefilename; + } + + // Called with bool type + public void WriteXmlConfig(string FileName, string Section, string Entry, bool Value) + { + string value = ""; + // Change true by "yes" and false by "no" for xml MediaPortal compatibility + if (Value) + { + value = "yes"; + } + else + { + value = "no"; + } + + WriteXmlConfig(FileName, Section, Entry, value); + } + + // Called with decimal type + public void WriteXmlConfig(string FileName, string Section, string Entry, decimal Value) + { + string value = Value.ToString(); + + WriteXmlConfig(FileName, Section, Entry, value); + } + + // Write a config file with XmlDocument + public void WriteXmlConfig(string FileName, string Section, string Entry, string Value) + { + // Create file if doesn't exist + if (!File.Exists(EntireFilenameConfig(FileName))) + { + CreateXmlConfig(FileName); + } + + //Open xml document + configxml.Load(EntireFilenameConfig(FileName)); + //Recover profile node + XmlElement profile = configxml.DocumentElement; + //Create section if doesn't exist + String XPath = @"/profile/section[@name='" + Section + "']"; + XmlNodeList ListSection = configxml.SelectNodes(XPath); + if (ListSection.Count < 1) + { + CreateSection(Section); + } + //Posit on section node + XmlNode section = profile.SelectSingleNode("section[@name='" + Section + "']"); + + //Create Entry if doesn't exist + XPath = @"/profile/section[@name='" + Section + "']/entry[@name='" + Entry + "']"; + XmlNodeList ListEntry = configxml.SelectNodes(XPath); + if (ListEntry.Count < 1) + { + CreateEntry(Section, Entry); + } + //Posit on entry node + XmlNode entry = section.SelectSingleNode("entry[@name='" + Entry + "']"); + + //Store entry value + entry.InnerText = Value; + + //Save xml config file + configxml.Save(EntireFilenameConfig(FileName)); + } + + // Remove an Entry + public void RemoveEntry(string FileName, string Section, string Entry) + { + // Return if xml file doesn't exist + if (!File.Exists(EntireFilenameConfig(FileName))) + { + return; + } + + //Open xml document + configxml.Load(EntireFilenameConfig(FileName)); + //Recover profile node + XmlElement profile = configxml.DocumentElement; + + //Posit on value + String XPath = @"/profile/section[@name='" + Section + "']/entry[@name='" + Entry + "']"; + XmlNodeList ListEntry = configxml.SelectNodes(XPath); + + // If value exist, remove it otherwise, return + if (ListEntry.Count > 0) + { + //Posit on section node + XmlNode section = profile.SelectSingleNode("section[@name='" + Section + "']"); + //Posit on entry node + XmlNode entry = section.SelectSingleNode("entry[@name='" + Entry + "']"); + //Remove the entry node for section + section.RemoveChild(entry); + //Save xml config file + configxml.Save(EntireFilenameConfig(FileName)); + } + return; + } + + // Called with bool type + public bool ReadXmlConfig(string FileName, string Section, string Entry, bool Value) + { + // Change true by "yes" and false by "no" for xml MediaPortal compatibility + string value = Value.ToString(); + if (Value) + { + value = "yes"; + } + else + { + value = "no"; + } + + string result = ReadXmlConfig(FileName, Section, Entry, value); + + // Change "yes" by true and "no" by false for xml MediaPortal compatibility + if (result == "yes") + { + Value = true; + } + else + { + Value = false; + } + + return Value; + } + + // Called with int type + public int ReadXmlConfig(string FileName, string Section, string Entry, int Value) + { + string value = Value.ToString(); + + string result = ReadXmlConfig(FileName, Section, Entry, value); + + Value = Convert.ToInt32(result); + + return Value; + } + + // Read xml config file with XmlDocument + public string ReadXmlConfig(string FileName, string Section, string Entry, string Value) + { + // Default value if xml file doesn't exist + if (!File.Exists(EntireFilenameConfig(FileName))) + { + return Value; + } + + //Open xml document + configxml.Load(EntireFilenameConfig(FileName)); + //Recover profile node + XmlElement profile = configxml.DocumentElement; + + //Posit on value + String XPath = @"/profile/section[@name='" + Section + "']/entry[@name='" + Entry + "']"; + XmlNodeList ListEntry = configxml.SelectNodes(XPath); + + // If value exist, return it otherwise, return default value + if (ListEntry.Count > 0) + { + //Posit on section node + XmlNode section = profile.SelectSingleNode("section[@name='" + Section + "']"); + //Posit on entry node + XmlNode entry = section.SelectSingleNode("entry[@name='" + Entry + "']"); + //Recover value with entry data + Value = entry.InnerText; + } + + return Value; + } + +#endregion + +#region <<private>> + + // Create xml config file with profile node + private void CreateXmlConfig(string FileName) + { + XmlDocument configxml = new XmlDocument(); + //Declaration of XML document type (utf-8, same as MediaPortal) + XmlDeclaration declaration = configxml.CreateXmlDeclaration("1.0", "utf-8", ""); + //Add declaration to document + configxml.AppendChild(declaration); + //Create profile node + XmlNode profile = configxml.CreateNode(System.Xml.XmlNodeType.Element, "profile", ""); + //Add node to document + configxml.AppendChild(profile); + + //Save xml config file + configxml.Save(EntireFilenameConfig(FileName)); + } + + // create section node + private void CreateSection(string Section) + { + //Recover profile node + XmlElement profile = configxml.DocumentElement; + //Create new section node + XmlNode section = configxml.CreateElement("section"); + //Add "name" attribute to section node + XmlAttribute name = configxml.CreateAttribute("name"); + //value is section name + name.Value = Section; + //Add value to section + section.Attributes.Append(name); + //Add section to document + profile.AppendChild(section); + } + + // create entry node + private void CreateEntry(string Section, string Entry) + { + //Recover profile node + XmlElement profile = configxml.DocumentElement; + //Posit on section node + XmlNode section = profile.SelectSingleNode("section[@name='" + Section + "']"); + //Create new node for entry + XmlNode entry = configxml.CreateElement("entry"); + //Add "name" attribute to entry node + XmlAttribute name = configxml.CreateAttribute("name"); + //value is entry name + name.Value = Entry; + //Add value to entry + entry.Attributes.Append(name); + //Add entry to document + section.AppendChild(entry); + } + +#endregion + + } // end of class +} // end of namespace This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |