From: Thadeu Lima de Souza Cascardo Date: Thu, 13 Mar 2014 21:38:22 +0000 (-0300) Subject: List UI: uma interface para listas, ao estilo CRUD. X-Git-Url: http://git.cascardo.info/?p=cascardo%2Firpf-gui.git;a=commitdiff_plain;h=c415cdcae15bb560b60c7b90660f88a5ba90cab5 List UI: uma interface para listas, ao estilo CRUD. Lista elementos, permitindo sua edição, remoção e criação. --- diff --git a/src/baseui.py b/src/baseui.py index 4d340ed..dcbf797 100644 --- a/src/baseui.py +++ b/src/baseui.py @@ -78,6 +78,30 @@ class BaseUI(): return -1 def show_item(self, s): print s + def item(self): + menu = [ "Exit", "Edit", "Delete" ] + actions = [ None, "edit", "delete" ] + r = self.menu(menu) + if r >= 0: + return actions[r] + return None + def list(self, ls): + self.show_item("0. Exit") + self.show_item("1. Add") + i = 2 + for l in ls: + self.show_item(str(i) + ". " + l) + i += 1 + ans = self.get_string("Option: ") + try: + opt = int(ans) + if opt >= i or opt <= 0: + return (-1, None) + elif opt == 1: + return (-1, "add") + return (opt - 1, self.item()) + except Exception, e: + return (-1, None) def form(self, fs): exit = False while not exit: