added observers to gui config and display them within menu
This commit is contained in:
parent
aa718817d0
commit
dd73c96830
3 changed files with 20 additions and 5 deletions
|
@ -45,6 +45,7 @@ def check_directory():
|
||||||
config = {
|
config = {
|
||||||
"servers": [{"name": "example", "address": "127.0.0.1", "port": 50051}],
|
"servers": [{"name": "example", "address": "127.0.0.1", "port": 50051}],
|
||||||
"nodes": [],
|
"nodes": [],
|
||||||
|
"observers": [],
|
||||||
}
|
}
|
||||||
save_config(config)
|
save_config(config)
|
||||||
|
|
||||||
|
|
|
@ -101,6 +101,7 @@ class CoreClient:
|
||||||
# loaded configuration data
|
# loaded configuration data
|
||||||
self.servers = {}
|
self.servers = {}
|
||||||
self.custom_nodes = {}
|
self.custom_nodes = {}
|
||||||
|
self.custom_observers = {}
|
||||||
self.read_config()
|
self.read_config()
|
||||||
|
|
||||||
# data for managing the current session
|
# data for managing the current session
|
||||||
|
@ -123,14 +124,14 @@ class CoreClient:
|
||||||
|
|
||||||
def read_config(self):
|
def read_config(self):
|
||||||
# read distributed server
|
# read distributed server
|
||||||
for server_config in self.app.config["servers"]:
|
for server_config in self.app.config.get("servers", []):
|
||||||
server = CoreServer(
|
server = CoreServer(
|
||||||
server_config["name"], server_config["address"], server_config["port"]
|
server_config["name"], server_config["address"], server_config["port"]
|
||||||
)
|
)
|
||||||
self.servers[server.name] = server
|
self.servers[server.name] = server
|
||||||
|
|
||||||
# read custom nodes
|
# read custom nodes
|
||||||
for node in self.app.config["nodes"]:
|
for node in self.app.config.get("nodes", []):
|
||||||
image_file = node["image"]
|
image_file = node["image"]
|
||||||
image = Images.get_custom(image_file)
|
image = Images.get_custom(image_file)
|
||||||
custom_node = CustomNode(
|
custom_node = CustomNode(
|
||||||
|
@ -138,6 +139,10 @@ class CoreClient:
|
||||||
)
|
)
|
||||||
self.custom_nodes[custom_node.name] = custom_node
|
self.custom_nodes[custom_node.name] = custom_node
|
||||||
|
|
||||||
|
# read observers
|
||||||
|
for observer in self.app.config.get("observers", []):
|
||||||
|
self.custom_observers[observer["name"]] = observer["cmd"]
|
||||||
|
|
||||||
def handle_events(self, event):
|
def handle_events(self, event):
|
||||||
logging.info("event: %s", event)
|
logging.info("event: %s", event)
|
||||||
if event.HasField("link_event"):
|
if event.HasField("link_event"):
|
||||||
|
|
|
@ -369,6 +369,10 @@ class Menubar(tk.Menu):
|
||||||
var = tk.StringVar(value="none")
|
var = tk.StringVar(value="none")
|
||||||
menu = tk.Menu(widget_menu)
|
menu = tk.Menu(widget_menu)
|
||||||
menu.var = var
|
menu.var = var
|
||||||
|
menu.add_command(
|
||||||
|
label="Edit Observers", command=self.menuaction.edit_observer_widgets
|
||||||
|
)
|
||||||
|
menu.add_separator()
|
||||||
menu.add_radiobutton(
|
menu.add_radiobutton(
|
||||||
label="None",
|
label="None",
|
||||||
variable=var,
|
variable=var,
|
||||||
|
@ -383,8 +387,13 @@ class Menubar(tk.Menu):
|
||||||
value=name,
|
value=name,
|
||||||
command=partial(self.app.core.set_observer, cmd),
|
command=partial(self.app.core.set_observer, cmd),
|
||||||
)
|
)
|
||||||
|
for name in sorted(self.app.core.custom_observers):
|
||||||
|
cmd = self.app.core.custom_observers[name]
|
||||||
menu.add_radiobutton(
|
menu.add_radiobutton(
|
||||||
label="Edit...", command=self.menuaction.edit_observer_widgets
|
label=name,
|
||||||
|
variable=var,
|
||||||
|
value=name,
|
||||||
|
command=partial(self.app.core.set_observer, cmd),
|
||||||
)
|
)
|
||||||
widget_menu.add_cascade(label="Observer Widgets", menu=menu)
|
widget_menu.add_cascade(label="Observer Widgets", menu=menu)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue