X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Firpf-gui.git;a=blobdiff_plain;f=src%2Fform.py;h=d1dc4bac4591d1f27fe056118de32e49d47d7639;hp=d61c0fc32fa3048512a8e6f24fea21bb93be31c5;hb=HEAD;hpb=bad57b4a5981681a95b3de0f87b82e164f171586 diff --git a/src/form.py b/src/form.py index d61c0fc..d1dc4ba 100644 --- a/src/form.py +++ b/src/form.py @@ -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)