def on_relation_change(self, relation, id): def _on_remove_relation(id): try: relation = self.relations.pop(id) except KeyError: return self.graph.remove_relation(relation) def _on_add_relation(relation, id): _on_remove_relation(id) self.relations[id] = relation self.graph.add_relation(relation) if relation: _on_add_relation(relation.relation, id) else: _on_remove_relation(id) self._populate_table() self.slider_rank.setMaximum(30 if any(max(rel.data.shape) > LIMIT_RANK_THRESHOLD for rel in self.graph.relations) else 100) self.webview.repaint(self.graph, self) self.send(Output.FUSION_GRAPH, FusionGraph(self.graph)) # this ensures gui.label-s get updated self.n_object_types = self.graph.n_object_types self.n_relations = self.graph.n_relations
def on_relation_change(self, relation, id): def _on_remove_relation(id): try: relation = self.relations.pop(id) except KeyError: return self.graph.remove_relation(relation) def _on_add_relation(relation, id): _on_remove_relation(id) self.relations[id] = relation self.graph.add_relation(relation) if relation: _on_add_relation(relation.relation, id) else: _on_remove_relation(id) self.graphview.clear() for relation in self.graph.relations: self.graphview.addRelation(relation) self.graphview.hideSquares() self._populate_table() LIMIT_RANK_THRESHOLD = 1000 # If so many objects or more, limit maximum rank self.slider_rank.setMaximum(30 if any( max(rel.data.shape) > LIMIT_RANK_THRESHOLD for rel in self.graph.relations) else 100) self.send(Output.FUSION_GRAPH, FusionGraph(self.graph)) # this ensures gui.label-s get updated self.n_object_types = self.graph.n_object_types self.n_relations = self.graph.n_relations
def __init__(self): super().__init__() self.n_object_types = 0 self.n_relations = 0 self.relations = {} # id-->relation map self.graph = FusionGraph(fusion.FusionGraph()) self.graphview = FusionGraphView(self) self.graphview.selectionChanged.connect(self.on_graph_element_selected) self._create_layout()
def __init__(self): super().__init__() self.n_object_types = 0 self.n_relations = 0 self.relations = {} # id-->relation map self.graph_element_selected.connect(self.on_graph_element_selected) self.graph = FusionGraph(fusion.FusionGraph()) self.webview = WebviewWidget(self.mainArea) self._create_layout()