Esempio n. 1
0
    def __init__(self, parent):
        self.model = ZTranslationManagerModel()
        self.selectedTranslation = None

        style = wx.DEFAULT_FRAME_STYLE | wx.FULL_REPAINT_ON_RESIZE | wx.CLIP_CHILDREN
        ZBaseWindow.__init__(self,
                             parent,
                             _extstr(u"translationmanager.TranslationManager"),
                             style=style)  #$NON-NLS-1$
        ZPersistentDialogMixin.__init__(
            self, IZBlogAppUserPrefsKeys.TRANSLATION_WINDOW)
        self.Layout()
Esempio n. 2
0
    def __init__(self, parent):
        self.model = ZTranslationManagerModel()
        self.selectedTranslation = None

        style = wx.DEFAULT_FRAME_STYLE | wx.FULL_REPAINT_ON_RESIZE | wx.CLIP_CHILDREN
        ZBaseWindow.__init__(self, parent, _extstr(u"translationmanager.TranslationManager"), style = style) #$NON-NLS-1$
        ZPersistentDialogMixin.__init__(self, IZBlogAppUserPrefsKeys.TRANSLATION_WINDOW)
        self.Layout()
Esempio n. 3
0
class ZTranslationManagerWindow(ZBaseWindow, ZPersistentDialogMixin):
    def __init__(self, parent):
        self.model = ZTranslationManagerModel()
        self.selectedTranslation = None

        style = wx.DEFAULT_FRAME_STYLE | wx.FULL_REPAINT_ON_RESIZE | wx.CLIP_CHILDREN
        ZBaseWindow.__init__(self,
                             parent,
                             _extstr(u"translationmanager.TranslationManager"),
                             style=style)  #$NON-NLS-1$
        ZPersistentDialogMixin.__init__(
            self, IZBlogAppUserPrefsKeys.TRANSLATION_WINDOW)
        self.Layout()

    # end __init__()

    def getModel(self):
        return self.model

    # end getModel()

    def _createWindowWidgets(self, parent):
        self.headerPanel = self._createHeaderPanel(parent)
        self.headerStaticLine = wx.StaticLine(parent, wx.ID_ANY)

        self.bodyPanel = wx.Panel(parent, wx.ID_ANY)

        self.staticBox = wx.StaticBox(
            self.bodyPanel, wx.ID_ANY,
            _extstr(u"translationmanager.Translations"))  #$NON-NLS-1$

        self.translationProvider = ZTranslationListProvider(self.model)
        self.translationList = ZListViewEx(self.translationProvider,
                                           self.bodyPanel)
        self.translationList.SetMinSize(wx.Size(300, 200))

        self.newButton = wx.Button(
            self.bodyPanel, wx.ID_ANY,
            _extstr(u"translationmanager.New"))  #$NON-NLS-1$
        self.editButton = wx.Button(
            self.bodyPanel, wx.ID_ANY,
            _extstr(u"translationmanager.Edit"))  #$NON-NLS-1$
        self.editButton.Enable(False)

        self.staticLine = wx.StaticLine(self.bodyPanel, wx.ID_ANY)

    # end _createWindowWidgets()

    def _createHeaderPanel(self, parent):
        panel = wx.Panel(parent, wx.ID_ANY)
        panel.SetBackgroundColour(wx.WHITE)

        self.headerLink = wx.HyperlinkCtrl(panel, wx.ID_ANY,
                                           self._getHeaderTitle(),
                                           self._getHeaderHelpURL())
        self.headerLink.SetFont(getDefaultFontBold())
        self.headerMessage = wx.StaticText(panel, wx.ID_ANY,
                                           self._getHeaderMessage())
        headerImagePath = self._getHeaderImagePath()
        if not headerImagePath:
            headerImagePath = u"images/dialogs/image/header_image.png"  #$NON-NLS-1$
        self.headerIcon = ZStaticBitmap(
            panel,
            getResourceRegistry().getBitmap(headerImagePath))

        linkAndMsgSizer = wx.BoxSizer(wx.VERTICAL)
        linkAndMsgSizer.Add(self.headerLink, 0, wx.ALL, 2)
        linkAndMsgSizer.Add(self.headerMessage, 1, wx.EXPAND | wx.ALL, 2)

        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.AddSizer(linkAndMsgSizer, 1, wx.EXPAND | wx.ALL, 5)
        sizer.Add(self.headerIcon, 0, wx.EXPAND | wx.ALL, 10)

        panel.SetAutoLayout(True)
        panel.SetSizer(sizer)

        return panel

    # end _createHeaderPanel()

    def _populateWindowWidgets(self):
        self.SetIcons(getResourceRegistry().getIconBundle(ICON_IMAGES))
        self.refresh()

    # end _populateWindowWidgets()

    def _layoutWindowWidgets(self):
        staticBoxSizer = wx.StaticBoxSizer(self.staticBox, wx.VERTICAL)

        buttonSizer = wx.BoxSizer(wx.HORIZONTAL)
        buttonSizer.Add(self.newButton, 0, wx.ALL | wx.EXPAND, 2)
        buttonSizer.Add(self.editButton, 0, wx.ALL | wx.EXPAND, 2)

        staticBoxSizer.Add(self.translationList, 1, wx.ALL | wx.EXPAND, 3)
        staticBoxSizer.AddSizer(buttonSizer, 0, wx.ALL | wx.EXPAND, 2)

        self.bodyPanel.SetSizer(staticBoxSizer)
        self.bodyPanel.SetAutoLayout(True)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.headerPanel, 0, wx.EXPAND | wx.ALL, 0)
        sizer.Add(self.headerStaticLine, 0, wx.EXPAND | wx.ALL, 0)
        sizer.Add(self.bodyPanel, 1, wx.EXPAND | wx.ALL, 5)

        return sizer

    # end _layoutWindowWidgets()

    def _bindWidgetEvents(self):
        self.Bind(wx.EVT_BUTTON, self.onAdd, self.newButton)
        self.Bind(wx.EVT_BUTTON, self.onEdit, self.editButton)
        self.Bind(wx.EVT_CLOSE, self.onClose, self)
        self.Bind(ZEVT_REFRESH, self.onRefresh, self)
        self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.onTranslationSelected,
                  self.translationList)
        self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.onEdit,
                  self.translationList)

    # end _bindWidgetEvents()

    def onRefresh(self, event):
        self.translationList.Refresh()
        event.Skip()

    # end onRefresh()

    def onAdd(self, event):
        dialog = ZNewTranslationDialog(self, self.model)
        result = dialog.ShowModal()
        if result == wx.ID_OK:
            busyIndicator = wx.BusyCursor()
            localeStr = dialog.getData()
            translation = self.model.createNewTranslation(localeStr)
            self.translationProvider.updateImageList()
            self.translationList.refresh()
            translationName = self.model.getNameForLocale(
                translation.getLocale())
            editor = ZTranslationEditor(self, translation,
                                        self.model.getDefaultTranslation(),
                                        translationName)
            del busyIndicator
            editor.ShowModal()
        self.refresh()
        event.Skip()

    # end onAdd()

    def onEdit(self, event):
        busyIndicator = wx.BusyCursor()
        idx = self.translationList.getSelection()[0]
        translation = self.model.getTranslations()[idx]
        translation.load()
        translationName = self.model.getNameForLocale(translation.getLocale())
        editor = ZTranslationEditor(self, translation,
                                    self.model.getDefaultTranslation(),
                                    translationName)
        del busyIndicator
        editor.ShowModal()
        event.Skip()

    # end onEdit()

    def onTranslationSelected(self, event):
        self.selectedTranslation = self.model.getTranslations()[
            event.GetItem().GetId()]
        self.editButton.Enable(True)
        self.refresh()
        event.Skip()

    # end onTranslationSelected()

    def _setInitialFocus(self):
        pass

    # end _setInitialFocus()

    def refresh(self):
        self.translationList.refresh()

    # end refresh()

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

    # end _getHeaderTitle()

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

    # end _getHeaderMessage()

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

    # end _getHeaderImagePath()

    def _getHeaderHelpURL(self):
        return u"http://www.zoundry.com"  #$NON-NLS-1$

    # end _getHeaderHelpUrl()

    def onClose(self, event):
        global TRANSLATION_MANAGER_WINDOW
        TRANSLATION_MANAGER_WINDOW = None
        event.Skip()
