class ListView(object):
- def __init__(self,title):
- self.title = title
+ def __init__(self):
self.view = appuifw.Listbox(self.items(),self.change_entry)
+
+ def set_title(self, title):
+ self.title = title
def change_entry(self):
pass
class WidgetBasedListView(ListView):
- def __init__(self,title):
+ def __init__(self):
self.widgets = self.generate_widgets()
- super(WidgetBasedListView,self).__init__(title)
+ super(WidgetBasedListView,self).__init__()
self.exit_flag = False
def run(self):
class KeyBindingView(object):
- def __init__(self,binding_map):
+ def __init__(self):
+ self.binding_map = {}
+
+ def set_keybindings(self, binding_map):
+ """
+ Set a new map of key bindings. This map maps method names to a
+ tuple of keyname and description.
+
+ The method name refers to a method on the selected item, or the
+ current view.
+
+ Example: { 'search_item' : ('0', 'Search item') }
+
+ """
self.binding_map = binding_map
def get_menu_entries(self):
self.view.bind(key,no_action)
class SearchableListView(WidgetBasedListView):
- def __init__(self,title,entry_filters):
+ def __init__(self,entry_filters):
self.current_entry_filter_index = 0
self.entry_filters = entry_filters
self.filtered_list = self.entry_filters[0]
self.lock = None
- super(SearchableListView,self).__init__(title)
+ super(SearchableListView,self).__init__()
def search_item(self):
class EditableListView(SearchableListView,KeyBindingView):
- def __init__(self,title,entry_filters,binding_map):
- KeyBindingView.__init__(self,binding_map)
- super(EditableListView, self).__init__(title,entry_filters)
+ def __init__(self,entry_filters):
+ KeyBindingView.__init__(self)
+ super(EditableListView, self).__init__(entry_filters)
def key_and_menu_bindings(self,selected_index):
key_and_menu_bindings=[]