Permite valores vazios para OptionForm.
[cascardo/irpf-gui.git] / src / form.py
index d61c0fc..d1dc4ba 100644 (file)
@@ -45,6 +45,8 @@ class OptionsForm(BaseForm):
         self.value = value
         self.index = self.find_index()
     def find_index(self):
+        if self.value == None:
+            return -1
         return map(lambda x: x[0], self.options).index(self.value)
     def get_length(self):
         return len(self.options)
@@ -53,6 +55,8 @@ class OptionsForm(BaseForm):
     def get_value(self, index):
         return self.options[index][0]
     def get_cur_display(self):
+        if self.index < 0:
+            return ""
         return self.options[self.index][1]
     def get_cur_value(self):
         return self.value
@@ -70,3 +74,14 @@ class AttrForm(StringForm):
     def set_value(self, value):
         StringForm.set_value(self, value)
         self.element.set_attr(self.attr, value)
+
+class TipoForm(OptionsForm):
+    def __init__(self, name, attr, element, oclass, vnp):
+        l = oclass.list()
+        o = map(lambda x: (x[vnp[0]], x[vnp[1]]), l)
+        self.element = element
+        self.attr = attr
+        OptionsForm.__init__(self, name, o, element.get_attr(attr))
+    def set_value(self, value):
+        OptionsForm.set_value(self, value)
+        self.element.set_attr(self.attr, value)