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):
class EditableListView(SearchableListView,KeyBindingView):
- def __init__(self,title,entry_filters,binding_map):
- KeyBindingView.__init__(self,binding_map)
+ def __init__(self,title,entry_filters):
+ KeyBindingView.__init__(self)
super(EditableListView, self).__init__(title,entry_filters)
def key_and_menu_bindings(self,selected_index):
def __init__(self,project):
self.project = project
self.project.observers.append(self)
- super(ProjectView, self).__init__(self.project.name, [lambda:self.project.actions.with_property(lambda a:a.status==action.active)], ACTION_LIST_KEYS_AND_MENU)
+ super(ProjectView, self).__init__(self.project.name, [lambda:self.project.actions.with_property(lambda a:a.status==action.active)])
+ self.set_keybindings(ACTION_LIST_KEYS_AND_MENU)
def exit(self):
self.project.observers.remove(self)
def __init__(self,projects):
self.projects = projects
self.projects.observers.append(self)
- super(ProjectListView, self).__init__(u'Projects', [lambda:projects],PROJECT_LIST_KEYS_AND_MENU)
+ super(ProjectListView, self).__init__(u'Projects', [lambda:projects])
+ self.set_keybindings(PROJECT_LIST_KEYS_AND_MENU)
#appuifw.note(u'Before starting thread')
# thread.start_new_thread(projects.process,())
#appuifw.note(u'After starting thread %s'%repr(projects.observers))