Skip to content

Commit

Permalink
Rseolved #38: enhance footer info
Browse files Browse the repository at this point in the history
  • Loading branch information
chhsiao90 committed Sep 13, 2016
1 parent 002597b commit d9df437
Show file tree
Hide file tree
Showing 7 changed files with 31 additions and 15 deletions.
2 changes: 1 addition & 1 deletion examples/panama.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ def get_views(self):
def detail(self, message):
detail_groups = []
summary_group_content = \
[Prop(k, v) for k, v in message.items() if isinstance(v, str) or isinstance(v, unicode)]
[Prop(k, v) for k, v in message.items() if isinstance(v, str)]

detail_groups.append(PropsGroup("Summary", summary_group_content))

Expand Down
12 changes: 8 additions & 4 deletions gviewer/displayer.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@


class BaseDisplayer(object): # pragma: no cover
""" Absctract class for displayer """
"""Absctract class for displayer"""
def summary(self, message):
""" Define how message display in summary widget
"""Define how message display in summary widget
Args:
message: message that defined at DataStore implementation
Expand All @@ -15,7 +15,7 @@ def summary(self, message):
return message

def match(self, keyword, message, summary):
""" Define is that the message match the keyword
"""Define is that the message match the keyword
Default implementation is to check that keyword is contain in summary or not
Expand All @@ -29,9 +29,13 @@ def match(self, keyword, message, summary):
return keyword in summary

def get_views(self):
""" Define how display message into different views
"""Define how display message into different views
Returns:
list of tuple contans ("view_name", View)
"""
return [("Undefined", lambda m: View([]))]

def get_name(self):
"""The name of displayer"""
return "GViewer"
5 changes: 4 additions & 1 deletion gviewer/tests/test_parent.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ def setUp(self):
def summary(self, message):
return ";".join(message)

def get_name(self):
return "GViewer"

def get_views(self):
return [
("view1", self.view),
Expand All @@ -62,7 +65,7 @@ def test_render(self):
urwid.Text(""),
urwid.Text(""),
urwid.Text(""),
Footer(helper=Helper(info_widget=urwid.Text("[1/3]")))
Footer(helper=Helper(info_widget=urwid.Text("GViewer[1/3]")))
], (30, 10))
)

Expand Down
4 changes: 4 additions & 0 deletions gviewer/tests/view/test_detail.py
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,10 @@ def test_open_failed(self):
self.widget._open(10)
self.controller.open_error.assert_called_with()

def test_update_info(self):
self.widget.update_info()
self.controller._update_info.assert_called_with(self.widget, "View 1")


class TestTabs(unittest.TestCase):
def test_render(self):
Expand Down
12 changes: 6 additions & 6 deletions gviewer/tests/view/test_summary.py
Original file line number Diff line number Diff line change
Expand Up @@ -266,12 +266,12 @@ def test_keypress_bottom_and_top(self):
self.widget.keypress((10, 10), "G")
self.assertEqual(self.widget._w.focus_position, 1)
self.controller._update_info.assert_called_with(
self.widget, "[2/2]")
self.widget, "GViewer[2/2]")

self.widget.keypress((10, 10), "g")
self.assertEqual(self.widget._w.focus_position, 0)
self.controller._update_info.assert_called_with(
self.widget, "[1/2]")
self.widget, "GViewer[1/2]")

def test_keypress_bottom_and_top_when_search(self):
self.widget._filter("summary")
Expand All @@ -284,24 +284,24 @@ def test_keypress_clear_item(self):
self.widget.keypress((10, 10), "x")
self.assertEqual(len(self.widget.current_walker), 1)
self.controller._update_info.assert_called_with(
self.widget, "[1/1]")
self.widget, "GViewer[1/1]")

def test_keypress_clear_items(self):
self.widget.keypress((10, 10), "X")
self.assertEqual(len(self.widget.current_walker), 0)
self.controller._update_info.assert_called_with(
self.widget, "[0/0]")
self.widget, "GViewer[0/0]")

def test_keypress_up_and_down(self):
self.widget.keypress((10, 10), "down")
self.assertEqual(self.widget._w.focus_position, 1)
self.controller._update_info.assert_called_with(
self.widget, "[2/2]")
self.widget, "GViewer[2/2]")

self.widget.keypress((10, 10), "up")
self.assertEqual(self.widget._w.focus_position, 0)
self.controller._update_info.assert_called_with(
self.widget, "[1/2]")
self.widget, "GViewer[1/2]")

def test_auto_scroll(self):
displayer_context = DisplayerContext(
Expand Down
6 changes: 5 additions & 1 deletion gviewer/view/detail.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ def __init__(self, message, displayer_context, index=0, **kwargs):
self.displayer_context = displayer_context

self.views = self.displayer_context.displayer.get_views()
self.view = self.views[index][1].__call__(self.message)
self.name, view_callable = self.views[index]
self.view = view_callable.__call__(self.message)

self.content_widget = self.view.widget(
self.message, **kwargs)
Expand Down Expand Up @@ -109,6 +110,9 @@ def _export(self): # pragma: no cover
f.write(str(self.view))
self.controller.notify("Export to file {0}".format(file_name))

def update_info(self):
return self.controller._update_info(self, self.name)

def keypress(self, size, key):
if key == "q":
self._clear_search()
Expand Down
5 changes: 3 additions & 2 deletions gviewer/view/summary.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,7 @@ def __init__(self, displayer_context, **kwargs):
super(SummaryListWidget, self).__init__(**kwargs)
_verify_keys(displayer_context.actions)

self.name = displayer_context.displayer.get_name()
self.base_walker = SummaryListWalker(
displayer_context=displayer_context,
on_receive=self._on_receive, **kwargs)
Expand Down Expand Up @@ -220,9 +221,9 @@ def update_info(self):
curr_index = self._w.focus_position + 1
total_index = len(self.current_walker)
self.controller._update_info(
self, "[{0}/{1}]".format(curr_index, total_index))
self, "{0}[{1}/{2}]".format(self.name, curr_index, total_index))
else:
self.controller._update_info(self, "[0/0]")
self.controller._update_info(self, "{0}[0/0]".format(self.name))

def _on_receive(self):
if self.context.config.auto_scroll:
Expand Down

0 comments on commit d9df437

Please sign in to comment.