Se nome do item estiver vazio, utiliza string vazia.
[cascardo/irpf-gui.git] / src / menu.py
index 3486d87..f355c7d 100644 (file)
@@ -21,39 +21,32 @@ import contribuinte
 import ocupacoes
 import rendimentoPJ
 import sys
+import form
+from form import AttrForm
 
-class OcupacaoForm(baseui.OptionsForm):
+class OcupacaoForm(form.OptionsForm):
     def __init__(self, ocupacoes, contribuinte):
         g = ocupacoes.groups()
         l = []
         for i in sorted(g):
             l.extend(g[i])
         o = map(lambda x: (x[0], x[3]), l)
-        baseui.OptionsForm.__init__(self, u"Ocupações", o, contribuinte.get_campo_contribuinte("ocupacaoPrincipal"))
+        form.OptionsForm.__init__(self, u"Ocupações", o, contribuinte.get_campo_contribuinte("ocupacaoPrincipal"))
         self.ocupacoes = ocupacoes
         self.contribuinte = contribuinte
     def set_value(self, value):
-        baseui.OptionsForm.set_value(self, value)
+        form.OptionsForm.set_value(self, value)
         self.contribuinte.set_campo_contribuinte("ocupacaoPrincipal", value)
 
-class ContribuinteForm(baseui.StringForm):
+class ContribuinteForm(form.StringForm):
     def __init__(self, name, attr, contribuinte):
         self.contribuinte = contribuinte
         self.attr = attr
-        baseui.StringForm.__init__(self, name, self.contribuinte.get_campo_contribuinte(self.attr))
+        form.StringForm.__init__(self, name, self.contribuinte.get_campo_contribuinte(self.attr))
     def set_value(self, value):
-        baseui.StringForm.set_value(self, value)
+        form.StringForm.set_value(self, value)
         self.contribuinte.set_campo_contribuinte(self.attr, value)
 
-class AttrForm(baseui.StringForm):
-    def __init__(self, name, attr, element):
-        self.element = element
-        self.attr = attr
-        baseui.StringForm.__init__(self, name, self.element.get_attr(self.attr))
-    def set_value(self, value):
-        baseui.StringForm.set_value(self, value)
-        self.element.set_attr(self.attr, value)
-
 def RendimentoPJ(UI, rend):
     form = []
     form.append(AttrForm("Nome", "nomeFontePagadora", rend))
@@ -70,7 +63,10 @@ def List(UI, L, Edit, display):
     while not exit:
         ls = []
         for i in L.items:
-            ls.append(i.get_attr(display))
+            d = i.get_attr(display)
+            if d == None:
+                d = ""
+            ls.append(d)
         r = UI.list(ls)
         if r[1] == None:
             exit = True
@@ -96,9 +92,12 @@ def DadosPessoais(UI, contrib):
     UI.form(form)
     return True
 
+def Salvar(UI, contrib):
+    contrib.save()
+
 def menu(UI, contrib):
-    m = [ "Sair", "Dados Pessoais", "Rendimentos PJ" ]
-    f = [ None, DadosPessoais, RendimentosPJ ]
+    m = [ "Sair", "Salvar", "Dados Pessoais", "Rendimentos PJ" ]
+    f = [ None, Salvar, DadosPessoais, RendimentosPJ ]
     exit = False
     while not exit:
         r = UI.menu(m)