Ejemplo n.º 1
0
 def _createNonHeaderWidgets(self):
     self.staticBox = wx.StaticBox(
         self, wx.ID_ANY, _extstr(u"accountblogs.BlogList"))  #$NON-NLS-1$
     self.blogListProvider = ZBlogCheckboxListContentProvider()
     self.blogListControl = ZCheckBoxListViewWithButtons(
         self.blogListProvider, self)
     self.blogListControl.SetSizeHints(-1, 150)
     self.refreshButton = wx.Button(
         self, wx.ID_ANY,
         _extstr(u"synchronizeaccountdialog.RefreshBlogList"))  #$NON-NLS-1$
     self.animateControl = ZProgressLabelCtrl(self)
Ejemplo n.º 2
0
 def _createNonHeaderWidgets(self):
     self.staticBox = wx.StaticBox(self, wx.ID_ANY, _extstr(u"accountblogs.BlogList")) #$NON-NLS-1$
     self.blogListProvider = ZBlogCheckboxListContentProvider()
     self.blogListControl = ZCheckBoxListViewWithButtons(self.blogListProvider, self)
     self.blogListControl.SetSizeHints(-1, 150)
     self.refreshButton = wx.Button(self, wx.ID_ANY, _extstr(u"synchronizeaccountdialog.RefreshBlogList")) #$NON-NLS-1$
     self.animateControl = ZProgressLabelCtrl(self)
Ejemplo n.º 3
0
 def __init__(self, model, parent):
     self.blogSiteId = None
     self.blogListProvider = ZBlogCheckboxListContentProvider()
     ZNewPublisherSiteWizardPageBase.__init__(self, model, parent)
