{
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");