def __init__(self): View.__init__(self) self.page_dict = {} self.notebook_names = ['main_notebook_1', 'main_notebook_2'] self.properties_view = StateOverviewView() self.inputs_view = InputPortsListView() self.outputs_view = OutputPortsListView() self.scopes_view = ScopedVariablesListView() self.outcomes_view = StateOutcomesEditorView() self.source_view = SourceEditorView() self.transitions_view = StateTransitionsEditorView() self.data_flows_view = StateDataFlowsEditorView() self.linkage_overview = LinkageOverviewView() self.description_view = DescriptionEditorView() self.semantic_data_view = SemanticDataEditorView() self['properties_viewport'].add(self.properties_view.get_top_widget()) self['input_ports_scroller'].add(self.inputs_view.get_top_widget()) self['output_ports_scroller'].add(self.outputs_view.get_top_widget()) self['scoped_variables_scroller'].add( self.scopes_view.get_top_widget()) self['outcomes_viewport'].add(self.outcomes_view.get_top_widget()) self['source_viewport'].add(self.source_view.get_top_widget()) self['transitions_viewport'].add( self.transitions_view.get_top_widget()) self['data_flows_viewport'].add(self.data_flows_view.get_top_widget()) self['linkage_overview_viewport'].add( self.linkage_overview.get_top_widget()) self['description_viewport'].add( self.description_view.get_top_widget()) self['semantic_data_viewport'].add( self.semantic_data_view.get_top_widget()) self.inputs_view.scrollbar_widget = self['input_ports_scroller'] self.outputs_view.scrollbar_widget = self['output_ports_scroller'] self.scopes_view.scrollbar_widget = self['scoped_variables_scroller'] self['description_text_view'] = self.description_view.textview self['description_scroller'] = self.description_view.scrollable # Gtk TODO # self['main_notebook_1'].set_tab_hborder(constants.TAB_BORDER_WIDTH * 2) # self['main_notebook_1'].set_tab_vborder(constants.TAB_BORDER_WIDTH * 3) # self['main_notebook_2'].set_tab_hborder(constants.TAB_BORDER_WIDTH * 2) # self['main_notebook_2'].set_tab_vborder(constants.TAB_BORDER_WIDTH * 3) # self['ports_notebook'].set_tab_hborder(constants.TAB_BORDER_WIDTH * 2) # self['ports_notebook'].set_tab_vborder(constants.TAB_BORDER_WIDTH * 3) self.page_dict["Source"] = self['main_notebook_1'].get_nth_page(0) self.page_dict["Logical Linkage"] = self[ 'main_notebook_1'].get_nth_page(1) self.page_dict["Data Linkage"] = self['main_notebook_1'].get_nth_page( 2) self.page_dict["Linkage Overview"] = self[ 'main_notebook_2'].get_nth_page(0) self.page_dict["Description"] = self['main_notebook_2'].get_nth_page(1) self.page_dict["Semantic Data"] = self['main_notebook_2'].get_nth_page( 2) self['main_notebook_1'].set_current_page( self['main_notebook_1'].page_num(self.page_dict["Source"])) self['main_notebook_2'].set_current_page( self['main_notebook_2'].page_num(self.page_dict["Description"])) self['add_input_port_button'].set_border_width( constants.BUTTON_BORDER_WIDTH) self['remove_input_port_button'].set_border_width( constants.BUTTON_BORDER_WIDTH) self['add_output_port_button'].set_border_width( constants.BUTTON_BORDER_WIDTH) self['remove_output_port_button'].set_border_width( constants.BUTTON_BORDER_WIDTH) self['add_scoped_variable_button'].set_border_width( constants.BUTTON_BORDER_WIDTH) self['remove_scoped_variable_button'].set_border_width( constants.BUTTON_BORDER_WIDTH) self._scoped_tab_page_number = None self._scoped_var_page = None self._scoped_var_page_tab_label = None self._source_tab_page_number = None self._source_page = None self._source_page_tab_label = None self.set_default_paned_positions()
class StateEditorView(View): builder = glade.get_glade_path("state_editor_ld_widget_tab.glade") top = 'main_frame_vbox' icons = { _('Source'): constants.ICON_SOURCE, _("Data Linkage"): constants.ICON_DLINK, _("Logical Linkage"): constants.ICON_LLINK, _("Linkage Overview"): constants.ICON_OVERV, _("Description"): constants.ICON_DESC, _("Semantic Data"): constants.ICON_SEMANTICS } def __init__(self): View.__init__(self) self.page_dict = {} self.notebook_names = ['main_notebook_1', 'main_notebook_2'] self.properties_view = StateOverviewView() self.inputs_view = InputPortsListView() self.outputs_view = OutputPortsListView() self.scopes_view = ScopedVariablesListView() self.outcomes_view = StateOutcomesEditorView() self.source_view = SourceEditorView() self.transitions_view = StateTransitionsEditorView() self.data_flows_view = StateDataFlowsEditorView() self.linkage_overview = LinkageOverviewView() self.description_view = DescriptionEditorView() self.semantic_data_view = SemanticDataEditorView() self['properties_viewport'].add(self.properties_view.get_top_widget()) self['input_ports_scroller'].add(self.inputs_view.get_top_widget()) self['output_ports_scroller'].add(self.outputs_view.get_top_widget()) self['scoped_variables_scroller'].add( self.scopes_view.get_top_widget()) self['outcomes_viewport'].add(self.outcomes_view.get_top_widget()) self['source_viewport'].add(self.source_view.get_top_widget()) self['transitions_viewport'].add( self.transitions_view.get_top_widget()) self['data_flows_viewport'].add(self.data_flows_view.get_top_widget()) self['linkage_overview_viewport'].add( self.linkage_overview.get_top_widget()) self['description_viewport'].add( self.description_view.get_top_widget()) self['semantic_data_viewport'].add( self.semantic_data_view.get_top_widget()) self.inputs_view.scrollbar_widget = self['input_ports_scroller'] self.outputs_view.scrollbar_widget = self['output_ports_scroller'] self.scopes_view.scrollbar_widget = self['scoped_variables_scroller'] self['description_text_view'] = self.description_view.textview self['description_scroller'] = self.description_view.scrollable # Gtk TODO # self['main_notebook_1'].set_tab_hborder(constants.TAB_BORDER_WIDTH * 2) # self['main_notebook_1'].set_tab_vborder(constants.TAB_BORDER_WIDTH * 3) # self['main_notebook_2'].set_tab_hborder(constants.TAB_BORDER_WIDTH * 2) # self['main_notebook_2'].set_tab_vborder(constants.TAB_BORDER_WIDTH * 3) # self['ports_notebook'].set_tab_hborder(constants.TAB_BORDER_WIDTH * 2) # self['ports_notebook'].set_tab_vborder(constants.TAB_BORDER_WIDTH * 3) self.page_dict["Source"] = self['main_notebook_1'].get_nth_page(0) self.page_dict["Logical Linkage"] = self[ 'main_notebook_1'].get_nth_page(1) self.page_dict["Data Linkage"] = self['main_notebook_1'].get_nth_page( 2) self.page_dict["Linkage Overview"] = self[ 'main_notebook_2'].get_nth_page(0) self.page_dict["Description"] = self['main_notebook_2'].get_nth_page(1) self.page_dict["Semantic Data"] = self['main_notebook_2'].get_nth_page( 2) self['main_notebook_1'].set_current_page( self['main_notebook_1'].page_num(self.page_dict["Source"])) self['main_notebook_2'].set_current_page( self['main_notebook_2'].page_num(self.page_dict["Description"])) self['add_input_port_button'].set_border_width( constants.BUTTON_BORDER_WIDTH) self['remove_input_port_button'].set_border_width( constants.BUTTON_BORDER_WIDTH) self['add_output_port_button'].set_border_width( constants.BUTTON_BORDER_WIDTH) self['remove_output_port_button'].set_border_width( constants.BUTTON_BORDER_WIDTH) self['add_scoped_variable_button'].set_border_width( constants.BUTTON_BORDER_WIDTH) self['remove_scoped_variable_button'].set_border_width( constants.BUTTON_BORDER_WIDTH) self._scoped_tab_page_number = None self._scoped_var_page = None self._scoped_var_page_tab_label = None self._source_tab_page_number = None self._source_page = None self._source_page_tab_label = None self.set_default_paned_positions() def prepare_the_labels(self): for notebook_name in self.notebook_names: notebook = self[notebook_name] for i in range(notebook.get_n_pages()): child = notebook.get_nth_page(i) tab_label = notebook.get_tab_label(child) if global_gui_config.get_config_value( "USE_ICONS_AS_TAB_LABELS", True): tab_label_text = tab_label.get_text() notebook.set_tab_label( child, gui_helper_label.create_tab_header_label( tab_label_text, self.icons)) else: tab_label.set_angle(270) notebook.set_tab_reorderable(child, True) notebook.set_tab_detachable(child, True) def bring_tab_to_the_top(self, tab_label): """Find tab with label tab_label in list of notebook's and set it to the current page. :param tab_label: String containing the label of the tab to be focused """ page = self.page_dict[tab_label] for notebook in self.notebook_names: page_num = self[notebook].page_num(page) if not page_num == -1: self[notebook].set_current_page(page_num) break def set_default_paned_positions(self): if global_gui_config.get_config_value("SEMANTIC_DATA_MODE", False): self['vpaned'].set_position(200) else: self['vpaned'].set_position(575) self['logic_vpaned'].set_position(300) self['data_vpaned'].set_position(300) def insert_source_tab(self): self['main_notebook_1'].insert_page(self._source_page, self._source_page_tab_label, self._source_tab_page_number) self['main_notebook_1'].set_tab_reorderable(self._source_page, True) self['main_notebook_1'].set_tab_detachable(self._source_page, True) def insert_scoped_variables_tab(self): self['ports_notebook'].insert_page(self._scoped_var_page, self._scoped_var_page_tab_label, self._scoped_tab_page_number) self['ports_notebook'].set_tab_reorderable(self._scoped_var_page, True) self['ports_notebook'].set_tab_detachable(self._scoped_var_page, True) def remove_source_tab(self): self._source_tab_page_number = self['main_notebook_1'].page_num( self['source_viewport']) self._source_page = self['main_notebook_1'].get_nth_page( self._source_tab_page_number) self._source_page_tab_label = self['main_notebook_1'].get_tab_label( self._source_page) self['main_notebook_1'].remove_page(self._source_tab_page_number) def remove_scoped_variables_tab(self): self._scoped_tab_page_number = self['ports_notebook'].page_num( self['scoped_variable_vbox']) self._scoped_var_page = self['ports_notebook'].get_nth_page( self._scoped_tab_page_number) self._scoped_var_page_tab_label = self['ports_notebook'].get_tab_label( self._scoped_var_page) self['ports_notebook'].remove_page(self._scoped_tab_page_number)