Example #1
0
	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
Example #2
0
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)