def __init__(self, parentWindow, botModel, settingModel): """Constructor method.""" self.settingModel = settingModel self.handler = None # load addbotwizard.glade file self.builder = gtk.Builder() self.builder.add_from_file(resourcePath('addbotwizard.glade')) self.assistant = Assistant() self.assistant.set_property('title', 'Budabot - Add Bot Wizard') # position the wizard on top of control panel's window self.assistant.set_transient_for(parentWindow) self.assistant.set_property('window-position', gtk.WIN_POS_CENTER_ON_PARENT) self.assistant.connect('apply', self.onApplyClicked) self.assistant.connect('cancel', self.onCancelClicked) self.assistant.connect('close', self.onCloseClicked) # create pages self.selectActionPage = SelectActionPage(self) self.selectImportPage = SelectImportPage(self) self.selectBotInstallDirPage = SelectBotInstallDirectoryPage(self) self.enterAccountInfoPage = EnterAccountInfoPage(self) self.enterCharacterInfoPage = EnterCharacterInfoPage(self) self.selectBotTypePage = SelectBotTypePage(self) self.enterSuperAdminPage = EnterSuperAdminPage(self) self.selectDBSettingsPage = SelectDatabaseSettingsPage(self) self.selectDBTypePage = SelectDatabaseTypePage(self) self.enterSqliteSettingsPage = EnterSqliteSettingsPage(self) self.enterMysqlSettingsPage = EnterMysqlSettingsPage(self) self.selectModuleStatusPage = SelectDefaultModuleStatusPage(self) self.botNamePage = NameBotPage(self) self.finishPage = FinishPage(self) # Add pages to the wizard self.assistant.appendPage(self.selectActionPage) # first appended page is the starting page self.assistant.appendPage(self.selectImportPage) self.assistant.appendPage(self.selectBotInstallDirPage) self.assistant.appendPage(self.enterAccountInfoPage) self.assistant.appendPage(self.enterCharacterInfoPage) self.assistant.appendPage(self.selectBotTypePage) self.assistant.appendPage(self.enterSuperAdminPage) self.assistant.appendPage(self.selectDBSettingsPage) self.assistant.appendPage(self.selectDBTypePage) self.assistant.appendPage(self.enterSqliteSettingsPage) self.assistant.appendPage(self.enterMysqlSettingsPage) self.assistant.appendPage(self.selectModuleStatusPage) self.assistant.appendPage(self.botNamePage) self.assistant.appendPage(self.finishPage) self.selectActionPage.connect('left', self.onSelectActionPageLeft) # connect any 'activate-link' signals (if available) to onLink() handler for object in self.builder.get_objects(): try: object.connect('activate-link', self.onLink) except TypeError: pass
class AddBotWizardController: """""" def __init__(self, parentWindow, botModel, settingModel): """Constructor method.""" self.settingModel = settingModel self.handler = None # load addbotwizard.glade file self.builder = gtk.Builder() self.builder.add_from_file(resourcePath('addbotwizard.glade')) self.assistant = Assistant() self.assistant.set_property('title', 'Budabot - Add Bot Wizard') # position the wizard on top of control panel's window self.assistant.set_transient_for(parentWindow) self.assistant.set_property('window-position', gtk.WIN_POS_CENTER_ON_PARENT) self.assistant.connect('apply', self.onApplyClicked) self.assistant.connect('cancel', self.onCancelClicked) self.assistant.connect('close', self.onCloseClicked) # create pages self.selectActionPage = SelectActionPage(self) self.selectImportPage = SelectImportPage(self) self.selectBotInstallDirPage = SelectBotInstallDirectoryPage(self) self.enterAccountInfoPage = EnterAccountInfoPage(self) self.enterCharacterInfoPage = EnterCharacterInfoPage(self) self.selectBotTypePage = SelectBotTypePage(self) self.enterSuperAdminPage = EnterSuperAdminPage(self) self.selectDBSettingsPage = SelectDatabaseSettingsPage(self) self.selectDBTypePage = SelectDatabaseTypePage(self) self.enterSqliteSettingsPage = EnterSqliteSettingsPage(self) self.enterMysqlSettingsPage = EnterMysqlSettingsPage(self) self.selectModuleStatusPage = SelectDefaultModuleStatusPage(self) self.botNamePage = NameBotPage(self) self.finishPage = FinishPage(self) # Add pages to the wizard self.assistant.appendPage(self.selectActionPage) # first appended page is the starting page self.assistant.appendPage(self.selectImportPage) self.assistant.appendPage(self.selectBotInstallDirPage) self.assistant.appendPage(self.enterAccountInfoPage) self.assistant.appendPage(self.enterCharacterInfoPage) self.assistant.appendPage(self.selectBotTypePage) self.assistant.appendPage(self.enterSuperAdminPage) self.assistant.appendPage(self.selectDBSettingsPage) self.assistant.appendPage(self.selectDBTypePage) self.assistant.appendPage(self.enterSqliteSettingsPage) self.assistant.appendPage(self.enterMysqlSettingsPage) self.assistant.appendPage(self.selectModuleStatusPage) self.assistant.appendPage(self.botNamePage) self.assistant.appendPage(self.finishPage) self.selectActionPage.connect('left', self.onSelectActionPageLeft) # connect any 'activate-link' signals (if available) to onLink() handler for object in self.builder.get_objects(): try: object.connect('activate-link', self.onLink) except TypeError: pass def getViewObject(self, name): """Wrapper method for requesting objects from Gtk's Builder.""" return self.builder.get_object(name) def getSettingModel(self): """Returns the SettingModel object.""" return self.settingModel def getAssistant(self): """Returns assistant's object.""" return self.assistant def show(self): """This method shows the wizard to user.""" self.assistant.show_all() def hide(self): """This method hides the wizard from user.""" self.assistant.hide() def onLink(self, caller, uri): """Handles any clicked hyperlinks by opening them to default browser.""" webbrowser.open(uri) return True def onApplyClicked(self, caller): """""" self.handler.apply() def onCancelClicked(self, caller): """""" self.hide() def onCloseClicked(self, caller): """""" self.hide() def onSelectActionPageLeft(self, page): """This signal handler is called when wizard leaves select action page.""" if page.getActionType() == SelectActionPage.TYPE_IMPORT: self.handler = ImportHandler(self) elif page.getActionType() == SelectActionPage.TYPE_ADDNEW: self.handler = AddNewHandler(self) def __getattr__(self, name): """Called when given attribute name is not found. Delegates any attribute requests to current handler. """ return getattr(self.handler, name)