]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blobdiff - demo/src/Vistas/ABMGenerico.cs
update...
[z.facultad/75.10/miklolife.git] / demo / src / Vistas / ABMGenerico.cs
index 4e185db27d25285f88065b3c26e8fb064dc7d5f6..ceb15d32d21ffcabf25845bba2b8ab2b43fca36b 100644 (file)
@@ -5,14 +5,19 @@ using System.Collections;
 using Gtk;
 using Glade;
 
+using Controlador;
+
 public class ABMGenerico
 {
        Glade.XML xml;
        [Widget] Table tabla;
        Type current;
+       Hashtable widgets;
 
        public ABMGenerico (Type objectType)
        {
+               widgets = new Hashtable ();
+
                PropertyInfo[] properties = objectType.GetProperties ();
                current = objectType;
                
@@ -28,6 +33,7 @@ public class ABMGenerico
                                tabla.Attach (e, 1, 2, i, i+1);
                                l.Show ();
                                e.Show ();
+                               widgets[mf.Name] = e;
                        }
                        i++;
                }
@@ -66,8 +72,31 @@ public class ABMGenerico
        {
                if (args.ResponseId == ResponseType.Cancel)
                        return; 
-       }
+       
+               PropertyInfo[] properties = current.GetProperties ();
+
+               System.Object output = Activator.CreateInstance (current);
+               
+               foreach (string key in widgets.Keys) {
+                       PropertyInfo p = current.GetProperty (key);
+                       Entry e = (Entry)widgets[key];
+                       Console.WriteLine ("{0} = {1}", key, e.Text);
+                       if (p.PropertyType.Equals (typeof(string)))
+                               p.SetValue (output, e.Text, null);
+                       if (p.PropertyType.Equals (typeof(int)))
+                               p.SetValue (output, Int32.Parse (e.Text), null);
+                       if (p.PropertyType.Equals (typeof(float))) {
+                               p.SetValue (output, (float)Double.Parse (e.Text), null);
+                       }
+               }
 
+               Controller c = new Controller ();
+               
+               c.GenericSave (output);
+
+               c.Dispose ();
+       }
+       
        public void Run ()
        {
                Dialog w = (Dialog)xml.GetWidget ("abm_one");