Author: gedmurphy Date: Tue Jun 26 00:10:19 2007 New Revision: 27278
URL: http://svn.reactos.org/svn/reactos?rev=27278&view=rev Log: add basic code for saving and reloading individual image config files via the ADO database
Modified: trunk/tools/RosTE/GUI/MainConfig.cs trunk/tools/RosTE/GUI/MainForm.cs trunk/tools/RosTE/GUI/VirtualMachine.cs
Modified: trunk/tools/RosTE/GUI/MainConfig.cs URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosTE/GUI/MainConfig.cs?rev=2... ============================================================================== --- trunk/tools/RosTE/GUI/MainConfig.cs (original) +++ trunk/tools/RosTE/GUI/MainConfig.cs Tue Jun 26 00:10:19 2007 @@ -27,20 +27,38 @@ // and remove the need for LoadExistingImages / AddVirtMach / DeleteVirtMach }
- public int GetNumberOfVms() + public bool LoadMainConfig() { - DataTable dt = data.DataSet.Tables["MainConfig"]; - return dt.Rows.Count; + bool ret = false; + string fileName = "Config.xml"; + + if (File.Exists(fileName)) + { + FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); + XmlTextReader xtr = new XmlTextReader(fs); + data.DataSet.ReadXml(xtr, System.Data.XmlReadMode.ReadSchema); + xtr.Close(); + ret = true; + } + + return ret; }
- public VirtualMachine GetExistingImage(int index) + public void SaveMainConfig() + { + string fileName = "Config.xml"; + FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write); + XmlTextWriter xtw = new XmlTextWriter(fs, System.Text.Encoding.Unicode); + data.DataSet.WriteXml(xtw, System.Data.XmlWriteMode.WriteSchema); + xtw.Close(); + } + + public string GetExistingImage(int index) { DataTable dt = data.DataSet.Tables["MainConfig"]; DataRow dr = dt.Rows[index];
- VirtualMachine vm = new VirtualMachine(data); - vm.LoadVirtMach((string)dr["Path"]); - return vm; + return (string)dr["Path"]; }
public int AddVirtMach(string Path) @@ -62,30 +80,10 @@ dt.Rows.RemoveAt(index); }
- public void SaveMainConfig() + public int GetNumberOfVms() { - string fileName = "Config.xml"; - FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write); - XmlTextWriter xtw = new XmlTextWriter(fs, System.Text.Encoding.Unicode); - data.DataSet.WriteXml(xtw, System.Data.XmlWriteMode.WriteSchema); - xtw.Close(); - } - - public bool LoadMainConfig() - { - bool ret = false; - string fileName = "Config.xml"; - - if (File.Exists(fileName)) - { - FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); - XmlTextReader xtr = new XmlTextReader(fs); - data.DataSet.ReadXml(xtr, System.Data.XmlReadMode.ReadSchema); - xtr.Close(); - ret = true; - } - - return ret; + DataTable dt = data.DataSet.Tables["MainConfig"]; + return dt.Rows.Count; } } }
Modified: trunk/tools/RosTE/GUI/MainForm.cs URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosTE/GUI/MainForm.cs?rev=272... ============================================================================== --- trunk/tools/RosTE/GUI/MainForm.cs (original) +++ trunk/tools/RosTE/GUI/MainForm.cs Tue Jun 26 00:10:19 2007 @@ -47,9 +47,13 @@ int num = mainConf.GetNumberOfVms(); for (int i = 0; i < num; i++) { - VirtualMachine vm = mainConf.GetExistingImage(i); - ListViewItem lvi = VirtMachListView.Items.Add(vm.ToString(), 0); - lvi.Tag = vm; + string image = mainConf.GetExistingImage(i); + VirtualMachine vm = new VirtualMachine(vmData); + if (vm.LoadVMConfig(image)) + { + ListViewItem lvi = VirtMachListView.Items.Add(vm.ToString(), 0); + lvi.Tag = vm; + } } } } @@ -145,6 +149,12 @@ private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { mainConf.SaveMainConfig(); + + for (int i = 0; i < vmConfigs.Count; i++) + { + VirtualMachine vm = (VirtualMachine)vmConfigs[i]; + vm.SaveVMConfig(); + } } } }
Modified: trunk/tools/RosTE/GUI/VirtualMachine.cs URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosTE/GUI/VirtualMachine.cs?r... ============================================================================== --- trunk/tools/RosTE/GUI/VirtualMachine.cs (original) +++ trunk/tools/RosTE/GUI/VirtualMachine.cs Tue Jun 26 00:10:19 2007 @@ -1,12 +1,8 @@ using System; using System.IO; -using System.Collections.Generic; using System.Collections.Specialized; -using System.ComponentModel; using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; +using System.Xml;
namespace RosTEGUI { @@ -15,8 +11,6 @@ private Data data; private DataRow dataRow; private string machine; - private StringCollection floppy; - private StringCollection hardDisk; private string cdrom; private char boot; private string snapshot; @@ -27,14 +21,13 @@
public string Name { - get - { - return (string)dataRow["Name"]; - } - set - { - dataRow["Name"] = value; - } + get { return (string)dataRow["Name"]; } + set { dataRow["Name"] = value; } + } + + public string DefDir + { + get { return (string)dataRow["DefDir"]; } }
public string Machine @@ -42,16 +35,8 @@ get { return machine; } set { machine = value; } } - public StringCollection Floppy - { - get { return floppy; } - // no set, use Floppy.Add() - } - public StringCollection HardDisk - { - get { return hardDisk; } - // no set, use HardDisk.Add() - } + + public string Cdrom { get { return cdrom; } @@ -116,9 +101,6 @@ public VirtualMachine(Data dataIn) { data = dataIn; - - DataTable dt = data.DataSet.Tables["VMConfig"]; - dataRow = dt.NewRow(); }
// default @@ -148,21 +130,62 @@ dir = di.FullName; }
+ DataTable dt = data.DataSet.Tables["VMConfig"]; + int i = dt.Rows.Count + 1; + dataRow = dt.NewRow(); + dataRow["VirtMachID"] = i; + dataRow["Name"] = name; + dataRow["MachType"] = "test"; + dataRow["DefDir"] = dir; + dataRow["MemSize"] = memSize; + dataRow["CdRomEnable"] = true; + dataRow["CdRomUsePhys"] = false; + dataRow["CdRomPhyDrv"] = "R:"; + dataRow["CdRomUseIso"] = true; + dataRow["CdRomIsoImg"] = "err"; + dataRow["FloppyEnable"] = true; + dataRow["FloppyUsePhys"] = true; + dataRow["FloppyPhyDrive"] = "A:"; + dataRow["FloppyUseImg"] = false; + dataRow["FloppyIsoImg"] = "err"; + + dt.Rows.Add(dataRow); + Name = name; - - MessageBox.Show(name + " " + dir + " " + diskSize + " " + existImg + " " + memSize);
return ret; }
- public bool LoadVirtMach(string path) + public bool LoadVMConfig(string path) { bool ret = false; + string fileName = path + "\Config.xml";
+ if (File.Exists(fileName)) + { + FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); + XmlTextReader xtr = new XmlTextReader(fs); + data.DataSet.ReadXml(xtr, System.Data.XmlReadMode.ReadSchema); + xtr.Close(); + + DataTable dt = data.DataSet.Tables["VMConfig"]; + dataRow = dt.Rows[0]; + + ret = true; + }
return ret; }
+ public void SaveVMConfig() + { + string fileName = DefDir + "\Config.xml"; + Directory.CreateDirectory(DefDir); + FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write); + XmlTextWriter xtw = new XmlTextWriter(fs, System.Text.Encoding.Unicode); + data.DataSet.WriteXml(xtw, System.Data.XmlWriteMode.WriteSchema); + xtw.Close(); + } } }