Ejemplo n.º 1
0
    def initialize(self):
        global _
        _ = get_()

        self._guiCreator = GuiCreator(self, self._application)
        self._guiCreator.initialize()

        self._application.onTreePopupMenu += self.__onTreePopupMenu

        if self._application.mainWindow is not None:
            self._guiCreator.createTools()
Ejemplo n.º 2
0
class Controller(object):
    """
    Класс отвечает за основную работу интерфейса плагина
    """
    def __init__(self, plugin, application):
        """
        """
        self._plugin = plugin
        self._application = application

        self._guiCreator = None

        # Здесь хранится указатель на страницу, над которой щелкнули правой
        # кнопкой мыши
        self._selectedPage = None

        self.CHANGE_PAGE_UID = wx.NewId()

    def initialize(self):
        global _
        _ = get_()

        self._guiCreator = GuiCreator(self, self._application)
        self._guiCreator.initialize()

        self._application.onTreePopupMenu += self.__onTreePopupMenu

        if self._application.mainWindow is not None:
            self._guiCreator.createTools()

    def destroy(self):
        """
        Вызывается при отключении плагина
        """
        self._application.onTreePopupMenu -= self.__onTreePopupMenu

        self._guiCreator.removeTools()
        self._guiCreator.destroy()

    def __onTreePopupMenu(self, menu, page):
        self._selectedPage = page

        menu.Append(self.CHANGE_PAGE_UID, _(u"Change Page Identifier..."))

        self._application.mainWindow.Bind(wx.EVT_MENU,
                                          id=self.CHANGE_PAGE_UID,
                                          handler=self.__onPopupClick)

    def __onPopupClick(self, event):
        assert self._selectedPage is not None

        changeUidWithDialog(self._selectedPage, self._application)
        self._application.mainWindow.Unbind(wx.EVT_MENU,
                                            id=self.CHANGE_PAGE_UID)

        self._selectedPage = None