diff --git a/coretk/coretk/app.py b/coretk/coretk/app.py index 4bb23bc0..1297c622 100644 --- a/coretk/coretk/app.py +++ b/coretk/coretk/app.py @@ -65,12 +65,6 @@ class Application(tk.Frame): def draw_status(self): self.statusbar = tk.Frame(self) self.statusbar.pack(side=tk.BOTTOM, fill=tk.X) - button = tk.Button(self.statusbar, text="Button 1") - button.pack(side=tk.LEFT, padx=1) - button = tk.Button(self.statusbar, text="Button 2") - button.pack(side=tk.LEFT, padx=1) - button = tk.Button(self.statusbar, text="Button 3") - button.pack(side=tk.LEFT, padx=1) def on_closing(self): menu_action = MenuAction(self, self.master) diff --git a/coretk/coretk/menuaction.py b/coretk/coretk/menuaction.py index 88f32bf4..3b33377c 100644 --- a/coretk/coretk/menuaction.py +++ b/coretk/coretk/menuaction.py @@ -17,214 +17,6 @@ from coretk.dialogs.sessionoptions import SessionOptionsDialog from coretk.dialogs.sessions import SessionsDialog -def sub_menu_items(): - logging.debug("Click on sub menu items") - - -def file_new(event=None): - logging.debug("Click file New") - - -def file_reload(): - logging.debug("Click file Reload") - - -def file_export_python_script(): - logging.debug("Click file export python script") - - -def file_execute_xml_or_python_script(): - logging.debug("Execute XML or Python script") - - -def file_execute_python_script_with_options(): - logging.debug("Click execute Python script with options") - - -def file_open_current_file_in_editor(): - logging.debug("Click file open current in editor") - - -def file_print(): - logging.debug("Click file Print") - - -def file_save_screenshot(): - logging.debug("Click file save screenshot") - - -def edit_undo(event=None): - logging.debug("Click edit undo") - - -def edit_redo(event=None): - logging.debug("Click edit redo") - - -def edit_cut(event=None): - logging.debug("Click edit cut") - - -def edit_copy(event=None): - logging.debug("Click edit copy") - - -def edit_paste(event=None): - logging.debug("Click edit paste") - - -def edit_select_all(event=None): - logging.debug("Click edit select all") - - -def edit_select_adjacent(event=None): - logging.debug("Click edit select adjacent") - - -def edit_find(event=None): - logging.debug("CLick edit find") - - -def edit_clear_marker(): - logging.debug("Click edit clear marker") - - -def edit_preferences(): - logging.debug("Click preferences") - - -def canvas_new(): - logging.debug("Click canvas new") - - -def canvas_manage(): - logging.debug("Click canvas manage") - - -def canvas_delete(): - logging.debug("Click canvas delete") - - -def canvas_previous(event=None): - logging.debug("Click canvas previous") - - -def canvas_next(event=None): - logging.debug("Click canvas next") - - -def canvas_first(event=None): - logging.debug("CLick canvas first") - - -def canvas_last(event=None): - logging.debug("CLick canvas last") - - -def view_show(): - logging.debug("Click view show") - - -def view_show_hidden_nodes(): - logging.debug("Click view show hidden nodes") - - -def view_locked(): - logging.debug("Click view locked") - - -def view_3d_gui(): - logging.debug("CLick view 3D GUI") - - -def view_zoom_in(event=None): - logging.debug("Click view zoom in") - - -def view_zoom_out(event=None): - logging.debug("Click view zoom out") - - -def tools_auto_rearrange_all(): - logging.debug("Click tools, auto rearrange all") - - -def tools_auto_rearrange_selected(): - logging.debug("CLick tools auto rearrange selected") - - -def tools_align_to_grid(): - logging.debug("Click tools align to grid") - - -def tools_traffic(): - logging.debug("Click tools traffic") - - -def tools_ip_addresses(): - logging.debug("Click tools ip addresses") - - -def tools_mac_addresses(): - logging.debug("Click tools mac addresses") - - -def tools_build_hosts_file(): - logging.debug("Click tools build hosts file") - - -def tools_renumber_nodes(): - logging.debug("Click tools renumber nodes") - - -def tools_experimental(): - logging.debug("Click tools experimental") - - -def tools_topology_generator(): - logging.debug("Click tools topology generator") - - -def tools_debugger(): - logging.debug("Click tools debugger") - - -def widgets_observer_widgets(): - logging.debug("Click widgets observer widgets") - - -def widgets_adjacency(): - logging.debug("Click widgets adjacency") - - -def widgets_throughput(): - logging.debug("Click widgets throughput") - - -def widgets_configure_adjacency(): - logging.debug("Click widgets configure adjacency") - - -def widgets_configure_throughput(): - logging.debug("Click widgets configure throughput") - - -def session_node_types(): - logging.debug("Click session node types") - - -def session_comments(): - logging.debug("Click session comments") - - -def session_reset_node_positions(): - logging.debug("Click session reset node positions") - - -def help_about(): - logging.debug("Click help About") - - class MenuAction: """ Actions performed when choosing menu items @@ -258,7 +50,7 @@ class MenuAction: self.app.core.stop_session() self.app.core.delete_session() - def on_quit(self): + def on_quit(self, event=None): """ Prompt user whether so save running session, and then close the application diff --git a/coretk/coretk/menubar.py b/coretk/coretk/menubar.py index 143833b7..3ef38d73 100644 --- a/coretk/coretk/menubar.py +++ b/coretk/coretk/menubar.py @@ -43,52 +43,33 @@ class Menubar(tk.Menu): :return: nothing """ - file_menu = tk.Menu(self) - file_menu.add_command( - label="New Session", - command=action.file_new, - accelerator="Ctrl+N", - underline=0, - ) - self.app.bind_all("", action.file_new) - file_menu.add_command( - label="Open...", - command=self.menuaction.file_open_xml, - accelerator="Ctrl+O", - underline=0, + menu = tk.Menu(self) + menu.add_command(label="New Session", accelerator="Ctrl+N", state=tk.DISABLED) + menu.add_command( + label="Open...", command=self.menuaction.file_open_xml, accelerator="Ctrl+O" ) self.app.bind_all("", self.menuaction.file_open_xml) - file_menu.add_command(label="Reload", command=action.file_reload, underline=0) - file_menu.add_command( + menu.add_command(label="Reload", underline=0, state=tk.DISABLED) + menu.add_command( label="Save", accelerator="Ctrl+S", command=self.menuaction.file_save_as_xml ) self.app.bind_all("", self.menuaction.file_save_as_xml) - file_menu.add_separator() - file_menu.add_command( - label="Export Python script...", command=action.file_export_python_script + menu.add_separator() + menu.add_command(label="Export Python script...", state=tk.DISABLED) + menu.add_command(label="Execute XML or Python script...", state=tk.DISABLED) + menu.add_command( + label="Execute Python script with options...", state=tk.DISABLED ) - file_menu.add_command( - label="Execute XML or Python script...", - command=action.file_execute_xml_or_python_script, + menu.add_separator() + menu.add_command(label="Open current file in editor...", state=tk.DISABLED) + menu.add_command(label="Print...", underline=0, state=tk.DISABLED) + menu.add_command(label="Save screenshot...", state=tk.DISABLED) + menu.add_separator() + menu.add_command( + label="Quit", accelerator="Ctrl+Q", command=self.menuaction.on_quit ) - file_menu.add_command( - label="Execute Python script with options...", - command=action.file_execute_python_script_with_options, - ) - file_menu.add_separator() - file_menu.add_command( - label="Open current file in editor...", - command=action.file_open_current_file_in_editor, - ) - file_menu.add_command(label="Print...", command=action.file_print, underline=0) - file_menu.add_command( - label="Save screenshot...", command=action.file_save_screenshot - ) - file_menu.add_separator() - file_menu.add_command( - label="Quit", command=self.menuaction.on_quit, underline=0 - ) - self.add_cascade(label="File", menu=file_menu, underline=0) + self.app.bind_all("", self.menuaction.on_quit) + self.add_cascade(label="File", menu=menu) def draw_edit_menu(self): """ @@ -96,47 +77,23 @@ class Menubar(tk.Menu): :return: nothing """ - edit_menu = tk.Menu(self) - edit_menu.add_command( - label="Undo", command=action.edit_undo, accelerator="Ctrl+Z", underline=0 + menu = tk.Menu(self) + menu.add_command(label="Undo", accelerator="Ctrl+Z", state=tk.DISABLED) + menu.add_command(label="Redo", accelerator="Ctrl+Y", state=tk.DISABLED) + menu.add_separator() + menu.add_command(label="Cut", accelerator="Ctrl+X", state=tk.DISABLED) + menu.add_command(label="Copy", accelerator="Ctrl+C", state=tk.DISABLED) + menu.add_command(label="Paste", accelerator="Ctrl+V", state=tk.DISABLED) + menu.add_separator() + menu.add_command(label="Select all", accelerator="Ctrl+A", state=tk.DISABLED) + menu.add_command( + label="Select Adjacent", accelerator="Ctrl+J", state=tk.DISABLED ) - self.app.bind_all("", action.edit_undo) - edit_menu.add_command( - label="Redo", command=action.edit_redo, accelerator="Ctrl+Y", underline=0 - ) - self.app.bind_all("", action.edit_redo) - edit_menu.add_separator() - edit_menu.add_command( - label="Cut", command=action.edit_cut, accelerator="Ctrl+X", underline=0 - ) - self.app.bind_all("", action.edit_cut) - edit_menu.add_command( - label="Copy", command=action.edit_copy, accelerator="Ctrl+C", underline=0 - ) - self.app.bind_all("", action.edit_copy) - edit_menu.add_command( - label="Paste", command=action.edit_paste, accelerator="Ctrl+V", underline=0 - ) - self.app.bind_all("", action.edit_paste) - edit_menu.add_separator() - edit_menu.add_command( - label="Select all", command=action.edit_select_all, accelerator="Ctrl+A" - ) - self.app.bind_all("", action.edit_select_all) - edit_menu.add_command( - label="Select Adjacent", - command=action.edit_select_adjacent, - accelerator="Ctrl+J", - ) - self.app.bind_all("", action.edit_select_adjacent) - edit_menu.add_separator() - edit_menu.add_command( - label="Find...", command=action.edit_find, accelerator="Ctrl+F", underline=0 - ) - self.app.bind_all("", action.edit_find) - edit_menu.add_command(label="Clear marker", command=action.edit_clear_marker) - edit_menu.add_command(label="Preferences...", command=action.edit_preferences) - self.add_cascade(label="Edit", menu=edit_menu, underline=0) + menu.add_separator() + menu.add_command(label="Find...", accelerator="Ctrl+F", state=tk.DISABLED) + menu.add_command(label="Clear marker", state=tk.DISABLED) + menu.add_command(label="Preferences...", state=tk.DISABLED) + self.add_cascade(label="Edit", menu=menu) def draw_canvas_menu(self): """ @@ -144,55 +101,23 @@ class Menubar(tk.Menu): :return: nothing """ - canvas_menu = tk.Menu(self) - canvas_menu.add_command(label="New", command=action.canvas_new) - canvas_menu.add_command(label="Manage...", command=action.canvas_manage) - canvas_menu.add_command(label="Delete", command=action.canvas_delete) - canvas_menu.add_separator() - canvas_menu.add_command( + menu = tk.Menu(self) + menu.add_command(label="New", state=tk.DISABLED) + menu.add_command(label="Manage...", state=tk.DISABLED) + menu.add_command(label="Delete", state=tk.DISABLED) + menu.add_separator() + menu.add_command( label="Size/scale...", command=self.menuaction.canvas_size_and_scale ) - canvas_menu.add_command( + menu.add_command( label="Wallpaper...", command=self.menuaction.canvas_set_wallpaper ) - canvas_menu.add_separator() - canvas_menu.add_command( - label="Previous", command=action.canvas_previous, accelerator="PgUp" - ) - self.app.bind_all("", action.canvas_previous) - canvas_menu.add_command( - label="Next", command=action.canvas_next, accelerator="PgDown" - ) - self.app.bind_all("", action.canvas_next) - canvas_menu.add_command( - label="First", command=action.canvas_first, accelerator="Home" - ) - self.app.bind_all("", action.canvas_first) - canvas_menu.add_command( - label="Last", command=action.canvas_last, accelerator="End" - ) - self.app.bind_all("", action.canvas_last) - self.add_cascade(label="Canvas", menu=canvas_menu, underline=0) - - def create_show_menu(self, view_menu): - """ - Create the menu items in View/Show - - :param tkinter.Menu view_menu: the view menu - :return: nothing - """ - show_menu = tk.Menu(view_menu) - show_menu.add_command(label="All", command=action.sub_menu_items) - show_menu.add_command(label="None", command=action.sub_menu_items) - show_menu.add_separator() - show_menu.add_command(label="Interface Names", command=action.sub_menu_items) - show_menu.add_command(label="IPv4 Addresses", command=action.sub_menu_items) - show_menu.add_command(label="IPv6 Addresses", command=action.sub_menu_items) - show_menu.add_command(label="Node Labels", command=action.sub_menu_items) - show_menu.add_command(label="Annotations", command=action.sub_menu_items) - show_menu.add_command(label="Grid", command=action.sub_menu_items) - show_menu.add_command(label="API Messages", command=action.sub_menu_items) - view_menu.add_cascade(label="Show", menu=show_menu) + menu.add_separator() + menu.add_command(label="Previous", accelerator="PgUp", state=tk.DISABLED) + menu.add_command(label="Next", accelerator="PgDown", state=tk.DISABLED) + menu.add_command(label="First", accelerator="Home", state=tk.DISABLED) + menu.add_command(label="Last", accelerator="End", state=tk.DISABLED) + self.add_cascade(label="Canvas", menu=menu) def draw_view_menu(self): """ @@ -202,21 +127,33 @@ class Menubar(tk.Menu): """ view_menu = tk.Menu(self) self.create_show_menu(view_menu) - view_menu.add_command( - label="Show hidden nodes", command=action.view_show_hidden_nodes - ) - view_menu.add_command(label="Locked", command=action.view_locked) - view_menu.add_command(label="3D GUI...", command=action.view_3d_gui) + view_menu.add_command(label="Show hidden nodes", state=tk.DISABLED) + view_menu.add_command(label="Locked", state=tk.DISABLED) + view_menu.add_command(label="3D GUI...", state=tk.DISABLED) view_menu.add_separator() - view_menu.add_command( - label="Zoom in", command=action.view_zoom_in, accelerator="+" - ) - self.app.bind_all("", action.view_zoom_in) - view_menu.add_command( - label="Zoom out", command=action.view_zoom_out, accelerator="-" - ) - self.app.bind_all("", action.view_zoom_out) - self.add_cascade(label="View", menu=view_menu, underline=0) + view_menu.add_command(label="Zoom in", accelerator="+", state=tk.DISABLED) + view_menu.add_command(label="Zoom out", accelerator="-", state=tk.DISABLED) + self.add_cascade(label="View", menu=view_menu) + + def create_show_menu(self, view_menu): + """ + Create the menu items in View/Show + + :param tkinter.Menu view_menu: the view menu + :return: nothing + """ + menu = tk.Menu(view_menu) + menu.add_command(label="All", state=tk.DISABLED) + menu.add_command(label="None", state=tk.DISABLED) + menu.add_separator() + menu.add_command(label="Interface Names", state=tk.DISABLED) + menu.add_command(label="IPv4 Addresses", state=tk.DISABLED) + menu.add_command(label="IPv6 Addresses", state=tk.DISABLED) + menu.add_command(label="Node Labels", state=tk.DISABLED) + menu.add_command(label="Annotations", state=tk.DISABLED) + menu.add_command(label="Grid", state=tk.DISABLED) + menu.add_command(label="API Messages", state=tk.DISABLED) + view_menu.add_cascade(label="Show", menu=menu) def create_experimental_menu(self, tools_menu): """ @@ -225,19 +162,11 @@ class Menubar(tk.Menu): :param tkinter.Menu tools_menu: tools menu :return: nothing """ - experimental_menu = tk.Menu(tools_menu) - experimental_menu.add_command( - label="Plugins...", command=action.sub_menu_items, underline=0 - ) - experimental_menu.add_command( - label="ns2immunes converter...", command=action.sub_menu_items, underline=0 - ) - experimental_menu.add_command( - label="Topology partitioning...", command=action.sub_menu_items - ) - tools_menu.add_cascade( - label="Experimental", menu=experimental_menu, underline=0 - ) + menu = tk.Menu(tools_menu) + menu.add_command(label="Plugins...", state=tk.DISABLED) + menu.add_command(label="ns2immunes converter...", state=tk.DISABLED) + menu.add_command(label="Topology partitioning...", state=tk.DISABLED) + tools_menu.add_cascade(label="Experimental", menu=menu) def create_random_menu(self, topology_generator_menu): """ @@ -246,15 +175,13 @@ class Menubar(tk.Menu): :param tkinter.Menu topology_generator_menu: topology generator menu :return: nothing """ - random_menu = tk.Menu(topology_generator_menu) + menu = tk.Menu(topology_generator_menu) # list of number of random nodes to create nums = [1, 5, 10, 15, 20, 30, 40, 50, 75, 100] for i in nums: - the_label = "R(" + str(i) + ")" - random_menu.add_command(label=the_label, command=action.sub_menu_items) - topology_generator_menu.add_cascade( - label="Random", menu=random_menu, underline=0 - ) + label = f"R({i})" + menu.add_command(label=label, state=tk.DISABLED) + topology_generator_menu.add_cascade(label="Random", menu=menu) def create_grid_menu(self, topology_generator_menu): """ @@ -263,13 +190,13 @@ class Menubar(tk.Menu): :param tkinter.Menu topology_generator_menu: topology_generator_menu :return: nothing """ - grid_menu = tk.Menu(topology_generator_menu) + menu = tk.Menu(topology_generator_menu) # list of number of nodes to create nums = [1, 5, 10, 15, 20, 25, 30, 35, 40, 50, 60, 70, 80, 90, 100] for i in nums: - the_label = "G(" + str(i) + ")" - grid_menu.add_command(label=the_label, command=action.sub_menu_items) - topology_generator_menu.add_cascade(label="Grid", menu=grid_menu, underline=0) + label = f"G({i})" + menu.add_command(label=label, state=tk.DISABLED) + topology_generator_menu.add_cascade(label="Grid", menu=menu) def create_connected_grid_menu(self, topology_generator_menu): """ @@ -278,17 +205,15 @@ class Menubar(tk.Menu): :param tkinter.Menu topology_generator_menu: topology generator menu :return: nothing """ - grid_menu = tk.Menu(topology_generator_menu) + menu = tk.Menu(topology_generator_menu) for i in range(1, 11, 1): - i_n_menu = tk.Menu(grid_menu) + submenu = tk.Menu(menu) for j in range(1, 11, 1): - i_j_label = str(i) + " X " + str(j) - i_n_menu.add_command(label=i_j_label, command=action.sub_menu_items) - i_n_label = str(i) + " X N" - grid_menu.add_cascade(label=i_n_label, menu=i_n_menu) - topology_generator_menu.add_cascade( - label="Connected Grid", menu=grid_menu, underline=0 - ) + label = f"{i} X {j}" + submenu.add_command(label=label, state=tk.DISABLED) + label = str(i) + " X N" + menu.add_cascade(label=label, menu=submenu) + topology_generator_menu.add_cascade(label="Connected Grid", menu=menu) def create_chain_menu(self, topology_generator_menu): """ @@ -297,13 +222,13 @@ class Menubar(tk.Menu): :param tkinter.Menu topology_generator_menu: topology generator menu :return: nothing """ - chain_menu = tk.Menu(topology_generator_menu) + menu = tk.Menu(topology_generator_menu) # number of nodes to create nums = list(range(2, 25, 1)) + [32, 64, 128] for i in nums: - the_label = "P(" + str(i) + ")" - chain_menu.add_command(label=the_label, command=action.sub_menu_items) - topology_generator_menu.add_cascade(label="Chain", menu=chain_menu, underline=0) + label = f"P({i})" + menu.add_command(label=label, state=tk.DISABLED) + topology_generator_menu.add_cascade(label="Chain", menu=menu) def create_star_menu(self, topology_generator_menu): """ @@ -312,11 +237,11 @@ class Menubar(tk.Menu): :param tkinter.Menu topology_generator_menu: topology generator menu :return: nothing """ - star_menu = tk.Menu(topology_generator_menu) + menu = tk.Menu(topology_generator_menu) for i in range(3, 26, 1): - the_label = "C(" + str(i) + ")" - star_menu.add_command(label=the_label, command=action.sub_menu_items) - topology_generator_menu.add_cascade(label="Star", menu=star_menu, underline=0) + label = f"C({i})" + menu.add_command(label=label, state=tk.DISABLED) + topology_generator_menu.add_cascade(label="Star", menu=menu) def create_cycle_menu(self, topology_generator_menu): """ @@ -325,11 +250,11 @@ class Menubar(tk.Menu): :param tkinter.Menu topology_generator_menu: topology generator menu :return: nothing """ - cycle_menu = tk.Menu(topology_generator_menu) + menu = tk.Menu(topology_generator_menu) for i in range(3, 25, 1): - the_label = "C(" + str(i) + ")" - cycle_menu.add_command(label=the_label, command=action.sub_menu_items) - topology_generator_menu.add_cascade(label="Cycle", menu=cycle_menu, underline=0) + label = f"C({i})" + menu.add_command(label=label, state=tk.DISABLED) + topology_generator_menu.add_cascade(label="Cycle", menu=menu) def create_wheel_menu(self, topology_generator_menu): """ @@ -338,11 +263,11 @@ class Menubar(tk.Menu): :param tkinter.Menu topology_generator_menu: topology generator menu :return: nothing """ - wheel_menu = tk.Menu(topology_generator_menu) + menu = tk.Menu(topology_generator_menu) for i in range(4, 26, 1): - the_label = "W(" + str(i) + ")" - wheel_menu.add_command(label=the_label, command=action.sub_menu_items) - topology_generator_menu.add_cascade(label="Wheel", menu=wheel_menu, underline=0) + label = f"W({i})" + menu.add_command(label=label, state=tk.DISABLED) + topology_generator_menu.add_cascade(label="Wheel", menu=menu) def create_cube_menu(self, topology_generator_menu): """ @@ -351,11 +276,11 @@ class Menubar(tk.Menu): :param tkinter.Menu topology_generator_menu: topology generator menu :return: nothing """ - cube_menu = tk.Menu(topology_generator_menu) + menu = tk.Menu(topology_generator_menu) for i in range(2, 7, 1): - the_label = "Q(" + str(i) + ")" - cube_menu.add_command(label=the_label, command=action.sub_menu_items) - topology_generator_menu.add_cascade(label="Cube", menu=cube_menu, underline=0) + label = f"Q({i})" + menu.add_command(label=label, state=tk.DISABLED) + topology_generator_menu.add_cascade(label="Cube", menu=menu) def create_clique_menu(self, topology_generator_menu): """ @@ -364,13 +289,11 @@ class Menubar(tk.Menu): :param tkinter.Menu topology_generator_menu: topology generator menu :return: nothing """ - clique_menu = tk.Menu(topology_generator_menu) + menu = tk.Menu(topology_generator_menu) for i in range(3, 25, 1): - the_label = "K(" + str(i) + ")" - clique_menu.add_command(label=the_label, command=action.sub_menu_items) - topology_generator_menu.add_cascade( - label="Clique", menu=clique_menu, underline=0 - ) + label = f"K({i})" + menu.add_command(label=label, state=tk.DISABLED) + topology_generator_menu.add_cascade(label="Clique", menu=menu) def create_bipartite_menu(self, topology_generator_menu): """ @@ -379,19 +302,17 @@ class Menubar(tk.Menu): :param tkinter.Menu topology_generator_menu: topology_generator_menu :return: nothing """ - bipartite_menu = tk.Menu(topology_generator_menu) + menu = tk.Menu(topology_generator_menu) temp = 24 for i in range(1, 13, 1): - i_n_menu = tk.Menu(bipartite_menu) + submenu = tk.Menu(menu) for j in range(i, temp, 1): - i_j_label = "K(" + str(i) + " X " + str(j) + ")" - i_n_menu.add_command(label=i_j_label, command=action.sub_menu_items) - i_n_label = "K(" + str(i) + " X N)" - bipartite_menu.add_cascade(label=i_n_label, menu=i_n_menu) + label = f"K({i} X {j})" + submenu.add_command(label=label, state=tk.DISABLED) + label = f"K({i})" + menu.add_cascade(label=label, menu=submenu) temp = temp - 1 - topology_generator_menu.add_cascade( - label="Bipartite", menu=bipartite_menu, underline=0 - ) + topology_generator_menu.add_cascade(label="Bipartite", menu=menu) def create_topology_generator_menu(self, tools_menu): """ @@ -401,20 +322,18 @@ class Menubar(tk.Menu): :return: nothing """ - topology_generator_menu = tk.Menu(tools_menu) - self.create_random_menu(topology_generator_menu) - self.create_grid_menu(topology_generator_menu) - self.create_connected_grid_menu(topology_generator_menu) - self.create_chain_menu(topology_generator_menu) - self.create_star_menu(topology_generator_menu) - self.create_cycle_menu(topology_generator_menu) - self.create_wheel_menu(topology_generator_menu) - self.create_cube_menu(topology_generator_menu) - self.create_clique_menu(topology_generator_menu) - self.create_bipartite_menu(topology_generator_menu) - tools_menu.add_cascade( - label="Topology generator", menu=topology_generator_menu, underline=0 - ) + menu = tk.Menu(tools_menu) + self.create_random_menu(menu) + self.create_grid_menu(menu) + self.create_connected_grid_menu(menu) + self.create_chain_menu(menu) + self.create_star_menu(menu) + self.create_cycle_menu(menu) + self.create_wheel_menu(menu) + self.create_cube_menu(menu) + self.create_clique_menu(menu) + self.create_bipartite_menu(menu) + tools_menu.add_cascade(label="Topology generator", menu=menu) def draw_tools_menu(self): """ @@ -422,41 +341,21 @@ class Menubar(tk.Menu): :return: nothing """ - tools_menu = tk.Menu(self) - tools_menu.add_command( - label="Auto rearrange all", - command=action.tools_auto_rearrange_all, - underline=0, - ) - tools_menu.add_command( - label="Auto rearrange selected", - command=action.tools_auto_rearrange_selected, - underline=0, - ) - tools_menu.add_separator() - tools_menu.add_command( - label="Align to grid", command=action.tools_align_to_grid, underline=0 - ) - tools_menu.add_separator() - tools_menu.add_command(label="Traffic...", command=action.tools_traffic) - tools_menu.add_command( - label="IP addresses...", command=action.tools_ip_addresses, underline=0 - ) - tools_menu.add_command( - label="MAC addresses...", command=action.tools_mac_addresses, underline=0 - ) - tools_menu.add_command( - label="Build hosts file...", - command=action.tools_build_hosts_file, - underline=0, - ) - tools_menu.add_command( - label="Renumber nodes...", command=action.tools_renumber_nodes, underline=0 - ) - self.create_experimental_menu(tools_menu) - self.create_topology_generator_menu(tools_menu) - tools_menu.add_command(label="Debugger...", command=action.tools_debugger) - self.add_cascade(label="Tools", menu=tools_menu, underline=0) + menu = tk.Menu(self) + menu.add_command(label="Auto rearrange all", state=tk.DISABLED) + menu.add_command(label="Auto rearrange selected", state=tk.DISABLED) + menu.add_separator() + menu.add_command(label="Align to grid", state=tk.DISABLED) + menu.add_separator() + menu.add_command(label="Traffic...", state=tk.DISABLED) + menu.add_command(label="IP addresses...", state=tk.DISABLED) + menu.add_command(label="MAC addresses...", state=tk.DISABLED) + menu.add_command(label="Build hosts file...", state=tk.DISABLED) + menu.add_command(label="Renumber nodes...", state=tk.DISABLED) + self.create_experimental_menu(menu) + self.create_topology_generator_menu(menu) + menu.add_command(label="Debugger...", state=tk.DISABLED) + self.add_cascade(label="Tools", menu=menu) def create_observer_widgets_menu(self, widget_menu): """ @@ -465,54 +364,24 @@ class Menubar(tk.Menu): :param tkinter.Menu widget_menu: widget_menu :return: nothing """ - observer_widget_menu = tk.Menu(widget_menu) - observer_widget_menu.add_command(label="None", command=action.sub_menu_items) - observer_widget_menu.add_command( - label="processes", command=action.sub_menu_items - ) - observer_widget_menu.add_command( - label="ifconfig", command=action.sub_menu_items - ) - observer_widget_menu.add_command( - label="IPv4 routes", command=action.sub_menu_items - ) - observer_widget_menu.add_command( - label="IPv6 routes", command=action.sub_menu_items - ) - observer_widget_menu.add_command( - label="OSPFv2 neighbors", command=action.sub_menu_items - ) - observer_widget_menu.add_command( - label="OSPFv3 neighbors", command=action.sub_menu_items - ) - observer_widget_menu.add_command( - label="Listening sockets", command=action.sub_menu_items - ) - observer_widget_menu.add_command( - label="IPv4 MFC entries", command=action.sub_menu_items - ) - observer_widget_menu.add_command( - label="IPv6 MFC entries", command=action.sub_menu_items - ) - observer_widget_menu.add_command( - label="firewall rules", command=action.sub_menu_items - ) - observer_widget_menu.add_command( - label="IPsec policies", command=action.sub_menu_items - ) - observer_widget_menu.add_command( - label="docker logs", command=action.sub_menu_items - ) - observer_widget_menu.add_command( - label="OSPFv3 MDR level", command=action.sub_menu_items - ) - observer_widget_menu.add_command( - label="PIM neighbors", command=action.sub_menu_items - ) - observer_widget_menu.add_command( - label="Edit...", command=self.menuaction.edit_observer_widgets - ) - widget_menu.add_cascade(label="Observer Widgets", menu=observer_widget_menu) + menu = tk.Menu(widget_menu) + menu.add_command(label="None", state=tk.DISABLED) + menu.add_command(label="processes", state=tk.DISABLED) + menu.add_command(label="ifconfig", state=tk.DISABLED) + menu.add_command(label="IPv4 routes", state=tk.DISABLED) + menu.add_command(label="IPv6 routes", state=tk.DISABLED) + menu.add_command(label="OSPFv2 neighbors", state=tk.DISABLED) + menu.add_command(label="OSPFv3 neighbors", state=tk.DISABLED) + menu.add_command(label="Listening sockets", state=tk.DISABLED) + menu.add_command(label="IPv4 MFC entries", state=tk.DISABLED) + menu.add_command(label="IPv6 MFC entries", state=tk.DISABLED) + menu.add_command(label="firewall rules", state=tk.DISABLED) + menu.add_command(label="IPsec policies", state=tk.DISABLED) + menu.add_command(label="docker logs", state=tk.DISABLED) + menu.add_command(label="OSPFv3 MDR level", state=tk.DISABLED) + menu.add_command(label="PIM neighbors", state=tk.DISABLED) + menu.add_command(label="Edit...", command=self.menuaction.edit_observer_widgets) + widget_menu.add_cascade(label="Observer Widgets", menu=menu) def create_adjacency_menu(self, widget_menu): """ @@ -521,12 +390,12 @@ class Menubar(tk.Menu): :param tkinter.Menu widget_menu: widget menu :return: nothing """ - adjacency_menu = tk.Menu(widget_menu) - adjacency_menu.add_command(label="OSPFv2", command=action.sub_menu_items) - adjacency_menu.add_command(label="OSPFv3", command=action.sub_menu_items) - adjacency_menu.add_command(label="OSLR", command=action.sub_menu_items) - adjacency_menu.add_command(label="OSLRv2", command=action.sub_menu_items) - widget_menu.add_cascade(label="Adjacency", menu=adjacency_menu) + menu = tk.Menu(widget_menu) + menu.add_command(label="OSPFv2", state=tk.DISABLED) + menu.add_command(label="OSPFv3", state=tk.DISABLED) + menu.add_command(label="OSLR", state=tk.DISABLED) + menu.add_command(label="OSLRv2", state=tk.DISABLED) + widget_menu.add_cascade(label="Adjacency", menu=menu) def draw_widgets_menu(self): """ @@ -534,18 +403,14 @@ class Menubar(tk.Menu): :return: nothing """ - widget_menu = tk.Menu(self) - self.create_observer_widgets_menu(widget_menu) - self.create_adjacency_menu(widget_menu) - widget_menu.add_command(label="Throughput", command=action.widgets_throughput) - widget_menu.add_separator() - widget_menu.add_command( - label="Configure Adjacency...", command=action.widgets_configure_adjacency - ) - widget_menu.add_command( - label="Configure Throughput...", command=action.widgets_configure_throughput - ) - self.add_cascade(label="Widgets", menu=widget_menu, underline=0) + menu = tk.Menu(self) + self.create_observer_widgets_menu(menu) + self.create_adjacency_menu(menu) + menu.add_command(label="Throughput", state=tk.DISABLED) + menu.add_separator() + menu.add_command(label="Configure Adjacency...", state=tk.DISABLED) + menu.add_command(label="Configure Throughput...", state=tk.DISABLED) + self.add_cascade(label="Widgets", menu=menu) def draw_session_menu(self): """ @@ -553,36 +418,21 @@ class Menubar(tk.Menu): :return: nothing """ - session_menu = tk.Menu(self) - session_menu.add_command( + menu = tk.Menu(self) + menu.add_command( label="Change sessions...", command=self.menuaction.session_change_sessions, underline=0, ) - session_menu.add_separator() - session_menu.add_command( - label="Node types...", command=action.session_node_types, underline=0 + menu.add_separator() + menu.add_command(label="Comments...", state=tk.DISABLED) + menu.add_command(label="Hooks...", command=self.menuaction.session_hooks) + menu.add_command(label="Reset node positions", state=tk.DISABLED) + menu.add_command( + label="Emulation servers...", command=self.menuaction.session_servers ) - session_menu.add_command( - label="Comments...", command=action.session_comments, underline=0 - ) - session_menu.add_command( - label="Hooks...", command=self.menuaction.session_hooks, underline=0 - ) - session_menu.add_command( - label="Reset node positions", - command=action.session_reset_node_positions, - underline=0, - ) - session_menu.add_command( - label="Emulation servers...", - command=self.menuaction.session_servers, - underline=0, - ) - session_menu.add_command( - label="Options...", command=self.menuaction.session_options, underline=0 - ) - self.add_cascade(label="Session", menu=session_menu, underline=0) + menu.add_command(label="Options...", command=self.menuaction.session_options) + self.add_cascade(label="Session", menu=menu) def draw_help_menu(self): """ @@ -590,13 +440,13 @@ class Menubar(tk.Menu): :return: nothing """ - help_menu = tk.Menu(self) - help_menu.add_command( + menu = tk.Menu(self) + menu.add_command( label="Core Github (www)", command=self.menuaction.help_core_github ) - help_menu.add_command( + menu.add_command( label="Core Documentation (www)", command=self.menuaction.help_core_documentation, ) - help_menu.add_command(label="About", command=action.help_about) - self.add_cascade(label="Help", menu=help_menu) + menu.add_command(label="About", state=tk.DISABLED) + self.add_cascade(label="Help", menu=menu)