From 930a4d6bfb3dfc5bf0fe6ca9fe38769ea54c5da0 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Tue, 21 Jun 2005 04:01:56 +0000 Subject: [PATCH] * Mas generizacion --- demo/src/Vistas/ABMGenerico.cs | 51 ++++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 6 deletions(-) diff --git a/demo/src/Vistas/ABMGenerico.cs b/demo/src/Vistas/ABMGenerico.cs index 3471b20..4e185db 100644 --- a/demo/src/Vistas/ABMGenerico.cs +++ b/demo/src/Vistas/ABMGenerico.cs @@ -9,26 +9,65 @@ public class ABMGenerico { Glade.XML xml; [Widget] Table tabla; + Type current; public ABMGenerico (Type objectType) { PropertyInfo[] properties = objectType.GetProperties (); + current = objectType; xml = new Glade.XML (null, "abm_generico.glade", "abm_one", null); xml.Autoconnect (this); uint i=0; foreach( PropertyInfo mf in properties ) { - Label l = new Label (mf.Name + " : "); - Entry e = new Entry (); - tabla.Attach (l, 0, 1, i, i+1); - tabla.Attach (e, 1, 2, i, i+1); - l.Show (); - e.Show (); + Widget l = GetWidget (mf); + if (l != null) { + tabla.Attach (l, 0, 1, i, i+1); + Entry e = new Entry (); + tabla.Attach (e, 1, 2, i, i+1); + l.Show (); + e.Show (); + } i++; } } + private Widget GetWidget (PropertyInfo mf) + { + Widget w = null; + if (mf.PropertyType.Equals (typeof(string)) + || mf.PropertyType.Equals (typeof(int)) + || mf.PropertyType.Equals (typeof(float))) { + Label l = new Label (GetLabel (mf.Name) + " : "); + l.Justify = Justification.Left; + l.Xpad = 0; + l.Xalign = 0; + w = l; + } + return w; + } + + private string GetLabel (string name) + { + int i = 0; + string s = (string)name.Clone (); + while (i < s.Length) { + if (Char.IsUpper(s[i]) && (i>0)) { + s = s.Insert (i, " "); + i++; + } + i++; + } + return s; + } + + public void OnDialogResponse (object o, ResponseArgs args) + { + if (args.ResponseId == ResponseType.Cancel) + return; + } + public void Run () { Dialog w = (Dialog)xml.GetWidget ("abm_one"); -- 2.43.0