comparison src/browser/sat_browser/list_manager.py @ 740:b6510fd9ae15

browser_side: implements tags UI
author souliane <souliane@mailoo.org>
date Thu, 19 Nov 2015 16:43:18 +0100
parents 4545d48dee60
children c3cb68227cca
comparison
equal deleted inserted replaced
739:4545d48dee60 740:b6510fd9ae15
471 - list name (item key) 471 - list name (item key)
472 """ 472 """
473 self.popup_menu = base_panel.PopupMenuPanel(entries, callback=callback) 473 self.popup_menu = base_panel.PopupMenuPanel(entries, callback=callback)
474 for key in self.lists: # register click sender for already existing lists 474 for key in self.lists: # register click sender for already existing lists
475 self.popup_menu.registerClickSender(self.lists[key]["button"]) 475 self.popup_menu.registerClickSender(self.lists[key]["button"])
476
477
478 class TagsPanel(base_panel.ToggleStackPanel):
479 """A toggle panel to set the tags"""
480
481 TAGS = _("Tags")
482
483 STYLE = {"main": "tagsPanel-main",
484 "tags": "tagsPanel-tags"}
485
486 def __init__(self, suggested_tags, tags):
487 """
488
489 @param suggested_tags (list[unicode]): list of all suggested tags
490 @param tags (list[unicode]): already assigned tags
491 """
492 base_panel.ToggleStackPanel.__init__(self, Width="100%")
493 self.addStyleName(self.STYLE["main"])
494 self.tags = ListPanel(quick_list_manager.QuickTagList(suggested_tags), tags)
495 self.tags.addStyleName(self.STYLE["tags"])
496 self.tags.ACCEPT_NEW_ENTRY = True
497 self.add(self.tags, self.TAGS)
498 self.addStackChangeListener(self)
499
500 def onStackChanged(self, sender, index, visible=None):
501 if visible is None:
502 visible = sender.getWidget(index).getVisible()
503 text = ", ".join(self.getTags())
504 suffix = "" if (visible or not text) else (": %s" % text)
505 sender.setStackText(index, self.TAGS + suffix)
506
507 def getTags(self):
508 return self.tags.getItems()
509
510 def setTags(self, items):
511 self.tags.resetItems(items)
512