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 = {
|
||||
"servers": [{"name": "example", "address": "127.0.0.1", "port": 50051}],
|
||||
"nodes": [],
|
||||
"observers": [],
|
||||
}
|
||||
save_config(config)
|
||||
|
||||
|
|
|
@ -101,6 +101,7 @@ class CoreClient:
|
|||
# loaded configuration data
|
||||
self.servers = {}
|
||||
self.custom_nodes = {}
|
||||
self.custom_observers = {}
|
||||
self.read_config()
|
||||
|
||||
# data for managing the current session
|
||||
|
@ -123,14 +124,14 @@ class CoreClient:
|
|||
|
||||
def read_config(self):
|
||||
# read distributed server
|
||||
for server_config in self.app.config["servers"]:
|
||||
for server_config in self.app.config.get("servers", []):
|
||||
server = CoreServer(
|
||||
server_config["name"], server_config["address"], server_config["port"]
|
||||
)
|
||||
self.servers[server.name] = server
|
||||
|
||||
# read custom nodes
|
||||
for node in self.app.config["nodes"]:
|
||||
for node in self.app.config.get("nodes", []):
|
||||
image_file = node["image"]
|
||||
image = Images.get_custom(image_file)
|
||||
custom_node = CustomNode(
|
||||
|
@ -138,6 +139,10 @@ class CoreClient:
|
|||
)
|
||||
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):
|
||||
logging.info("event: %s", event)
|
||||
if event.HasField("link_event"):
|
||||
|
|
|
@ -369,6 +369,10 @@ class Menubar(tk.Menu):
|
|||
var = tk.StringVar(value="none")
|
||||
menu = tk.Menu(widget_menu)
|
||||
menu.var = var
|
||||
menu.add_command(
|
||||
label="Edit Observers", command=self.menuaction.edit_observer_widgets
|
||||
)
|
||||
menu.add_separator()
|
||||
menu.add_radiobutton(
|
||||
label="None",
|
||||
variable=var,
|
||||
|
@ -383,9 +387,14 @@ class Menubar(tk.Menu):
|
|||
value=name,
|
||||
command=partial(self.app.core.set_observer, cmd),
|
||||
)
|
||||
menu.add_radiobutton(
|
||||
label="Edit...", command=self.menuaction.edit_observer_widgets
|
||||
)
|
||||
for name in sorted(self.app.core.custom_observers):
|
||||
cmd = self.app.core.custom_observers[name]
|
||||
menu.add_radiobutton(
|
||||
label=name,
|
||||
variable=var,
|
||||
value=name,
|
||||
command=partial(self.app.core.set_observer, cmd),
|
||||
)
|
||||
widget_menu.add_cascade(label="Observer Widgets", menu=menu)
|
||||
|
||||
def create_adjacency_menu(self, widget_menu):
|
||||
|
|
Loading…
Add table
Reference in a new issue