Ejemplo n.º 4
0
class ZNewPublisherSiteConfirmPage(ZNewPublisherSiteWizardPageBase):
    def __init__(self, model, parent):
        self.blogSiteId = None
        self.blogListProvider = ZBlogCheckboxListContentProvider()
        ZNewPublisherSiteWizardPageBase.__init__(self, model, parent)

    # end __init__()

    def _createWidgets(self):
        self.description1 = wx.StaticText(
            self, wx.ID_ANY,
            _extstr(u"publishersitewizard.Confirm"))  #$NON-NLS-1$
        self.description1.SetFont(getDefaultFontBold())
        self.description2 = wx.StaticText(
            self,
            wx.ID_ANY,
            _extstr(u"publishersitewizard.ConfirmDescription"),
            size=wx.Size(-1, 40))  #$NON-NLS-1$
        self.staticBox = wx.StaticBox(
            self, wx.ID_ANY, _extstr(u"accountblogs.BlogList"))  #$NON-NLS-1$
        self.blogListControl = ZCheckBoxListViewWithButtons(
            self.blogListProvider, self)
        self.mediaUploadLabel = wx.StaticText(
            self, wx.ID_ANY,
            _extstr(
                u"publishersitewizard.MediaUploadMethodLabel"))  #$NON-NLS-1$
        comboValidator = ZNullControlValidator()
        self.mediaUploadCombo = ZValidatingBitmapComboBox(comboValidator,
                                                          self,
                                                          wx.ID_ANY,
                                                          style=wx.CB_READONLY)
        self.mediaUploadCombo.SetToolTipString(
            _extstr(
                u"publishersitewizard.MediaUploadMethodTooltip"))  #$NON-NLS-1$
        self.mediaWizardButton = wx.Button(
            self, wx.ID_ANY,
            _extstr(
                u"publishersitewizard.CreateNewMediaStorage"))  #$NON-NLS-1$

    def _populateMediaSitesList(self, selectedMediaStorageId=None):
        self.mediaUploadCombo.Clear()
        # FIXME (PJ) create a new 're-usable' model which lists given blog site id + available media storages  => maybe as a new control
        if self.blogSiteId:
            siteDef = self._getModel().getPublisherSite(self.blogSiteId)
            if siteDef.getCapabilities().supportsUploadMedia():
                bitmap = siteDef.getIconAsBitmap()
                name = u"Blog Fileupload (via %s)" % siteDef.getName(
                )  #$NON-NLS-1$
                self.mediaUploadCombo.Append(name, siteDef, bitmap)

        mediaStores = []
        mediaStores.extend(self._getModel().getMediaStorages())
        mediaStores.sort(lambda x, y: cmp(x.getName().lower(),
                                          y.getName().lower()))
        for mediaStore in mediaStores:
            mediaSite = self._getModel().getMediaSite(mediaStore)
            if mediaSite.isInternal():
                continue
            name = mediaStore.getName() + u" (" + mediaSite.getDisplayName(
            ) + u")"  #$NON-NLS-1$ #$NON-NLS-2$
            iconPath = mediaSite.getIconPath()
            bitmap = wx.Image(iconPath,
                              getImageType(iconPath)).ConvertToBitmap()
            self.mediaUploadCombo.Append(name, mediaStore, bitmap)
        # select first item
        if self.mediaUploadCombo.GetCount() > 0:
            if selectedMediaStorageId:
                self._selectMediaSite(selectedMediaStorageId)
            else:
                self.mediaUploadCombo.SetSelection(0)
                self.mediaUploadCombo.validate()

    def _bindWidgetEvents(self):
        self.Bind(wx.EVT_BUTTON, self.onMediaWizardButton,
                  self.mediaWizardButton)
        self.Bind(ZEVT_CHECKBOX_LIST_CHANGE, self.onBlogCheckedEvent,
                  self.blogListControl)

    def _layoutWidgets(self):
        staticBoxSizer = wx.StaticBoxSizer(self.staticBox, wx.VERTICAL)
        staticBoxSizer.AddSizer(self.blogListControl, 1, wx.EXPAND | wx.ALL, 5)

        flexGridSizer = wx.FlexGridSizer(1, 2, 5, 5)
        flexGridSizer.AddGrowableCol(1)
        flexGridSizer.Add(self.mediaUploadLabel, 0,
                          wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
                          5)
        flexGridSizer.Add(self.mediaUploadCombo, 0, wx.EXPAND | wx.RIGHT, 5)
        flexGridSizer.Add(wx.StaticText(self, wx.ID_ANY), 0,
                          wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
                          5)
        flexGridSizer.Add(self.mediaWizardButton, 0, wx.ALIGN_RIGHT | wx.RIGHT,
                          5)

        box = wx.BoxSizer(wx.VERTICAL)
        box.Add(self.description1, 0, wx.EXPAND | wx.ALL, 10)
        box.Add(self.description2, 0, wx.EXPAND | wx.ALL, 10)
        box.AddSizer(staticBoxSizer, 1, wx.EXPAND | wx.ALL, 5)
        box.AddSizer(flexGridSizer, 0, wx.EXPAND)
        self.SetAutoLayout(True)
        self.SetSizer(box)

    def getDataProperties(self):
        rval = {}
        return rval

    # end getDataProperties()

    def onMediaWizardButton(self, event):  #@UnusedVariable
        storeId = ZMediaStorageUtil().createNewMediaStorage(self)
        if storeId:
            self._populateMediaSitesList(storeId)

    def onEnter(self, session, eventDirection):
        if eventDirection == ZWizardPage.NEXT:
            oldKey = session.getProperty(
                u"confirm-page.modifykey")  #$NON-NLS-1$
            newKey = session.getProperty(
                u"apiinfo-page.modifykey")  #$NON-NLS-1$
            modified = not oldKey or newKey != oldKey
            idBlogList = session.getProperty(
                u"apiinfo-page.id-bloglist")  #$NON-NLS-1$
            if modified and idBlogList:
                self.blogSiteId = session.getProperty(
                    u"apiinfo-page.siteid")  #$NON-NLS-1$
                self._populateMediaSitesList()
                session.setProperty(u"confirm-page.modifykey",
                                    newKey)  #$NON-NLS-1$
                blogs = []
                for (dataId, blog) in idBlogList:  #@UnusedVariable
                    blogs.append(blog)
                self.blogListProvider.setBlogList(blogs)
                self.blogListControl.checkBoxListView.refreshItems()
                # pre-select all
                self.blogListControl.checkBoxListView.checkAll()

    def onExit(self, session, eventDirection):  #@UnusedVariable
        if eventDirection == ZWizardPage.NEXT:
            blogs = self._getSelectedBlogList()
            session.setProperty(u"confirm-page.selected-blogs",
                                blogs)  #$NON-NLS-1$
            obj = self._getSelectedMediaSite()
            uploadmethod = None
            mediastorageid = None
            if obj is not None and isinstance(obj, ZPublisherSiteDef):
                uploadmethod = u"publisher"  #$NON-NLS-1$
            elif obj is not None:
                uploadmethod = u"mediastorage"  #$NON-NLS-1$
                mediastorageid = obj.getId()
            session.setProperty(u"confirm-page.file-upload-method",
                                uploadmethod)  #$NON-NLS-1$
            session.setProperty(u"confirm-page.file-upload-mediastorage-id",
                                mediastorageid)  #$NON-NLS-1$
        return True

    def _getSelectedMediaSite(self):
        data = None
        idx = self.mediaUploadCombo.GetSelection()
        if idx != -1:
            data = self.mediaUploadCombo.GetClientData(idx)
        return data

    # end _getSelectedMediaSite()

    def _selectMediaSite(self, storeId):
        n = self.mediaUploadCombo.GetCount()
        for idx in range(n):
            data = self.mediaUploadCombo.GetClientData(idx)
            if data and data.getId() == storeId:
                self.mediaUploadCombo.SetSelection(idx)
                self.mediaUploadCombo.validate()
                break

    def _getSelectedBlogList(self):
        rval = self.blogListProvider.getSelectedBlogList()
        return rval

    # end _getSelectedBlogList

    def onBlogCheckedEvent(self, event):  #@UnusedVariable
        if len(self.blogListControl.checkBoxListView.getCheckedItems()) > 0:
            self._fireValidEvent()
        else:
            self._fireInvalidEvent()
