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()
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()
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()
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()