def __init__(self, parent): self.indexService = getApplicationModel().getService(IZBlogAppServiceIDs.DOCUMENT_INDEX_SERVICE_ID) self.accountStore = getApplicationModel().getService(IZBlogAppServiceIDs.ACCOUNT_STORE_SERVICE_ID) self.model = ZContextInfoTagsModel(ZTagSearchFilter()) self.tagCloudsView = None self.searchTextBox = None ZBoxedView.__init__(self, parent) self._registerAsIndexListener()
def refreshContent(self, selection): (accountId, blogId) = selection.getData() filter = ZTagSearchFilter() if blogId is not None: account = self.accountStore.getAccountById(accountId) self.blog = account.getBlogById(blogId) filter.setAccountIdCriteria(accountId) filter.setBlogIdCriteria(blogId) else: self.blog = None filter.setAccountIdCriteria(IZTagSearchFilter.UNPUBLISHED_ACCOUNT_ID) filter.setBlogIdCriteria(IZTagSearchFilter.UNPUBLISHED_BLOG_ID) self.model = ZContextInfoTagsModel(filter) self.tagCloudsView.setBlog(self.blog) self.tagCloudsView.setModel(self.model) self.tagCloudsView.refresh() fireViewUnselectionEvent()
class ZTagsView(ZBoxedView, IZDocumentIndexListener): def __init__(self, parent): self.indexService = getApplicationModel().getService(IZBlogAppServiceIDs.DOCUMENT_INDEX_SERVICE_ID) self.accountStore = getApplicationModel().getService(IZBlogAppServiceIDs.ACCOUNT_STORE_SERVICE_ID) self.model = ZContextInfoTagsModel(ZTagSearchFilter()) self.tagCloudsView = None self.searchTextBox = None ZBoxedView.__init__(self, parent) self._registerAsIndexListener() # end __init__() def getViewId(self): return IZViewIds.TAG_CLOUD_VIEW # end getViewId() def _getHeaderBitmap(self): return getResourceRegistry().getBitmap(u"images/perspectives/standard/tags.png") #$NON-NLS-1$ # end _getHeaderBitmap() def _getHeaderLabel(self): return _extstr(u"tagsview.Tags") #$NON-NLS-1$ # end _getHeaderLabel() def _createHeaderWidgets(self, parent, widgetList): choices = self._getSearchBoxChoices() bitmap = getResourceRegistry().getBitmap(u"images/perspectives/standard/contextinfo/linksview/search.png") #$NON-NLS-1$ self.searchTextBox = ZAdvancedTextBox(parent, bitmap, choices, False) self.searchTextBox.setCurrentChoice(SEARCH_TAG) self.searchTextBox.SetSizeHints(220, -1) widgetList.append(self.searchTextBox) # end _createHeaderWidgets() def _createContentWidgets(self, parent): self.tagCloudsView = ZInfoTagCloudPanel(parent, self.model) # end _createContentWidgets() def _layoutContentWidgets(self): box = wx.BoxSizer(wx.VERTICAL) box.Add(self.tagCloudsView, 1, wx.EXPAND) return box # end _layoutContentWidgets() def _bindWidgetEvents(self): ZBoxedView._bindWidgetEvents(self) self.Bind(ZEVT_REFRESH, self.onZoundryRefresh, self) self.Bind(wx.EVT_TEXT_ENTER, self.onSearchText, self.searchTextBox) self.Bind(ZEVT_VIEW_SELECTION_CHANGED, self.onViewSelectionChanged) # end _bindWidgetEvents() def _getSearchBoxChoices(self): return [ (u"Tag", None, SEARCH_TAG), #$NON-NLS-1$ ] # end _getSearchBoxChoices() def onSearchText(self, event): self.model.setTagCriteria(event.GetString()) self.model.refresh() self.tagCloudsView.refresh() self.onInvalidSelection() fireViewEvent(ZViewEvent(VIEWTAGSFILTERCHANGEDEVENT, self)) event.Skip() # end onSearchText() def _updateModel(self, refreshData): (eventType, tagIDO) = refreshData shouldRefresh = False if eventType == IZDocIndexEvent.DOCINDEX_EVENTTYPE_ADD: shouldRefresh = self.model.addTag(tagIDO) elif eventType == IZDocIndexEvent.DOCINDEX_EVENTTYPE_REMOVE: shouldRefresh = self.model.removeTag(tagIDO) elif eventType == IZDocIndexEvent.DOCINDEX_EVENTTYPE_UPDATE: shouldRefresh = self.model.updateTag(tagIDO) return shouldRefresh # end _updateModel() def onIndexChange(self, event): if event.getDataType() == IZDocIndexEvent.DOCINDEX_DATATYPE_TAG: refreshData = (event.getEventType(), event.getTagIDO()) fireRefreshEvent(self, refreshData) # end onIndexChange() def onZoundryRefresh(self, event): #@UnusedVariable if self._updateModel(event.getData()): self.tagCloudsView.refresh() event.Skip() # end onZoundryRefresh() def onInvalidSelection(self): pass # end onInvalidSelection() def onViewSelectionChanged(self, event): selection = event.getSelection() if selection.getType() == IZViewSelectionTypes.BLOG_TAGS_SELECTION: self.refreshContent(selection) # end onViewSelectionChanged() def refreshContent(self, selection): (accountId, blogId) = selection.getData() filter = ZTagSearchFilter() if blogId is not None: account = self.accountStore.getAccountById(accountId) self.blog = account.getBlogById(blogId) filter.setAccountIdCriteria(accountId) filter.setBlogIdCriteria(blogId) else: self.blog = None filter.setAccountIdCriteria(IZTagSearchFilter.UNPUBLISHED_ACCOUNT_ID) filter.setBlogIdCriteria(IZTagSearchFilter.UNPUBLISHED_BLOG_ID) self.model = ZContextInfoTagsModel(filter) self.tagCloudsView.setBlog(self.blog) self.tagCloudsView.setModel(self.model) self.tagCloudsView.refresh() fireViewUnselectionEvent() # end refreshContent() def destroy(self): self._unregisterAsIndexListener() # end destroy() def _registerAsIndexListener(self): self.indexService.addListener(self) # end _registerAsIndexListener() def _unregisterAsIndexListener(self): self.indexService.removeListener(self)