Ejemplo n.º 5
0
 def __init__(self, model, parent):
     self.blogSiteId = None
     self.blogListProvider = ZBlogCheckboxListContentProvider()
     ZNewPublisherSiteWizardPageBase.__init__(self, model, parent)
Ejemplo n.º 6
0
class ZNewPublisherSiteConfirmPage(ZNewPublisherSiteWizardPageBase):

    def __init__(self, model, parent):
        self.blogSiteId = None
        self.blogListProvider = ZBlogCheckboxListContentProvider()
        ZNewPublisherSiteWizardPageBase.__init__(self, model, parent)
    # end __init__()

    def _createWidgets(self):
        self.description1 = wx.StaticText(self, wx.ID_ANY, _extstr(u"publishersitewizard.Confirm")) #$NON-NLS-1$
        self.description1.SetFont(getDefaultFontBold())
        self.description2 = wx.StaticText(self, wx.ID_ANY, _extstr(u"publishersitewizard.ConfirmDescription"), size = wx.Size(-1, 40)) #$NON-NLS-1$
        self.staticBox = wx.StaticBox(self, wx.ID_ANY, _extstr(u"accountblogs.BlogList")) #$NON-NLS-1$
        self.blogListControl = ZCheckBoxListViewWithButtons(self.blogListProvider, self)
        self.mediaUploadLabel = wx.StaticText(self, wx.ID_ANY, _extstr(u"publishersitewizard.MediaUploadMethodLabel")) #$NON-NLS-1$
        comboValidator = ZNullControlValidator()
        self.mediaUploadCombo = ZValidatingBitmapComboBox(comboValidator, self, wx.ID_ANY, style = wx.CB_READONLY)
        self.mediaUploadCombo.SetToolTipString(_extstr(u"publishersitewizard.MediaUploadMethodTooltip")) #$NON-NLS-1$
        self.mediaWizardButton = wx.Button(self, wx.ID_ANY, _extstr(u"publishersitewizard.CreateNewMediaStorage")) #$NON-NLS-1$

    def _populateMediaSitesList(self, selectedMediaStorageId = None):
        self.mediaUploadCombo.Clear()
        # FIXME (PJ) create a new 're-usable' model which lists given blog site id + available media storages  => maybe as a new control
        if self.blogSiteId:
            siteDef = self._getModel().getPublisherSite(self.blogSiteId)
            if siteDef.getCapabilities().supportsUploadMedia():
                bitmap = siteDef.getIconAsBitmap()
                name = u"Blog Fileupload (via %s)"  % siteDef.getName()  #$NON-NLS-1$
                self.mediaUploadCombo.Append(name, siteDef, bitmap)

        mediaStores = []
        mediaStores.extend( self._getModel().getMediaStorages() )
        mediaStores.sort( lambda x, y: cmp( x.getName().lower(), y.getName().lower() ) )
        for mediaStore in mediaStores:
            mediaSite = self._getModel().getMediaSite(mediaStore)
            if mediaSite.isInternal():
                continue
            name = mediaStore.getName() + u" (" + mediaSite.getDisplayName() + u")" #$NON-NLS-1$ #$NON-NLS-2$
            iconPath = mediaSite.getIconPath()
            bitmap = wx.Image(iconPath, getImageType(iconPath)).ConvertToBitmap()
            self.mediaUploadCombo.Append(name, mediaStore, bitmap)
        # select first item
        if  self.mediaUploadCombo.GetCount() > 0:
            if selectedMediaStorageId:
                self._selectMediaSite(selectedMediaStorageId)
            else:
                self.mediaUploadCombo.SetSelection(0)
                self.mediaUploadCombo.validate()

    def _bindWidgetEvents(self):
        self.Bind(wx.EVT_BUTTON, self.onMediaWizardButton, self.mediaWizardButton)
        self.Bind(ZEVT_CHECKBOX_LIST_CHANGE, self.onBlogCheckedEvent, self.blogListControl)

    def _layoutWidgets(self):
        staticBoxSizer = wx.StaticBoxSizer(self.staticBox, wx.VERTICAL)
        staticBoxSizer.AddSizer(self.blogListControl , 1, wx.EXPAND | wx.ALL, 5)

        flexGridSizer = wx.FlexGridSizer(1, 2, 5, 5)
        flexGridSizer.AddGrowableCol(1)
        flexGridSizer.Add(self.mediaUploadLabel, 0, wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 5)
        flexGridSizer.Add(self.mediaUploadCombo, 0, wx.EXPAND | wx.RIGHT, 5)
        flexGridSizer.Add(wx.StaticText(self, wx.ID_ANY), 0, wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 5)
        flexGridSizer.Add(self.mediaWizardButton, 0, wx.ALIGN_RIGHT | wx.RIGHT, 5)

        box = wx.BoxSizer(wx.VERTICAL)
        box.Add(self.description1, 0, wx.EXPAND | wx.ALL, 10)
        box.Add(self.description2, 0, wx.EXPAND | wx.ALL, 10)
        box.AddSizer(staticBoxSizer, 1, wx.EXPAND| wx.ALL,5)
        box.AddSizer(flexGridSizer, 0, wx.EXPAND)
        self.SetAutoLayout(True)
        self.SetSizer(box)

    def getDataProperties(self):
        rval = {}
        return rval
    # end getDataProperties()

    def onMediaWizardButton(self, event): #@UnusedVariable
        storeId = ZMediaStorageUtil().createNewMediaStorage(self)
        if storeId:
            self._populateMediaSitesList(storeId)

    def onEnter(self, session, eventDirection):
        if eventDirection == ZWizardPage.NEXT:
            oldKey = session.getProperty(u"confirm-page.modifykey") #$NON-NLS-1$
            newKey = session.getProperty(u"apiinfo-page.modifykey") #$NON-NLS-1$
            modified = not oldKey or newKey != oldKey
            idBlogList = session.getProperty(u"apiinfo-page.id-bloglist")#$NON-NLS-1$
            if modified and idBlogList:
                self.blogSiteId = session.getProperty(u"apiinfo-page.siteid") #$NON-NLS-1$
                self._populateMediaSitesList()
                session.setProperty(u"confirm-page.modifykey", newKey) #$NON-NLS-1$
                blogs = []
                for (dataId, blog) in idBlogList: #@UnusedVariable
                    blogs.append(blog)
                self.blogListProvider.setBlogList(blogs)
                self.blogListControl.checkBoxListView.refreshItems()
                # pre-select all
                self.blogListControl.checkBoxListView.checkAll()

    def onExit(self, session, eventDirection): #@UnusedVariable
        if eventDirection == ZWizardPage.NEXT:
            blogs = self._getSelectedBlogList()
            session.setProperty(u"confirm-page.selected-blogs", blogs) #$NON-NLS-1$
            obj = self._getSelectedMediaSite()
            uploadmethod = None
            mediastorageid = None
            if obj is not None and isinstance(obj, ZPublisherSiteDef):
                uploadmethod = u"publisher" #$NON-NLS-1$
            elif obj is not None:
                uploadmethod = u"mediastorage" #$NON-NLS-1$
                mediastorageid = obj.getId()
            session.setProperty(u"confirm-page.file-upload-method", uploadmethod) #$NON-NLS-1$
            session.setProperty(u"confirm-page.file-upload-mediastorage-id", mediastorageid) #$NON-NLS-1$
        return True

    def _getSelectedMediaSite(self):
        data = None
        idx = self.mediaUploadCombo.GetSelection()
        if idx != -1:
            data =  self.mediaUploadCombo.GetClientData(idx)
        return data
    # end _getSelectedMediaSite()

    def _selectMediaSite(self, storeId):
        n = self.mediaUploadCombo.GetCount()
        for idx in range(n):
            data = self.mediaUploadCombo.GetClientData(idx)
            if data and data.getId() == storeId:
                self.mediaUploadCombo.SetSelection(idx)
                self.mediaUploadCombo.validate()
                break

    def _getSelectedBlogList(self):
        rval = self.blogListProvider.getSelectedBlogList()
        return rval
    # end _getSelectedBlogList

    def onBlogCheckedEvent(self, event): #@UnusedVariable
        if len( self.blogListControl.checkBoxListView.getCheckedItems() ) > 0:
            self._fireValidEvent()
        else:
            self._fireInvalidEvent()
