grpc/pygui: edit_link will now broadcast link changes, pygui now handles receiving this data

This commit is contained in:
Blake Harnden 2020-06-26 15:14:30 -07:00
parent f921fa45c5
commit f4a3fe6b7b
5 changed files with 34 additions and 6 deletions

View file

@ -216,6 +216,10 @@ class CoreClient:
self.app.canvas.organize()
elif event.message_type == MessageType.DELETE:
self.app.canvas.delete_wired_edge(canvas_node1, canvas_node2)
elif event.message_type == MessageType.NONE:
self.app.canvas.update_wired_edge(
canvas_node1, canvas_node2, event.link
)
else:
logging.warning("unknown link event: %s", event)

View file

@ -262,6 +262,13 @@ class CanvasGraph(tk.Canvas):
return
self.delete_edge(edge)
def update_wired_edge(self, src: CanvasNode, dst: CanvasNode, link: Link) -> None:
token = create_edge_token(src.id, dst.id)
edge = self.edges.get(token)
if not edge:
return
edge.link.options.CopyFrom(link.options)
def add_wireless_edge(self, src: CanvasNode, dst: CanvasNode, link: Link) -> None:
network_id = link.network_id if link.network_id else None
token = create_edge_token(src.id, dst.id, network_id)
@ -350,9 +357,8 @@ class CanvasGraph(tk.Canvas):
dst_node.wireless_edges.remove(edge)
self.wireless_edges.clear()
# clear all middle edge labels
for edge in self.edges.values():
edge.reset()
# clear throughputs
self.clear_throughputs()
def canvas_xy(self, event: tk.Event) -> Tuple[float, float]:
"""