Merge branch 'coretk' into coretk-progress
This commit is contained in:
commit
0f6cca1194
3 changed files with 41 additions and 31 deletions
|
@ -128,19 +128,18 @@ class CoreClient:
|
||||||
if session_event.event <= core_pb2.SessionState.SHUTDOWN:
|
if session_event.event <= core_pb2.SessionState.SHUTDOWN:
|
||||||
self.state = event.session_event.event
|
self.state = event.session_event.event
|
||||||
# mobility start
|
# mobility start
|
||||||
elif session_event.event == 7:
|
elif session_event.event in {7, 8, 9}:
|
||||||
node_id = session_event.node_id
|
node_id = session_event.node_id
|
||||||
if node_id not in self.mobility_players:
|
dialog = self.mobility_players.get(node_id)
|
||||||
canvas_node = self.canvas_nodes[node_id]
|
if dialog:
|
||||||
dialog = MobilityPlayerDialog(self.app, self.app, canvas_node)
|
if session_event.event == 7:
|
||||||
dialog.show()
|
dialog.set_play()
|
||||||
self.mobility_players[node_id] = dialog
|
elif session_event.event == 8:
|
||||||
# mobility stop
|
dialog.set_stop()
|
||||||
elif session_event.event == 8:
|
else:
|
||||||
pass
|
dialog.set_pause()
|
||||||
# mobility pause
|
else:
|
||||||
elif session_event.event == 9:
|
logging.warning("unknown session event: %s", session_event)
|
||||||
pass
|
|
||||||
elif event.HasField("node_event"):
|
elif event.HasField("node_event"):
|
||||||
node_event = event.node_event
|
node_event = event.node_event
|
||||||
node_id = node_event.node.id
|
node_id = node_event.node.id
|
||||||
|
@ -359,6 +358,13 @@ class CoreClient:
|
||||||
logging.debug("start session(%s), result: %s", self.session_id, response.result)
|
logging.debug("start session(%s), result: %s", self.session_id, response.result)
|
||||||
self.app.statusbar.start_session_callback(process_time)
|
self.app.statusbar.start_session_callback(process_time)
|
||||||
|
|
||||||
|
# display mobility players
|
||||||
|
for node_id, config in self.mobility_configs.items():
|
||||||
|
canvas_node = self.canvas_nodes[node_id]
|
||||||
|
dialog = MobilityPlayerDialog(self.app, self.app, canvas_node, config)
|
||||||
|
dialog.show()
|
||||||
|
self.mobility_players[node_id] = dialog
|
||||||
|
|
||||||
def stop_session(self, session_id=None):
|
def stop_session(self, session_id=None):
|
||||||
if not session_id:
|
if not session_id:
|
||||||
session_id = self.session_id
|
session_id = self.session_id
|
||||||
|
|
|
@ -10,13 +10,13 @@ ICON_SIZE = 16
|
||||||
|
|
||||||
|
|
||||||
class MobilityPlayerDialog(Dialog):
|
class MobilityPlayerDialog(Dialog):
|
||||||
def __init__(self, master, app, canvas_node):
|
def __init__(self, master, app, canvas_node, config):
|
||||||
super().__init__(
|
super().__init__(
|
||||||
master, app, f"{canvas_node.core_node.name} Mobility Player", modal=False
|
master, app, f"{canvas_node.core_node.name} Mobility Player", modal=False
|
||||||
)
|
)
|
||||||
self.canvas_node = canvas_node
|
self.canvas_node = canvas_node
|
||||||
self.node = canvas_node.core_node
|
self.node = canvas_node.core_node
|
||||||
self.config = self.app.core.mobility_configs[canvas_node.core_node.id]
|
self.config = config
|
||||||
self.play_button = None
|
self.play_button = None
|
||||||
self.pause_button = None
|
self.pause_button = None
|
||||||
self.stop_button = None
|
self.stop_button = None
|
||||||
|
@ -30,14 +30,8 @@ class MobilityPlayerDialog(Dialog):
|
||||||
label = ttk.Label(self.top, text=file_name)
|
label = ttk.Label(self.top, text=file_name)
|
||||||
label.grid(sticky="ew", pady=PAD)
|
label.grid(sticky="ew", pady=PAD)
|
||||||
|
|
||||||
frame = ttk.Frame(self.top)
|
self.progressbar = ttk.Progressbar(self.top, mode="indeterminate")
|
||||||
frame.grid(sticky="ew", pady=PAD)
|
self.progressbar.grid(sticky="ew", pady=PAD)
|
||||||
frame.columnconfigure(0, weight=1)
|
|
||||||
self.progressbar = ttk.Progressbar(frame, mode="indeterminate")
|
|
||||||
self.progressbar.grid(row=0, column=0, sticky="ew", padx=PAD)
|
|
||||||
self.progressbar.start()
|
|
||||||
label = ttk.Label(frame, text="time")
|
|
||||||
label.grid(row=0, column=1)
|
|
||||||
|
|
||||||
frame = ttk.Frame(self.top)
|
frame = ttk.Frame(self.top)
|
||||||
frame.grid(sticky="ew", pady=PAD)
|
frame.grid(sticky="ew", pady=PAD)
|
||||||
|
@ -58,6 +52,7 @@ class MobilityPlayerDialog(Dialog):
|
||||||
self.stop_button = ttk.Button(frame, image=image, command=self.click_stop)
|
self.stop_button = ttk.Button(frame, image=image, command=self.click_stop)
|
||||||
self.stop_button.image = image
|
self.stop_button.image = image
|
||||||
self.stop_button.grid(row=0, column=2, sticky="ew", padx=PAD)
|
self.stop_button.grid(row=0, column=2, sticky="ew", padx=PAD)
|
||||||
|
self.stop_button.state(["pressed"])
|
||||||
|
|
||||||
loop = tk.IntVar(value=int(self.config["loop"].value == "1"))
|
loop = tk.IntVar(value=int(self.config["loop"].value == "1"))
|
||||||
checkbutton = ttk.Checkbutton(
|
checkbutton = ttk.Checkbutton(
|
||||||
|
@ -74,29 +69,38 @@ class MobilityPlayerDialog(Dialog):
|
||||||
self.pause_button.state(["!pressed"])
|
self.pause_button.state(["!pressed"])
|
||||||
self.stop_button.state(["!pressed"])
|
self.stop_button.state(["!pressed"])
|
||||||
|
|
||||||
def click_play(self):
|
def set_play(self):
|
||||||
self.clear_buttons()
|
self.clear_buttons()
|
||||||
self.play_button.state(["pressed"])
|
self.play_button.state(["pressed"])
|
||||||
|
self.progressbar.start()
|
||||||
|
|
||||||
|
def set_pause(self):
|
||||||
|
self.clear_buttons()
|
||||||
|
self.pause_button.state(["pressed"])
|
||||||
|
self.progressbar.stop()
|
||||||
|
|
||||||
|
def set_stop(self):
|
||||||
|
self.clear_buttons()
|
||||||
|
self.stop_button.state(["pressed"])
|
||||||
|
self.progressbar.stop()
|
||||||
|
|
||||||
|
def click_play(self):
|
||||||
|
self.set_play()
|
||||||
session_id = self.app.core.session_id
|
session_id = self.app.core.session_id
|
||||||
self.app.core.client.mobility_action(
|
self.app.core.client.mobility_action(
|
||||||
session_id, self.node.id, core_pb2.MobilityAction.START
|
session_id, self.node.id, core_pb2.MobilityAction.START
|
||||||
)
|
)
|
||||||
self.progressbar.start()
|
|
||||||
|
|
||||||
def click_pause(self):
|
def click_pause(self):
|
||||||
self.clear_buttons()
|
self.set_pause()
|
||||||
self.pause_button.state(["pressed"])
|
|
||||||
session_id = self.app.core.session_id
|
session_id = self.app.core.session_id
|
||||||
self.app.core.client.mobility_action(
|
self.app.core.client.mobility_action(
|
||||||
session_id, self.node.id, core_pb2.MobilityAction.PAUSE
|
session_id, self.node.id, core_pb2.MobilityAction.PAUSE
|
||||||
)
|
)
|
||||||
self.progressbar.stop()
|
|
||||||
|
|
||||||
def click_stop(self):
|
def click_stop(self):
|
||||||
self.clear_buttons()
|
self.set_stop()
|
||||||
self.stop_button.state(["pressed"])
|
|
||||||
session_id = self.app.core.session_id
|
session_id = self.app.core.session_id
|
||||||
self.app.core.client.mobility_action(
|
self.app.core.client.mobility_action(
|
||||||
session_id, self.node.id, core_pb2.MobilityAction.STOP
|
session_id, self.node.id, core_pb2.MobilityAction.STOP
|
||||||
)
|
)
|
||||||
self.progressbar.stop()
|
|
||||||
|
|
|
@ -51,10 +51,10 @@ class Menubar(tk.Menu):
|
||||||
label="Open...", command=self.menuaction.file_open_xml, accelerator="Ctrl+O"
|
label="Open...", command=self.menuaction.file_open_xml, accelerator="Ctrl+O"
|
||||||
)
|
)
|
||||||
self.app.bind_all("<Control-o>", self.menuaction.file_open_xml)
|
self.app.bind_all("<Control-o>", self.menuaction.file_open_xml)
|
||||||
menu.add_command(label="Reload", underline=0, state=tk.DISABLED)
|
|
||||||
menu.add_command(
|
menu.add_command(
|
||||||
label="Save", accelerator="Ctrl+S", command=self.menuaction.file_save_as_xml
|
label="Save", accelerator="Ctrl+S", command=self.menuaction.file_save_as_xml
|
||||||
)
|
)
|
||||||
|
menu.add_command(label="Reload", underline=0, state=tk.DISABLED)
|
||||||
self.app.bind_all("<Control-s>", self.menuaction.file_save_as_xml)
|
self.app.bind_all("<Control-s>", self.menuaction.file_save_as_xml)
|
||||||
menu.add_separator()
|
menu.add_separator()
|
||||||
menu.add_command(label="Export Python script...", state=tk.DISABLED)
|
menu.add_command(label="Export Python script...", state=tk.DISABLED)
|
||||||
|
|
Loading…
Add table
Reference in a new issue