Ejemplo n.º 7
0
class ZSynchronizeAccountBlogsDialog(ZHeaderDialog, ZPersistentDialogMixin):
    def __init__(self, parent, account):
        self.account = account
        self.model = ZAccountSynchModel(self.account)
        ZHeaderDialog.__init__(
            self,
            parent,
            wx.ID_ANY,
            _extstr(u"synchronizeaccountdialog.DialogTitle"),
            style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER,
            name=u"ZSynchronizeAccountBlogsDialog")  #$NON-NLS-2$ #$NON-NLS-1$
        ZPersistentDialogMixin.__init__(self,
                                        IZBlogAppUserPrefsKeys.SYNCH_DIALOG)
        self.Layout()

    # end __init__()

    def _getAccount(self):
        return self.account

    # end _getAccount()

    def _createNonHeaderWidgets(self):
        self.staticBox = wx.StaticBox(
            self, wx.ID_ANY, _extstr(u"accountblogs.BlogList"))  #$NON-NLS-1$
        self.blogListProvider = ZBlogCheckboxListContentProvider()
        self.blogListControl = ZCheckBoxListViewWithButtons(
            self.blogListProvider, self)
        self.blogListControl.SetSizeHints(-1, 150)
        self.refreshButton = wx.Button(
            self, wx.ID_ANY,
            _extstr(u"synchronizeaccountdialog.RefreshBlogList"))  #$NON-NLS-1$
        self.animateControl = ZProgressLabelCtrl(self)

    # end _createNonHeaderWidgets()

    def _populateNonHeaderWidgets(self):
        self._showBusy(False)
        blogs = []
        blogs.extend(self._getAccount().getBlogs())
        self._populateProvider(blogs)

    # end _populateNonHeaderWidgets()

    def _populateProvider(self, blogs):
        self.animateControl.setLabel(
            _extstr(
                u"synchronizeaccountdialog.FetchingBlogList"))  #$NON-NLS-1$
        self.blogListProvider.setBlogList(blogs)
        self.blogListControl.checkBoxListView.refreshItems()

    # end _populateProvider()

    def _layoutNonHeaderWidgets(self):

        box = wx.BoxSizer(wx.HORIZONTAL)
        box.Add(self.refreshButton, 0, wx.LEFT | wx.ALL, 5)
        box.Add(self.animateControl, 1,
                wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.ALL, 5)

        sizer = wx.StaticBoxSizer(self.staticBox, wx.VERTICAL)
        sizer.Add(self.blogListControl, 1, wx.EXPAND | wx.ALL, 5)
        sizer.AddSizer(box, 0, wx.LEFT | wx.BOTTOM, 5)
        return sizer

    # end _layoutNonHeaderWidgets()

    def _bindWidgetEvents(self):
        self.Bind(wx.EVT_BUTTON, self.onRefreshBlogList, self.refreshButton)
        self.Bind(ZEVT_CHECKBOX_LIST_CHANGE, self.onBlogCheckedEvent,
                  self.blogListControl)
        self.Bind(ZEVT_REFRESH, self.onRefreshEvent, self)

    # end _bindWidgetEvents()

    def _getHeaderTitle(self):
        return _extstr(u"synchronizeaccountdialog.HeaderTitle")  #$NON-NLS-1$

    # end _getHeaderTitle()

    def _getHeaderMessage(self):
        return _extstr(u"synchronizeaccountdialog.HeaderMessage")  #$NON-NLS-1$

    # end _getHeaderMessage()

    def _getHeaderImagePath(self):
        return u"images/dialogs/mediastorage/manage/header_image.png"  #$NON-NLS-1$

    # end _getHeaderImagePath()

    def _showBusy(self, enable):  #$NON-NLS-1$
        self.animateControl.Show(enable)

    # _showBusy()

    def onRefreshEvent(self, event):
        data = event.getData()
        if u"begin-list-blogs" == data:  #$NON-NLS-1$
            self._showBusy(True)
        elif u"end-list-blogs" == data:  #$NON-NLS-1$
            self._showBusy(False)

    # onRefreshEvent()

    def _refreshBlogList(self):
        # called via runnable ZListBlogsTasks
        fireRefreshEvent(self, u"begin-list-blogs")  #$NON-NLS-1$
        blogs = self.model.listAllBlogs()
        self._populateProvider(blogs)
        fireRefreshEvent(self, u"end-list-blogs")  #$NON-NLS-1$

    # _refreshBlogList()

    def onRefreshBlogList(self, event):  #@UnusedVariable
        thread = ZThread(ZListBlogsTasks(self),
                         u"ZSynchronizeAccountBlogsDialog.ZListBlogsTasks",
                         True)  #$NON-NLS-1$
        thread.start()

    # end onRefreshBlogList()

    def _getButtonTypes(self):
        return ZBaseDialog.OK_BUTTON | ZBaseDialog.CANCEL_BUTTON

    # end _getButtonTypes()

    def getSelectedBlogList(self):
        rval = self.blogListProvider.getSelectedBlogList()
        return rval

    # end _getSelectedBlogList

    def onBlogCheckedEvent(self, event):  #@UnusedVariable
        pass
