def __init__(self): super(RootWidget, self).__init__(orientation="vertical", size=(800, 400)) self.menu = BoxLayout(orientation="horizontal", size_hint=(1, None), size=(1, 40)) self.panels = BoxLayout(orientation="horizontal") button_start = Button(text="Start", size_hint=(0.4, 1), font_size=14) button_start.bind(on_press=self.configure_and_turn_on_sources) button_stop = Button(text="Stop", size_hint=(0.4, 1), font_size=14) button_stop.bind(on_press=self.turn_off) button_super_controller = Button(text="Launch Multiple Rutines", size_hint=(0.8, 1)) button_super_controller.bind(on_press=self.super_controller) self.menu.add_widget(button_super_controller) self.menu.add_widget(button_start) self.menu.add_widget(button_stop) self.proces = DataPanel() self.data = ExtractPanel() self.source = SourcePanel() self.data.pass_source(self.source.pass_sources()) self.data.pass_functions(self.proces.pass_functions()) self.panels.add_widget(self.proces, 0) self.panels.add_widget(self.data, 1) self.panels.add_widget(self.source, 2) self.add_widget(self.menu) self.add_widget(self.panels) self.coordinator = None self.super_coordinator = None self.data.activate_extract(self.get_bram_dictionary)
class RootWidget(BoxLayout): def __init__(self): super(RootWidget, self).__init__(orientation="vertical", size=(800, 400)) self.menu = BoxLayout(orientation="horizontal", size_hint=(1, None), size=(1, 40)) self.panels = BoxLayout(orientation="horizontal") button_start = Button(text="Start", size_hint=(0.4, 1), font_size=14) button_start.bind(on_press=self.configure_and_turn_on_sources) button_stop = Button(text="Stop", size_hint=(0.4, 1), font_size=14) button_stop.bind(on_press=self.turn_off) button_super_controller = Button(text="Launch Multiple Rutines", size_hint=(0.8, 1)) button_super_controller.bind(on_press=self.super_controller) self.menu.add_widget(button_super_controller) self.menu.add_widget(button_start) self.menu.add_widget(button_stop) self.proces = DataPanel() self.data = ExtractPanel() self.source = SourcePanel() self.data.pass_source(self.source.pass_sources()) self.data.pass_functions(self.proces.pass_functions()) self.panels.add_widget(self.proces, 0) self.panels.add_widget(self.data, 1) self.panels.add_widget(self.source, 2) self.add_widget(self.menu) self.add_widget(self.panels) self.coordinator = None self.super_coordinator = None self.data.activate_extract(self.get_bram_dictionary) def configure_and_turn_on_sources(self, instance): source_dictionary = self.source.get_configurations() data_dictionary = self.data.get_configurations() function_dictionary = self.proces.get_configurations() # processing_dictionary = {} print data_dictionary if not self.coordinator == None: self.coordinator.stop_the_process() try: self.coordinator = Coordinator(source_dictionary, data_dictionary, function_dictionary) except FailToConnectTelnet: print "No se puede connectar" return # coordinator runs in a new thread self.coordinator.start() def configure_super_controller(self, configuration_list): """this methos gets the configuratio to run multiple routines.""" print "super controller starter" keys = configuration_list.keys() keys.sort() full_dictionary = [] for path_key in keys: path = configuration_list[path_key] self.data.load_data(path) source_dictionary = self.source.get_configurations() data_dictionary = self.data.get_configurations() function_dictionary = self.proces.get_configurations() full_dictionary.append((source_dictionary, data_dictionary, function_dictionary)) self.super_coordinator = SuperCoordinator(full_dictionary) self.super_coordinator.start() def turn_off(self, instance): self.stop_the_sources() def stop_the_sources(self): self.stop_coordinator() self.stop_super_coordinator() def stop_super_coordinator(self): if self.super_coordinator == None: return self.super_coordinator.stop_the_process() def stop_coordinator(self): if self.coordinator == None: return self.coordinator.stop_the_process() def get_bram_dictionary(self): free_run = self.data.get_configurations()["roach"]["bram"] self.proces.update_free_run_dictionary(free_run) def super_controller(self, instance): pannel = SuperControllerGUI(self) popup = Popup( title="Choose Rutines", content=pannel, auto_dismiss=False, size_hint=(None, None), size=(400, 400) ) pannel.add_popup(popup) popup.open()