Mercurial > libervia-web
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 |