def OnInit(self): """ Initialize the application""" script_dir = sys.path[0] config_name = os.path.join(script_dir, 'config.ini') ms_name = os.path.join(script_dir, 'doc', 'microservices.ini') sess_var_name = os.path.join(script_dir, 'doc', 'session_variable.ini') var_sets_name = os.path.join(script_dir, 'doc', 'variable_sets.ini') rule_name = os.path.join(script_dir, 'doc', 'rules.ini') app_title = "iRods Admin" wx.InitAllImageHandlers() # The cfg variable stores some configuration variables for the # interface and for the connection to iRODS self.config = Config(script_dir, config_name, ms_name, sess_var_name, var_sets_name, rule_name) self.mdl = AppModel(self.config) if self.config.quick_connect: # The quick init bypass the connection dialog box self.quick_init() else: self.init_conn_info() # If we don't want to work offline: Test the connection status = self.mdl.connect() if status != 0: irodsError(self.mdl, status) return 1 main_frame = MainFrame(self.mdl, app_title) self.SetTopWindow(main_frame) main_frame.Show() return True
def __init__(self, loader): super().__init__(logger=getLogger('root.app.controller')) self.loader = loader self.view = AppView(controller=self) self.model = AppModel(controller=self, view=self.view) self.fade_in_animation = AppFadeInAnimation(self.view) self.fade_out_animation = AppFadeOutAnimation(self.view) self.main_menu = MainMenuController(self) self.onboarding = OnboardingController(self) self.license = LicenseController(self) self.game = GameController(self) self.settings = SettingsController(self) self.bonus_code_activation = BonusCodeActivationController(self) self.main_menu_to_game_transition_animation = TransitionAnimation( fade_out_animation=self.main_menu.fade_out_animation, fade_in_animation=self.game.fade_in_animation) self.main_menu_to_onboarding_transition_animation = TransitionAnimation( fade_out_animation=self.main_menu.fade_out_animation, fade_in_animation=self.onboarding.fade_in_animation) self.game_to_main_menu_transition_animation = TransitionAnimation( fade_out_animation=self.game.fade_out_animation, fade_in_animation=self.main_menu.fade_in_animation) self.main_menu_to_license_transition_animation = TransitionAnimation( fade_out_animation=self.main_menu.fade_out_animation, fade_in_animation=self.license.fade_in_animation) self.license_to_main_menu_transition_animation = TransitionAnimation( fade_out_animation=self.license.fade_out_animation, fade_in_animation=self.main_menu.fade_in_animation) self.game_to_settings_transition_animation = TransitionAnimation( fade_out_animation=self.game.fade_out_animation, fade_in_animation=self.settings.fade_in_animation) self.settings_to_game_transition_animation = TransitionAnimation( fade_out_animation=self.settings.fade_out_animation, fade_in_animation=self.game.fade_in_animation) self.onboarding_to_game_transition_animation = TransitionAnimation( fade_out_animation=self.onboarding.fade_out_animation, fade_in_animation=self.game.fade_in_animation) self.main_menu_to_settings_transition_animation = TransitionAnimation( fade_out_animation=self.main_menu.fade_out_animation, fade_in_animation=self.settings.fade_in_animation) self.settings_to_main_menu_transition_animation = TransitionAnimation( fade_out_animation=self.settings.fade_out_animation, fade_in_animation=self.main_menu.fade_in_animation) self.main_menu_to_bonus_code_activation_transition_animation = TransitionAnimation( fade_out_animation=self.main_menu.fade_out_animation, fade_in_animation=self.bonus_code_activation.fade_in_animation) self.bonus_code_activation_to_main_menu_transition_animation = TransitionAnimation( fade_out_animation=self.bonus_code_activation.fade_out_animation, fade_in_animation=self.main_menu.fade_in_animation) self.fade_in_animation.main_menu_fade_in_animation = self.main_menu.fade_in_animation self.fade_in_animation.license_fade_in_animation = self.license.fade_in_animation self.fade_in_animation.onboarding_fade_in_animation = self.onboarding.fade_in_animation self.fade_in_animation.game_fade_in_animation = self.game.fade_in_animation self.fade_in_animation.settings_fade_in_animation = self.settings.fade_in_animation self.fade_in_animation.bonus_code_activation_fade_in_animation = self.bonus_code_activation.fade_in_animation self.fade_out_animation.main_menu_fade_out_animation = self.main_menu.fade_out_animation self.fade_out_animation.license_fade_out_animation = self.license.fade_out_animation self.fade_out_animation.onboarding_fade_out_animation = self.onboarding.fade_out_animation self.fade_out_animation.game_fade_out_animation = self.game.fade_out_animation self.fade_out_animation.settings_fade_out_animation = self.settings.fade_out_animation self.fade_out_animation.bonus_code_activation_fade_out_animation = self.bonus_code_activation.fade_out_animation self.child_controllers = [ self.main_menu, self.onboarding, self.license, self.game, self.settings, self.bonus_code_activation ]
class AppController(AppBaseController): def __init__(self, loader): super().__init__(logger=getLogger('root.app.controller')) self.loader = loader self.view = AppView(controller=self) self.model = AppModel(controller=self, view=self.view) self.fade_in_animation = AppFadeInAnimation(self.view) self.fade_out_animation = AppFadeOutAnimation(self.view) self.main_menu = MainMenuController(self) self.onboarding = OnboardingController(self) self.license = LicenseController(self) self.game = GameController(self) self.settings = SettingsController(self) self.bonus_code_activation = BonusCodeActivationController(self) self.main_menu_to_game_transition_animation = TransitionAnimation( fade_out_animation=self.main_menu.fade_out_animation, fade_in_animation=self.game.fade_in_animation) self.main_menu_to_onboarding_transition_animation = TransitionAnimation( fade_out_animation=self.main_menu.fade_out_animation, fade_in_animation=self.onboarding.fade_in_animation) self.game_to_main_menu_transition_animation = TransitionAnimation( fade_out_animation=self.game.fade_out_animation, fade_in_animation=self.main_menu.fade_in_animation) self.main_menu_to_license_transition_animation = TransitionAnimation( fade_out_animation=self.main_menu.fade_out_animation, fade_in_animation=self.license.fade_in_animation) self.license_to_main_menu_transition_animation = TransitionAnimation( fade_out_animation=self.license.fade_out_animation, fade_in_animation=self.main_menu.fade_in_animation) self.game_to_settings_transition_animation = TransitionAnimation( fade_out_animation=self.game.fade_out_animation, fade_in_animation=self.settings.fade_in_animation) self.settings_to_game_transition_animation = TransitionAnimation( fade_out_animation=self.settings.fade_out_animation, fade_in_animation=self.game.fade_in_animation) self.onboarding_to_game_transition_animation = TransitionAnimation( fade_out_animation=self.onboarding.fade_out_animation, fade_in_animation=self.game.fade_in_animation) self.main_menu_to_settings_transition_animation = TransitionAnimation( fade_out_animation=self.main_menu.fade_out_animation, fade_in_animation=self.settings.fade_in_animation) self.settings_to_main_menu_transition_animation = TransitionAnimation( fade_out_animation=self.settings.fade_out_animation, fade_in_animation=self.main_menu.fade_in_animation) self.main_menu_to_bonus_code_activation_transition_animation = TransitionAnimation( fade_out_animation=self.main_menu.fade_out_animation, fade_in_animation=self.bonus_code_activation.fade_in_animation) self.bonus_code_activation_to_main_menu_transition_animation = TransitionAnimation( fade_out_animation=self.bonus_code_activation.fade_out_animation, fade_in_animation=self.main_menu.fade_in_animation) self.fade_in_animation.main_menu_fade_in_animation = self.main_menu.fade_in_animation self.fade_in_animation.license_fade_in_animation = self.license.fade_in_animation self.fade_in_animation.onboarding_fade_in_animation = self.onboarding.fade_in_animation self.fade_in_animation.game_fade_in_animation = self.game.fade_in_animation self.fade_in_animation.settings_fade_in_animation = self.settings.fade_in_animation self.fade_in_animation.bonus_code_activation_fade_in_animation = self.bonus_code_activation.fade_in_animation self.fade_out_animation.main_menu_fade_out_animation = self.main_menu.fade_out_animation self.fade_out_animation.license_fade_out_animation = self.license.fade_out_animation self.fade_out_animation.onboarding_fade_out_animation = self.onboarding.fade_out_animation self.fade_out_animation.game_fade_out_animation = self.game.fade_out_animation self.fade_out_animation.settings_fade_out_animation = self.settings.fade_out_animation self.fade_out_animation.bonus_code_activation_fade_out_animation = self.bonus_code_activation.fade_out_animation self.child_controllers = [ self.main_menu, self.onboarding, self.license, self.game, self.settings, self.bonus_code_activation ] def on_update_current_locale(self, new_locale): super().on_update_current_locale(new_locale) self.model.on_save_and_commit_locale(new_locale) def on_save_state(self): super().on_save_state() on_commit() def on_update_clock_state(self, clock_24h_enabled): super().on_update_clock_state(clock_24h_enabled) self.model.on_save_and_commit_clock_state(clock_24h_enabled) def on_fullscreen_button_click(self): WINDOW.set_size(*self.model.fullscreen_resolution) if self.model.fullscreen_mode_available: self.on_fullscreen_mode_turned_on() def on_restore_button_click(self): self.on_fullscreen_mode_turned_off() WINDOW.set_size(*self.settings.model.windowed_resolution) def on_fullscreen_mode_turned_on(self): self.model.on_fullscreen_mode_turned_on() def on_fullscreen_mode_turned_off(self): self.model.on_fullscreen_mode_turned_off() def on_activate_main_menu_view(self): self.main_menu.on_activate_view() def on_activate_game_view(self): self.game.on_activate_view() def on_open_license(self): self.game_to_main_menu_transition_animation.on_deactivate() self.license_to_main_menu_transition_animation.on_deactivate() self.settings_to_main_menu_transition_animation.on_deactivate() self.bonus_code_activation_to_main_menu_transition_animation.on_deactivate( ) self.main_menu_to_license_transition_animation.on_activate() def on_close_license(self): self.main_menu_to_license_transition_animation.on_deactivate() self.license_to_main_menu_transition_animation.on_activate() def on_open_onboarding(self): self.game_to_main_menu_transition_animation.on_deactivate() self.license_to_main_menu_transition_animation.on_deactivate() self.settings_to_main_menu_transition_animation.on_deactivate() self.bonus_code_activation_to_main_menu_transition_animation.on_deactivate( ) self.main_menu_to_onboarding_transition_animation.on_activate() def on_close_onboarding(self): self.game.on_unlock_map(PASSENGER_MAP) self.main_menu_to_onboarding_transition_animation.on_deactivate() self.onboarding_to_game_transition_animation.on_activate() self.onboarding.on_save_and_commit_onboarding_state() self.game.on_resume_game() def on_back_to_the_station(self): self.game_to_main_menu_transition_animation.on_deactivate() self.license_to_main_menu_transition_animation.on_deactivate() self.settings_to_main_menu_transition_animation.on_deactivate() self.bonus_code_activation_to_main_menu_transition_animation.on_deactivate( ) self.main_menu_to_game_transition_animation.on_activate() self.game.on_resume_game() def on_open_bonus_code(self): self.game_to_main_menu_transition_animation.on_deactivate() self.license_to_main_menu_transition_animation.on_deactivate() self.settings_to_main_menu_transition_animation.on_deactivate() self.bonus_code_activation_to_main_menu_transition_animation.on_deactivate( ) self.main_menu_to_bonus_code_activation_transition_animation.on_activate( ) def on_close_bonus_code(self): self.main_menu_to_bonus_code_activation_transition_animation.on_deactivate( ) self.bonus_code_activation_to_main_menu_transition_animation.on_activate( ) def on_open_settings_from_main_menu(self): self.game_to_main_menu_transition_animation.on_deactivate() self.license_to_main_menu_transition_animation.on_deactivate() self.settings_to_main_menu_transition_animation.on_deactivate() self.bonus_code_activation_to_main_menu_transition_animation.on_deactivate( ) self.main_menu_to_settings_transition_animation.on_activate() self.settings.navigated_from_main_menu = True def on_open_settings_from_game(self): self.main_menu_to_game_transition_animation.on_deactivate() self.settings_to_game_transition_animation.on_deactivate() self.onboarding_to_game_transition_animation.on_deactivate() self.game_to_settings_transition_animation.on_activate() self.settings.navigated_from_game = True def on_close_settings(self): if self.settings.navigated_from_main_menu: self.settings.navigated_from_main_menu = False self.main_menu_to_settings_transition_animation.on_deactivate() self.settings_to_main_menu_transition_animation.on_activate() elif self.settings.navigated_from_game: self.settings.navigated_from_game = False self.game_to_settings_transition_animation.on_deactivate() self.settings_to_game_transition_animation.on_activate() def on_activate_new_bonus_code(self, sha512_hash): self.game.on_activate_new_bonus_code(sha512_hash) def on_accept_changes(self, windowed_resolution, display_fps, fade_animations_enabled, clock_24h_enabled, level_up_notification_enabled, feature_unlocked_notification_enabled, construction_completed_notification_enabled, enough_money_notification_enabled, bonus_expired_notification_enabled, shop_storage_notification_enabled, voice_not_found_notification_enabled, master_volume, announcements_enabled): self.settings.on_accept_changes( windowed_resolution, display_fps, fade_animations_enabled, clock_24h_enabled, level_up_notification_enabled, feature_unlocked_notification_enabled, construction_completed_notification_enabled, enough_money_notification_enabled, bonus_expired_notification_enabled, shop_storage_notification_enabled, voice_not_found_notification_enabled, master_volume, announcements_enabled) self.on_update_fade_animation_state(fade_animations_enabled) self.on_update_clock_state(clock_24h_enabled) self.on_change_level_up_notification_state( level_up_notification_enabled) self.on_change_feature_unlocked_notification_state( feature_unlocked_notification_enabled) self.on_change_construction_completed_notification_state( construction_completed_notification_enabled) self.on_change_enough_money_notification_state( enough_money_notification_enabled) self.on_change_bonus_expired_notification_state( bonus_expired_notification_enabled) self.on_change_shop_storage_notification_state( shop_storage_notification_enabled) self.on_change_voice_not_found_notification_state( voice_not_found_notification_enabled) self.on_master_volume_update(master_volume) self.on_update_announcements_state(announcements_enabled) if not WINDOW.fullscreen: WINDOW.set_size(*windowed_resolution) if display_fps: self.view.fps_display.on_activate() else: self.view.fps_display.on_deactivate() def on_save_and_commit_bonus_code_abuse(self): self.model.on_save_and_commit_bonus_code_abuse() def on_master_volume_update(self, new_master_volume): self.game.on_master_volume_update(new_master_volume) def on_update_announcements_state(self, new_state): self.game.on_update_announcements_state(new_state)
class MyApplication(wx.App): """The wx application""" def __init__(self, redirect=True, filename=None): """ Constructor @param redirect: Redirect the error logs in a file @type redirect: boolean @param filename: The file where the logs are redirected @type filename: string (a path) """ self.mdl = None self.config = None wx.App.__init__(self, redirect, filename) def OnInit(self): """ Initialize the application""" script_dir = sys.path[0] config_name = os.path.join(script_dir, 'config.ini') ms_name = os.path.join(script_dir, 'doc', 'microservices.ini') sess_var_name = os.path.join(script_dir, 'doc', 'session_variable.ini') var_sets_name = os.path.join(script_dir, 'doc', 'variable_sets.ini') rule_name = os.path.join(script_dir, 'doc', 'rules.ini') app_title = "iRods Admin" wx.InitAllImageHandlers() # The cfg variable stores some configuration variables for the # interface and for the connection to iRODS self.config = Config(script_dir, config_name, ms_name, sess_var_name, var_sets_name, rule_name) self.mdl = AppModel(self.config) if self.config.quick_connect: # The quick init bypass the connection dialog box self.quick_init() else: self.init_conn_info() # If we don't want to work offline: Test the connection status = self.mdl.connect() if status != 0: irodsError(self.mdl, status) return 1 main_frame = MainFrame(self.mdl, app_title) self.SetTopWindow(main_frame) main_frame.Show() return True def init_conn_info(self): """Display a connection dialog to select an iRods server to connect to""" status = -1 model = self.mdl while status != 0: con_dlg = ConnectionDialog(self.config, self.config.irods_username, self.config.irods_hostname, self.config.irods_zone, str(self.config.irods_port), "") res = con_dlg.ShowModal() if res == wx.ID_CANCEL: sys.exit(0) elif res == wx.ID_OK: # If the user does not enter a password: # -> we take the one from .irodsA if con_dlg.tc_password.GetValue() == "": obf_password = model.get_password() else: tc_pwd = con_dlg.tc_password.GetValue() obf_password = model.encode(tc_pwd.encode("ascii")) self.config.set_password(obf_password) host = con_dlg.tc_host.GetValue().encode("ascii") port = int(con_dlg.tc_port.GetValue()) user = con_dlg.tc_name.GetValue().encode("ascii") zone = con_dlg.tc_zone.GetValue().encode("ascii") status = model.connect_infos(host, port, user, zone) con_dlg.Destroy() if status != 0: irodsError(self.mdl, status) model.disconnect() def quick_init(self): """Use the information from the .irodsEnv file to connect to an iRods server""" self.config.set_password(self.mdl.get_password())