Esempio n. 4
0
class ZTranslationManagerWindow(ZBaseWindow, ZPersistentDialogMixin):

    def __init__(self, parent):
        self.model = ZTranslationManagerModel()
        self.selectedTranslation = None

        style = wx.DEFAULT_FRAME_STYLE | wx.FULL_REPAINT_ON_RESIZE | wx.CLIP_CHILDREN
        ZBaseWindow.__init__(self, parent, _extstr(u"translationmanager.TranslationManager"), style = style) #$NON-NLS-1$
        ZPersistentDialogMixin.__init__(self, IZBlogAppUserPrefsKeys.TRANSLATION_WINDOW)
        self.Layout()
    # end __init__()

    def getModel(self):
        return self.model
    # end getModel()

    def _createWindowWidgets(self, parent):
        self.headerPanel = self._createHeaderPanel(parent)
        self.headerStaticLine = wx.StaticLine(parent, wx.ID_ANY)

        self.bodyPanel = wx.Panel(parent, wx.ID_ANY)

        self.staticBox = wx.StaticBox(self.bodyPanel, wx.ID_ANY, _extstr(u"translationmanager.Translations")) #$NON-NLS-1$

        self.translationProvider = ZTranslationListProvider(self.model)
        self.translationList = ZListViewEx(self.translationProvider, self.bodyPanel)
        self.translationList.SetMinSize(wx.Size(300, 200))

        self.newButton = wx.Button(self.bodyPanel, wx.ID_ANY, _extstr(u"translationmanager.New")) #$NON-NLS-1$
        self.editButton = wx.Button(self.bodyPanel, wx.ID_ANY, _extstr(u"translationmanager.Edit")) #$NON-NLS-1$
        self.editButton.Enable(False)

        self.staticLine = wx.StaticLine(self.bodyPanel, wx.ID_ANY)
    # end _createWindowWidgets()

    def _createHeaderPanel(self, parent):
        panel = wx.Panel(parent, wx.ID_ANY)
        panel.SetBackgroundColour(wx.WHITE)

        self.headerLink = wx.HyperlinkCtrl(panel, wx.ID_ANY, self._getHeaderTitle(), self._getHeaderHelpURL())
        self.headerLink.SetFont(getDefaultFontBold())
        self.headerMessage = wx.StaticText(panel, wx.ID_ANY, self._getHeaderMessage())
        headerImagePath = self._getHeaderImagePath()
        if not headerImagePath:
            headerImagePath = u"images/dialogs/image/header_image.png" #$NON-NLS-1$
        self.headerIcon = ZStaticBitmap(panel, getResourceRegistry().getBitmap(headerImagePath))

        linkAndMsgSizer = wx.BoxSizer(wx.VERTICAL)
        linkAndMsgSizer.Add(self.headerLink, 0, wx.ALL, 2)
        linkAndMsgSizer.Add(self.headerMessage, 1, wx.EXPAND | wx.ALL, 2)

        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.AddSizer(linkAndMsgSizer, 1, wx.EXPAND | wx.ALL, 5)
        sizer.Add(self.headerIcon, 0, wx.EXPAND | wx.ALL, 10)

        panel.SetAutoLayout(True)
        panel.SetSizer(sizer)

        return panel
    # end _createHeaderPanel()

    def _populateWindowWidgets(self):
        self.SetIcons(getResourceRegistry().getIconBundle(ICON_IMAGES))
        self.refresh()
    # end _populateWindowWidgets()

    def _layoutWindowWidgets(self):
        staticBoxSizer = wx.StaticBoxSizer(self.staticBox, wx.VERTICAL)

        buttonSizer = wx.BoxSizer(wx.HORIZONTAL)
        buttonSizer.Add(self.newButton, 0, wx.ALL | wx.EXPAND, 2)
        buttonSizer.Add(self.editButton, 0, wx.ALL | wx.EXPAND, 2)

        staticBoxSizer.Add(self.translationList, 1, wx.ALL | wx.EXPAND, 3)
        staticBoxSizer.AddSizer(buttonSizer, 0, wx.ALL | wx.EXPAND, 2)

        self.bodyPanel.SetSizer(staticBoxSizer)
        self.bodyPanel.SetAutoLayout(True)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.headerPanel, 0, wx.EXPAND | wx.ALL, 0)
        sizer.Add(self.headerStaticLine, 0, wx.EXPAND | wx.ALL, 0)
        sizer.Add(self.bodyPanel, 1, wx.EXPAND | wx.ALL, 5)

        return sizer
    # end _layoutWindowWidgets()

    def _bindWidgetEvents(self):
        self.Bind(wx.EVT_BUTTON, self.onAdd, self.newButton)
        self.Bind(wx.EVT_BUTTON, self.onEdit, self.editButton)
        self.Bind(wx.EVT_CLOSE, self.onClose, self)
        self.Bind(ZEVT_REFRESH, self.onRefresh, self)
        self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.onTranslationSelected, self.translationList)
        self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.onEdit, self.translationList)
    # end _bindWidgetEvents()

    def onRefresh(self, event):
        self.translationList.Refresh()
        event.Skip()
    # end onRefresh()

    def onAdd(self, event):
        dialog = ZNewTranslationDialog(self, self.model)
        result = dialog.ShowModal()
        if result == wx.ID_OK:
            busyIndicator = wx.BusyCursor()
            localeStr = dialog.getData()
            translation = self.model.createNewTranslation(localeStr)
            self.translationProvider.updateImageList()
            self.translationList.refresh()
            translationName = self.model.getNameForLocale(translation.getLocale())
            editor = ZTranslationEditor(self, translation, self.model.getDefaultTranslation(), translationName)
            del busyIndicator
            editor.ShowModal()
        self.refresh()
        event.Skip()
    # end onAdd()

    def onEdit(self, event):
        busyIndicator = wx.BusyCursor()
        idx = self.translationList.getSelection()[0]
        translation = self.model.getTranslations()[idx]
        translation.load()
        translationName = self.model.getNameForLocale(translation.getLocale())
        editor = ZTranslationEditor(self, translation, self.model.getDefaultTranslation(), translationName)
        del busyIndicator
        editor.ShowModal()
        event.Skip()
    # end onEdit()

    def onTranslationSelected(self, event):
        self.selectedTranslation = self.model.getTranslations()[event.GetItem().GetId()]
        self.editButton.Enable(True)
        self.refresh()
        event.Skip()
    # end onTranslationSelected()

    def _setInitialFocus(self):
        pass
    # end _setInitialFocus()

    def refresh(self):
        self.translationList.refresh()
    # end refresh()

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

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

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

    def _getHeaderHelpURL(self):
        return u"http://www.zoundry.com" #$NON-NLS-1$
    # end _getHeaderHelpUrl()

    def onClose(self, event):
        global TRANSLATION_MANAGER_WINDOW
        TRANSLATION_MANAGER_WINDOW = None
        event.Skip()