From c415cdcae15bb560b60c7b90660f88a5ba90cab5 Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Thu, 13 Mar 2014 18:38:22 -0300 Subject: [PATCH] List UI: uma interface para listas, ao estilo CRUD. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Lista elementos, permitindo sua edição, remoção e criação. --- src/baseui.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) 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: -- 2.20.1