X-Git-Url: https://git.llucax.com/z.facultad/75.10/miklolife.git/blobdiff_plain/930a4d6bfb3dfc5bf0fe6ca9fe38769ea54c5da0..1a14964592379a39d96bc84c53db779507d12415:/demo/src/Vistas/ABMGenerico.cs?ds=sidebyside diff --git a/demo/src/Vistas/ABMGenerico.cs b/demo/src/Vistas/ABMGenerico.cs index 4e185db..9a75786 100644 --- a/demo/src/Vistas/ABMGenerico.cs +++ b/demo/src/Vistas/ABMGenerico.cs @@ -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,11 +72,35 @@ 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); + } + } - public void Run () + Controller c = new Controller (); + + c.GenericSave (output); + + c.Dispose (); + } + + public void Run (string title) { Dialog w = (Dialog)xml.GetWidget ("abm_one"); + w.Title = title; w.Run (); w.Destroy (); }