added some data for node events to have a source field to help distinguish what originates from the gui or not

This commit is contained in:
Blake Harnden 2019-11-27 12:55:39 -08:00
parent 354d227cb3
commit d1db5e4b4e
7 changed files with 32 additions and 20 deletions

View file

@ -141,15 +141,19 @@ class CoreClient:
else:
logging.warning("unknown session event: %s", session_event)
elif event.HasField("node_event"):
node_event = event.node_event
node_id = node_event.node.id
x = node_event.node.position.x
y = node_event.node.position.y
canvas_node = self.canvas_nodes[node_id]
canvas_node.move(x, y)
self.handle_node_event(event.node_event)
else:
logging.info("unhandled event: %s", event)
def handle_node_event(self, event):
if event.source == "gui":
return
node_id = event.node.id
x = event.node.position.x
y = event.node.position.y
canvas_node = self.canvas_nodes[node_id]
canvas_node.move(x, y)
def handle_throughputs(self, event):
interface_throughputs = event.interface_throughputs
for i in interface_throughputs:
@ -164,9 +168,6 @@ class CoreClient:
)
def join_session(self, session_id, query_location=True):
# self.master.config(cursor="watch")
# self.master.update()
# update session and title
self.session_id = session_id
self.master.title(f"CORE Session({self.session_id})")
@ -253,7 +254,6 @@ class CoreClient:
self.app.toolbar.runtime_frame.tkraise()
else:
self.app.toolbar.design_frame.tkraise()
# self.master.config(cursor="")
self.app.statusbar.progress_bar.stop()
def is_runtime(self):
@ -321,8 +321,7 @@ class CoreClient:
def edit_node(self, node_id, x, y):
position = core_pb2.Position(x=x, y=y)
response = self.client.edit_node(self.session_id, node_id, position)
logging.info("updated node id %s: %s", node_id, response)
self.client.edit_node(self.session_id, node_id, position, source="gui")
def start_session(self):
nodes = [x.core_node for x in self.canvas_nodes.values()]

View file

@ -600,6 +600,9 @@ class CanvasNode:
y_offset = y - old_y
self.core_node.position.x = x
self.core_node.position.y = y
self.canvas.move(self.id, x_offset, y_offset)
self.canvas.move(self.text_id, x_offset, y_offset)
self.antenna_draw.update_antennas_position(x_offset, y_offset)
for edge in self.edges:
x1, y1, x2, y2 = self.canvas.coords(edge.id)
if edge.src == self.id:
@ -608,9 +611,6 @@ class CanvasNode:
self.canvas.coords(edge.id, x1, y1, x_offset, y_offset)
edge.link_info.recalculate_info()
self.canvas.helper.update_wlan_connection(old_x, old_y, x, y, self.wlans)
self.canvas.move(self.id, x_offset, y_offset)
self.canvas.move(self.text_id, x_offset, y_offset)
self.antenna_draw.update_antennas_position(x_offset, y_offset)
def on_enter(self, event):
if self.app.core.is_runtime() and self.app.core.observer: