def on_slave_icon_selected(self, filename): """Called when the user selects a slave in the slave icon view.""" from saplib import saputils # Add the slave into the slave graph. bus_type = self.sc.get_bus_type() tags = saputils.get_module_tags(filename, bus_type) module_name = tags["module"] filename = saputils.find_module_filename(module_name) self.property_view.set_node(module_name, filename, tags)
def on_slave_add(self, filename, slave_type, index): """Called when the user visually drops a slave box into a valid location in one of the slave buses.""" # print "entered on slave add" from saplib import saputils from sap_controller import SlaveType # print "filename: " + filename # Add the slave to the slave graph. bus_type = self.sc.get_bus_type() tags = saputils.get_module_tags(filename, bus_type) name_index = 0 name = tags["module"] p_count = self.sc.get_number_of_slaves(SlaveType.PERIPHERAL) m_count = self.sc.get_number_of_slaves(SlaveType.MEMORY) # Check peripheral bus for the name. done = False while not done: # print "checking names" for i in xrange(p_count): sname = self.sc.get_slave_name(SlaveType.PERIPHERAL, i) if sname == name + str(name_index): name_index += 1 continue # XXX needed? Just continues for loop ... for i in xrange(m_count): sname = self.sc.get_slave_name(SlaveType.MEMORY, i) if sname == name + str(name_index): name_index += 1 continue # XXX needed? Just continues for loop ... done = True self.sc.add_slave(name + str(name_index), filename, slave_type, index) self.gd.force_update() self.project_view.setup_project_view() return True
def __init__(self, filename=""): '''Initialize and display the Sap GUI.''' os.environ["SAPLIB_BASE"] = os.path.join(sys.path[0], os.pardir, "saplib") from saplib import saputils import sap_controller as sc import graph_drawer import slave_icon_view as siv import property_view as pv import project_view import project_properties_view as ppv import module_view import status_text import open_dialog import save_dialog import properties_dialog # Load the sap controller. builderfile = "sap_gui.glade" windowname = "Sap IDE" builder = gtk.Builder() builder.add_from_file(builderfile) # Instantiate the singleton. sv = builder.get_object("status_textview") self.status = status_text.StatusText(sv) # self.status.set_print_level(3) self.status.print_verbose(__file__, "Sap GUI Started!") self.sc = sc.SapController() self.module_view = module_view.ModuleView(self.sc) self.module_view.set_on_update_callback(self.on_properties_update) self.module_view.set_on_bind_callback(self.on_bind) self.module_view.set_on_unbind_callback(self.on_unbind) self.ppv = ppv.ProjectPropertiesView(self.sc) self.ppv.set_project_name_change_callback(self.on_project_name_changed) self.ppv.set_vendor_tool_change_callback(self.on_vendor_tools_changed) self.ppv.set_bus_change_callback(self.on_bus_template_changed) self.ppv.set_board_change_callback(self.on_board_changed) self.ppv.set_constraint_change_callback(self.on_constraint_file_change) self.open_dialog = open_dialog.OpenDialog() self.open_dialog.set_open_callback(self.on_open_cb) self.save_dialog = save_dialog.SaveDialog() self.save_dialog.set_save_callback(self.on_save_cb) self.properties_dialog = properties_dialog.PropertiesDialog() self.build_thread = None try: if len(filename) > 0: self.status.print_info(__file__, "Loading: " + filename) self.sc.load_config_file(filename) except IOError as err: self.status.print_error(__file__, "Failed to load") print "Error loading file: " + str(err) sys.exit(-1) self.status.print_info(__file__, "Loaded File!") self.sc.initialize_graph() self.gd = graph_drawer.GraphDrawer(self.sc.get_graph_manager()) self.gd.set_debug_mode(debug=_debug) self.gd.set_slave_add_callback(self.on_slave_add) self.gd.set_slave_move_callback(self.on_slave_move) self.gd.set_slave_remove_callback(self.on_slave_remove) self.gd.set_slave_select_callback(self.on_slave_selected) self.gd.set_slave_arbitrator_select_callback( self.on_arbitrator_master_selected) self.gd.set_back_selected(self.on_back_selected) self.gd.set_arb_connect(self.on_arbitrator_connected) self.gd.set_arb_disconnect(self.on_arbitrator_disconnect) # Register callbacks. builder.connect_signals(self) self.window = builder.get_object("main_window") self.main_view = builder.get_object("mainhpanel") self.current_widget = None # Add project view. self.project_view = project_view.ProjectView(self.sc) self.project_view.set_size_request(200, -1) self.project_view.set_project_item_callback( self.on_project_item_changed) self.main_view.pack1(self.project_view, True, False) self.project_view.show() self.main_view.show_all() self.graph_pane = gtk.HPaned() self.graph_pane.show() self.set_main_view(self.graph_pane) # self.main_view.pack2(self.graph_pane, True, False) self.prop_slave_view = gtk.VPaned() # Add slave property view ... self.slave_icon_view = siv.SlaveIconView() # self.slave_icon_view.show() bus_type = self.sc.get_bus_type() slave_file_list = saputils.get_slave_list(bus_type) slave_dict = {} for slave in slave_file_list: slave_tags = saputils.get_module_tags(slave, bus_type) name = slave_tags["module"] slave_dict[name] = {} slave_dict[name]["filename"] = slave slave_dict[name]["r"] = 0.0 slave_dict[name]["g"] = 0.0 slave_dict[name]["b"] = 1.0 self.slave_icon_view.set_slave_list(slave_dict) self.slave_icon_view.set_size_request(-1, 300) self.slave_icon_view.set_slave_icon_selected_callback( self.on_slave_icon_selected) # ... and icon view. self.prop_slave_view.add1(self.slave_icon_view) self.property_view = pv.PropertyView() self.property_view.show_all() self.property_view.set_size_request(-1, 100) self.prop_slave_view.add2(self.property_view) self.prop_slave_view.set_size_request(200, -1) self.prop_slave_view.show_all() # Add the graph drawer and property/slave list to self.graph_pane. # self.graph_pane.add1(self.gd) self.graph_pane.pack1(self.gd, True, False) self.gd.set_size_request(400, -1) self.gd.show() self.graph_pane.pack2(self.prop_slave_view, True, False) # Set up the toolbar. self.main_toolbar = builder.get_object("main_toolbar") tb = self.main_toolbar # Open Icon icon = gtk.image_new_from_stock(gtk.STOCK_OPEN, 1) tb.append_item( "Open", # label "Open a config file", # tooltip "Open a config file", # private tooltip icon, # icon self.on_open) # callback # Save Icon icon = gtk.image_new_from_stock(gtk.STOCK_SAVE, 1) tb.append_item( "Save", # label "Save a config file", # tooltip "Save a config file", # private tooltip icon, # icon self.on_save) # callback # Properties Icon icon = gtk.image_new_from_stock(gtk.STOCK_PROPERTIES, 1) tb.append_item( "Properties", # label "Set Properties", # tooltip "Set Properties", # private tooltip icon, # icon self.on_properties) # callback # Execute Icon icon = gtk.image_new_from_stock(gtk.STOCK_EXECUTE, 1) tb.append_item( "Execute", # label "Set Execute", # tooltip "Set Execute", # private tooltip icon, # icon self.on_execute) # callback # self.window.connect("destroy", gtk.main_quit) self.window.connect("destroy", self.sap_quit) self.window.show() self.filename = filename self.bc = build_controller.BuildController() return
def __init__(self, filename = ""): '''Initialize and display the Sap GUI.''' os.environ["SAPLIB_BASE"] = os.path.join(sys.path[0], os.pardir, "saplib") from saplib import saputils import sap_controller as sc import graph_drawer import slave_icon_view as siv import property_view as pv import project_view import project_properties_view as ppv import module_view import status_text import open_dialog import save_dialog import properties_dialog # Load the sap controller. builderfile = "sap_gui.glade" windowname = "Sap IDE" builder = gtk.Builder() builder.add_from_file(builderfile) # Instantiate the singleton. sv = builder.get_object("status_textview") self.status = status_text.StatusText(sv) # self.status.set_print_level(3) self.status.print_verbose(__file__, "Sap GUI Started!") self.sc = sc.SapController() self.module_view = module_view.ModuleView(self.sc) self.module_view.set_on_update_callback(self.on_properties_update) self.module_view.set_on_bind_callback(self.on_bind) self.module_view.set_on_unbind_callback(self.on_unbind) self.ppv = ppv.ProjectPropertiesView(self.sc) self.ppv.set_project_name_change_callback(self.on_project_name_changed) self.ppv.set_vendor_tool_change_callback(self.on_vendor_tools_changed) self.ppv.set_bus_change_callback(self.on_bus_template_changed) self.ppv.set_board_change_callback(self.on_board_changed) self.ppv.set_constraint_change_callback(self.on_constraint_file_change) self.open_dialog = open_dialog.OpenDialog() self.open_dialog.set_open_callback(self.on_open_cb) self.save_dialog = save_dialog.SaveDialog() self.save_dialog.set_save_callback(self.on_save_cb) self.properties_dialog = properties_dialog.PropertiesDialog() self.build_thread = None try: if len(filename) > 0: self.status.print_info(__file__, "Loading: " + filename) self.sc.load_config_file(filename) except IOError as err: self.status.print_error(__file__, "Failed to load") print "Error loading file: " + str(err) sys.exit(-1) self.status.print_info(__file__, "Loaded File!") self.sc.initialize_graph() self.gd = graph_drawer.GraphDrawer(self.sc.get_graph_manager()) self.gd.set_debug_mode(debug = _debug) self.gd.set_slave_add_callback(self.on_slave_add) self.gd.set_slave_move_callback(self.on_slave_move) self.gd.set_slave_remove_callback(self.on_slave_remove) self.gd.set_slave_select_callback(self.on_slave_selected) self.gd.set_slave_arbitrator_select_callback(self.on_arbitrator_master_selected) self.gd.set_back_selected(self.on_back_selected) self.gd.set_arb_connect(self.on_arbitrator_connected) self.gd.set_arb_disconnect(self.on_arbitrator_disconnect) # Register callbacks. builder.connect_signals(self) self.window = builder.get_object("main_window") self.main_view = builder.get_object("mainhpanel") self.current_widget = None # Add project view. self.project_view = project_view.ProjectView(self.sc) self.project_view.set_size_request(200, -1) self.project_view.set_project_item_callback(self.on_project_item_changed) self.main_view.pack1(self.project_view, True, False) self.project_view.show() self.main_view.show_all() self.graph_pane = gtk.HPaned() self.graph_pane.show() self.set_main_view(self.graph_pane) # self.main_view.pack2(self.graph_pane, True, False) self.prop_slave_view = gtk.VPaned() # Add slave property view ... self.slave_icon_view = siv.SlaveIconView() # self.slave_icon_view.show() bus_type = self.sc.get_bus_type() slave_file_list = saputils.get_slave_list(bus_type) slave_dict = {} for slave in slave_file_list: slave_tags = saputils.get_module_tags(slave, bus_type) name = slave_tags["module"] slave_dict[name] = {} slave_dict[name]["filename"] = slave slave_dict[name]["r"] = 0.0 slave_dict[name]["g"] = 0.0 slave_dict[name]["b"] = 1.0 self.slave_icon_view.set_slave_list(slave_dict) self.slave_icon_view.set_size_request(-1, 300) self.slave_icon_view.set_slave_icon_selected_callback(self.on_slave_icon_selected) # ... and icon view. self.prop_slave_view.add1(self.slave_icon_view) self.property_view = pv.PropertyView() self.property_view.show_all() self.property_view.set_size_request(-1, 100) self.prop_slave_view.add2(self.property_view) self.prop_slave_view.set_size_request(200, -1) self.prop_slave_view.show_all() # Add the graph drawer and property/slave list to self.graph_pane. # self.graph_pane.add1(self.gd) self.graph_pane.pack1(self.gd, True, False) self.gd.set_size_request(400, -1) self.gd.show() self.graph_pane.pack2(self.prop_slave_view, True, False) # Set up the toolbar. self.main_toolbar = builder.get_object("main_toolbar") tb = self.main_toolbar # Open Icon icon = gtk.image_new_from_stock(gtk.STOCK_OPEN, 1) tb.append_item( "Open", # label "Open a config file", # tooltip "Open a config file", # private tooltip icon, # icon self.on_open) # callback # Save Icon icon = gtk.image_new_from_stock(gtk.STOCK_SAVE, 1) tb.append_item( "Save", # label "Save a config file", # tooltip "Save a config file", # private tooltip icon, # icon self.on_save) # callback # Properties Icon icon = gtk.image_new_from_stock(gtk.STOCK_PROPERTIES, 1) tb.append_item( "Properties", # label "Set Properties", # tooltip "Set Properties", # private tooltip icon, # icon self.on_properties) # callback # Execute Icon icon = gtk.image_new_from_stock(gtk.STOCK_EXECUTE, 1) tb.append_item( "Execute", # label "Set Execute", # tooltip "Set Execute", # private tooltip icon, # icon self.on_execute) # callback # self.window.connect("destroy", gtk.main_quit) self.window.connect("destroy", self.sap_quit) self.window.show() self.filename = filename self.bc = build_controller.BuildController() return