diff getan/view.py @ 226:f8571308abef

Move ProjectNode and EntryNode to its own module
author Björn Ricks <bjoern.ricks@intevation.de>
date Fri, 05 Apr 2013 20:16:06 +0200
parents c8f85809607b
children 1b29cc99f457
line wrap: on
line diff
--- a/getan/view.py	Fri Apr 05 20:14:20 2013 +0200
+++ b/getan/view.py	Fri Apr 05 20:16:06 2013 +0200
@@ -128,90 +128,6 @@
     def content_focus_changed(self):
         pass
 
-class ProjectNode(urwid.WidgetWrap):
-    MODES = [
-        (0, _('Total')),
-        (1, _('Year')),
-        (2, _('Month')),
-        (3, _('Week')),
-        (4, _('Day'))
-    ]
-
-    def __init__(self, proj, mode=3, indent=0):
-        self.selected   = False
-        self.focus      = False
-        self.indent     = indent
-        self.mode       = self.MODES[mode]
-        self.item       = proj
-        w               = self.update()
-        self.__super.__init__(w)
-        self.update_w()
-
-    def update(self):
-        logger.debug("Update ProjectNode '%s'" % self.item.key)
-        time_str    = self._get_formatted_time()
-        proj_desc = self.item.desc
-        if proj_desc is None:
-            proj_desc = ""
-
-        description = urwid.Text([' ' * self.indent,
-                                  ('project_key', self.item.key),
-                                  (' '),
-                                  (proj_desc)], wrap="clip")
-        if self._get_time():
-            time = urwid.Text('%s (%s)' % (self.mode[1], time_str))
-        else:
-            time = urwid.Text('')
-        self.widget = urwid.AttrWrap(urwid.Columns([description, time]),None)
-        self._w     = self.widget
-        return self._w
-
-    def _get_formatted_time(self):
-        return human_time(self._get_time())
-
-    def _get_time(self):
-        if self.mode == self.MODES[0]:
-            return self.item.total
-        if self.mode == self.MODES[1]:
-            return self.item.year()
-        if self.mode == self.MODES[2]:
-            return self.item.month()
-        if self.mode == self.MODES[3]:
-            return self.item.week()
-        if self.mode == self.MODES[4]:
-            return self.item.day()
-        return self.item.week()
-
-    def get_item(self):
-        return self.item
-
-    def switch_time_mode(self):
-        tmp = self.mode[0] + 1
-        if tmp > 4:
-            self.mode = self.MODES[0]
-        else:
-            self.mode = self.MODES[tmp]
-        self.update()
-
-    def update_w(self):
-        if self.focus:
-            if self.selected:
-                self._w.focus_attr = 'selected focus'
-                self._w.attr       = 'selected focus'
-            else:
-                self._w.focus_attr = 'focus'
-                self._w.attr       = 'focus'
-        else:
-            if self.selected:
-                self._w.focus_attr = 'selected'
-                self._w.attr       = 'selected'
-            else:
-                self._w.focus_attr = 'body'
-                self._w.attr       = 'body'
-
-    def select(self):
-        self.selected = not self.selected
-        self.update_w()
 
 
 class ProjectList(ListWidget):
@@ -322,52 +238,11 @@
         self.update_rows()
         self.set_focus(0)
 
-
-class EntryNode(urwid.WidgetWrap):
-
-    def __init__(self, entry):
-        self.selected = False
-        self.focus    = False
-        self.item     = entry
-        w             = self.update()
-        self.__super.__init__(w)
-        self.update_w()
-
-    def update(self):
-        logger.debug("EntryNode: update entry '%s'." % self.item.desc)
-        row = urwid.Text(' %s [%s] %s' \
-                         % (format_datetime(self.item.start), 
-                            short_time(self.item.duration().seconds),
-                            self.item.desc), wrap='clip')
-        self.widget = urwid.AttrWrap(row, None)
-        self._w     = self.widget
-        self.update_w()
-        return self._w
-
-    def update_w(self):
-        if self.focus:
-            if self.selected:
-                self._w.focus_attr = 'selected focus entry'
-                self._w.attr       = 'selected focus entry'
-            else:
-                self._w.focus_attr = 'focus entry'
-                self._w.attr       = 'focus entry'
-        else:
-            if self.selected:
-                self._w.focus_attr = 'selected entry'
-                self._w.attr       = 'selected entry'
-            else:
-                self._w.focus_attr = 'entry body'
-                self._w.attr       = 'entry body'
-
-    def select(self):
-        logger.debug("EntryNode: update selection of entry '%s'"
-                     % self.item.desc)
-        self.selected = not self.selected
-        self.update_w()
-
-    def get_item(self):
-        return self.item
+    def content_focus_changed(self):
+        item = self.item_in_focus()
+        logger.info("Conten in focus changed %s" % item)
+        if item:
+            self.controller.update_entries(item)
 
 
 class EntryList(ListWidget):
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)