]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blob - demo/src/Vistas/ABMGenerico.cs
Agregué la enum para los estados de una autorizacion
[z.facultad/75.10/miklolife.git] / demo / src / Vistas / ABMGenerico.cs
1
2 using System;
3 using System.Reflection;
4 using System.Collections;
5 using Gtk;
6 using Glade;
7
8 public class ABMGenerico
9 {
10         Glade.XML xml;
11         [Widget] Table tabla;
12         Type current;
13
14         public ABMGenerico (Type objectType)
15         {
16                 PropertyInfo[] properties = objectType.GetProperties ();
17                 current = objectType;
18                 
19                 xml = new Glade.XML (null, "abm_generico.glade", "abm_one", null);
20                 xml.Autoconnect (this);
21
22                 uint i=0;
23                 foreach( PropertyInfo mf in properties ) {
24                         Widget l = GetWidget (mf);
25                         if (l != null) {
26                                 tabla.Attach (l, 0, 1, i, i+1);
27                                 Entry e = new Entry ();
28                                 tabla.Attach (e, 1, 2, i, i+1);
29                                 l.Show ();
30                                 e.Show ();
31                         }
32                         i++;
33                 }
34         }
35
36         private Widget GetWidget (PropertyInfo mf)
37         {
38                 Widget w = null;
39                 if (mf.PropertyType.Equals (typeof(string)) 
40                         || mf.PropertyType.Equals (typeof(int))
41                         || mf.PropertyType.Equals (typeof(float))) {
42                         Label l = new Label (GetLabel (mf.Name) + " : ");
43                         l.Justify = Justification.Left;
44                         l.Xpad = 0;
45                         l.Xalign = 0;
46                         w = l;
47                 }
48                 return w;
49         }
50
51         private string GetLabel (string name)
52         {
53                 int i = 0;
54                 string s = (string)name.Clone ();
55                 while (i < s.Length) {
56                         if (Char.IsUpper(s[i]) && (i>0)) {
57                                 s = s.Insert (i, " ");
58                                 i++;
59                         }
60                         i++;
61                 }
62                 return s;
63         }
64
65         public void OnDialogResponse (object o, ResponseArgs args)
66         {
67                 if (args.ResponseId == ResponseType.Cancel)
68                         return; 
69         }
70
71         public void Run ()
72         {
73                 Dialog w = (Dialog)xml.GetWidget ("abm_one");
74                 w.Run ();
75                 w.Destroy ();
76         }
77 }
78