[ros-diffs] [gedmurphy] 27278: add basic code for saving and reloading individual image config files via the ADO database

gedmurphy at svn.reactos.org gedmurphy at svn.reactos.org
Mon Jun 25 22:10:19 CEST 2007


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=27278&r1=27277&r2=27278&view=diff
==============================================================================
--- 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=27278&r1=27277&r2=27278&view=diff
==============================================================================
--- 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?rev=27278&r1=27277&r2=27278&view=diff
==============================================================================
--- 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();
+        }
     }
 }
 




More information about the Ros-diffs mailing list