diff --git a/src/View/Network/GraphWidget.py b/src/View/Network/GraphWidget.py
index 08e76335033a455666609c6560e6b725386d60d1..dd9ff531efc677b4587b135a41511ed2efdf8d15 100644
--- a/src/View/Network/GraphWidget.py
+++ b/src/View/Network/GraphWidget.py
@@ -73,7 +73,10 @@ class NodeItem(QGraphicsItem):
 
     def shape(self):
         path = QPainterPath()
-        path.addEllipse(-10, -10, 20, 20)
+        if self.graph.parent._reservoir.get_assoc_to_node(self.node) is None:
+            path.addEllipse(-10, -10, 20, 20)
+        else:
+            path.addRect(-10, -10, 20, 20)
         return path
 
     @timer
@@ -95,7 +98,10 @@ class NodeItem(QGraphicsItem):
             color = Qt.green
 
         painter.setBrush(QBrush(color))
-        painter.drawEllipse(-10, -10, 20, 20)
+        if self.graph.graph._reservoir.get_assoc_to_node(self.node) is None:
+            painter.drawEllipse(-10, -10, 20, 20)
+        else:
+            painter.drawRect(-10, -10, 20, 20)
 
     def itemChange(self, change, value):
         if change == QGraphicsItem.ItemPositionHasChanged:
@@ -610,11 +616,15 @@ class GraphWidget(QGraphicsView):
 
     def add_node_reservoir(self, node):
         self.parent.add_node_reservoir(node)
+        self.display_update()
 
     def del_node_reservoir(self, node):
         self.parent.del_node_reservoir(node)
+        self.changeNode.emit(self.sender())
+        self.display_update()
 
     def edit_node_reservoir(self, node):
+        self.changeNode.emit(self.sender())
         self.parent.edit_node_reservoir(node)
 
     def enable_edge(self, edge, prev):
@@ -1020,3 +1030,4 @@ class GraphWidget(QGraphicsView):
             graph=self.graph, trad=self._trad, parent=self
         )
         m.run()
+        self.clicked = False