Ejemplo n.º 8
0
class ZSynchronizeAccountBlogsDialog(ZHeaderDialog, ZPersistentDialogMixin):

    def __init__(self, parent, account):
        self.account = account
        self.model = ZAccountSynchModel(self.account)
        ZHeaderDialog.__init__(self, parent, wx.ID_ANY, _extstr(u"synchronizeaccountdialog.DialogTitle"), style = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER, name = u"ZSynchronizeAccountBlogsDialog") #$NON-NLS-2$ #$NON-NLS-1$
        ZPersistentDialogMixin.__init__(self, IZBlogAppUserPrefsKeys.SYNCH_DIALOG)
        self.Layout()
    # end __init__()

    def _getAccount(self):
        return self.account
    # end _getAccount()

    def _createNonHeaderWidgets(self):
        self.staticBox = wx.StaticBox(self, wx.ID_ANY, _extstr(u"accountblogs.BlogList")) #$NON-NLS-1$
        self.blogListProvider = ZBlogCheckboxListContentProvider()
        self.blogListControl = ZCheckBoxListViewWithButtons(self.blogListProvider, self)
        self.blogListControl.SetSizeHints(-1, 150)
        self.refreshButton = wx.Button(self, wx.ID_ANY, _extstr(u"synchronizeaccountdialog.RefreshBlogList")) #$NON-NLS-1$
        self.animateControl = ZProgressLabelCtrl(self)
    # end _createNonHeaderWidgets()

    def _populateNonHeaderWidgets(self):
        self._showBusy(False)
        blogs = []
        blogs.extend(self._getAccount().getBlogs())
        self._populateProvider(blogs)
    # end _populateNonHeaderWidgets()

    def _populateProvider(self, blogs):
        self.animateControl.setLabel(_extstr(u"synchronizeaccountdialog.FetchingBlogList")) #$NON-NLS-1$
        self.blogListProvider.setBlogList(blogs)
        self.blogListControl.checkBoxListView.refreshItems()
    # end _populateProvider()

    def _layoutNonHeaderWidgets(self):

        box = wx.BoxSizer(wx.HORIZONTAL)
        box.Add(self.refreshButton, 0 , wx.LEFT | wx.ALL, 5)
        box.Add(self.animateControl, 1, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.ALL, 5)

        sizer = wx.StaticBoxSizer(self.staticBox, wx.VERTICAL)
        sizer.Add(self.blogListControl, 1, wx.EXPAND | wx.ALL, 5)
        sizer.AddSizer(box, 0, wx.LEFT | wx.BOTTOM, 5)
        return sizer
    # end _layoutNonHeaderWidgets()

    def _bindWidgetEvents(self):
        self.Bind(wx.EVT_BUTTON, self.onRefreshBlogList, self.refreshButton)
        self.Bind(ZEVT_CHECKBOX_LIST_CHANGE, self.onBlogCheckedEvent, self.blogListControl)
        self.Bind(ZEVT_REFRESH, self.onRefreshEvent, self)
    # end _bindWidgetEvents()

    def _getHeaderTitle(self):
        return _extstr(u"synchronizeaccountdialog.HeaderTitle") #$NON-NLS-1$
    # end _getHeaderTitle()

    def _getHeaderMessage(self):
        return _extstr(u"synchronizeaccountdialog.HeaderMessage") #$NON-NLS-1$
    # end _getHeaderMessage()

    def _getHeaderImagePath(self):
        return u"images/dialogs/mediastorage/manage/header_image.png" #$NON-NLS-1$
    # end _getHeaderImagePath()

    def _showBusy(self, enable): #$NON-NLS-1$
        self.animateControl.Show(enable)
    # _showBusy()

    def onRefreshEvent(self, event):
        data = event.getData()
        if u"begin-list-blogs" == data: #$NON-NLS-1$
            self._showBusy(True)
        elif u"end-list-blogs" == data: #$NON-NLS-1$
            self._showBusy(False)
    # onRefreshEvent()

    def _refreshBlogList(self):
        # called via runnable ZListBlogsTasks
        fireRefreshEvent(self, u"begin-list-blogs") #$NON-NLS-1$
        blogs = self.model.listAllBlogs()
        self._populateProvider(blogs)
        fireRefreshEvent(self, u"end-list-blogs") #$NON-NLS-1$
    # _refreshBlogList()

    def onRefreshBlogList(self, event): #@UnusedVariable
        thread = ZThread(ZListBlogsTasks(self), u"ZSynchronizeAccountBlogsDialog.ZListBlogsTasks", True) #$NON-NLS-1$
        thread.start()

    # end onRefreshBlogList()

    def _getButtonTypes(self):
        return ZBaseDialog.OK_BUTTON | ZBaseDialog.CANCEL_BUTTON
    # end _getButtonTypes()

    def getSelectedBlogList(self):
        rval = self.blogListProvider.getSelectedBlogList()
        return rval
    # end _getSelectedBlogList

    def onBlogCheckedEvent(self, event): #@UnusedVariable
        pass