class ZMediaBlogPostDetailsPanel(ZAbstractDetailsPanel): def __init__(self, parent): self.imageContentProvider = ZMediaListViewContentProvider() ZAbstractDetailsPanel.__init__(self, parent) # end __init__() def _createWidgets(self): style = wx.LC_VIRTUAL | wx.LC_REPORT | wx.LC_SINGLE_SEL | wx.LC_HRULES | wx.NO_BORDER self.imageListView = ZListViewEx(self.imageContentProvider, self, style = style) # end _createWidgets() def _bindWidgetEvents(self): self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.onActivated, self.imageListView) self.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self.onRightClick, self.imageListView) # end _bindWidgetEvents() def _layoutWidgets(self): imageSBSizer = wx.BoxSizer(wx.HORIZONTAL) imageSBSizer.Add(self.imageListView, 1, wx.EXPAND) box = wx.BoxSizer(wx.VERTICAL) box.AddSizer(imageSBSizer, 1, wx.EXPAND) self.SetAutoLayout(True) self.SetSizer(box) # end _layoutWidgets() def onSelectionChanged(self, document): self.imageContentProvider.setDocument(document) self.imageListView.refresh() # end onSelectionChanged() def onActivated(self, event): url = self.imageListView.GetItemText(event.GetIndex()) if url: context = ZImageActionContext(self, url) openAction = getApplicationModel().getActionRegistry().findAction(IZAppActionIDs.OPEN_IMAGE_ACTION) openAction.runAction(context) event.Skip # end onActivated() def onRightClick(self, event): url = self.imageListView.GetItemText(event.GetIndex()) if url: context = ZImageActionContext(self, url) menuModel = ZImageMenuModel() menu = ZModelBasedMenu(menuModel, context, self) self.PopupMenu(menu) menu.Destroy() event.Skip()
class ZLinkBlogPostDetailsPanel(ZAbstractDetailsPanel): def __init__(self, parent): self.selectedLink = None self.document = None # FIXME (EPW) need to update the value of self.blog in onSelectionChanged() self.blog = None self.linkContentProvider = ZLinkListViewContentProvider() ZAbstractDetailsPanel.__init__(self, parent) # end __init__() def _createWidgets(self): style = wx.LC_VIRTUAL | wx.LC_REPORT | wx.LC_SINGLE_SEL | wx.LC_HRULES | wx.NO_BORDER self.linkListView = ZListViewEx(self.linkContentProvider, self, style=style) # end _createWidgets() def _bindWidgetEvents(self): self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.onSelected, self.linkListView) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.onActivated, self.linkListView) self.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self.onRightClick, self.linkListView) wx.EVT_SET_FOCUS(self.linkListView, self.onFocus) wx.EVT_KILL_FOCUS(self.linkListView, self.onUnFocus) # end _bindWidgetEvents() def _layoutWidgets(self): linkSBSizer = wx.BoxSizer(wx.HORIZONTAL) linkSBSizer.Add(self.linkListView, 1, wx.EXPAND) box = wx.BoxSizer(wx.VERTICAL) box.AddSizer(linkSBSizer, 1, wx.EXPAND) self.SetAutoLayout(True) self.SetSizer(box) # end _layoutWidgets() def onSelectionChanged(self, document): self.document = document self.selectedLink = None self.linkContentProvider.setDocument(document) self.linkListView.refresh() # end onSelectionChanged() def onSelected(self, event): link = self.linkContentProvider.getLink(event.GetIndex()) self.selectedLink = link self._fireLinkSelectionEvent(link) event.Skip() # end onSelected() def onActivated(self, event): url = self.linkListView.GetItemText(event.GetIndex()) if url: context = ZLinkActionContext(self, url) openLinkAction = getApplicationModel().getActionRegistry( ).findAction(IZAppActionIDs.OPEN_LINK_ACTION) openLinkAction.runAction(context) event.Skip # end onActivated() def onRightClick(self, event): url = self.linkListView.GetItemText(event.GetIndex()) if url: context = ZLinkActionContext(self, url) menuModel = ZLinkMenuModel() menu = ZModelBasedMenu(menuModel, context, self) self.PopupMenu(menu) menu.Destroy() event.Skip() # end onRightClick() def onFocus(self, event): self._fireLinkSelectionEvent(self.selectedLink) event.Skip() # end onFocus() def onUnFocus(self, event): fireViewUnselectionEvent() event.Skip() # end onUnFocus() def _fireLinkSelectionEvent(self, link): if link: linkIDO = ZLinkIDO(None, self.document.getId(), link.getHref()) linkSelection = ZLinkSelection(linkIDO, self.blog) fireViewSelectionEvent(linkSelection, None)