updates to disable all unimplemented menu options

This commit is contained in:
Blake Harnden 2019-11-08 10:07:23 -08:00
parent dbaf5dad91
commit 22177def1c
3 changed files with 201 additions and 565 deletions

View file

@ -65,12 +65,6 @@ class Application(tk.Frame):
def draw_status(self): def draw_status(self):
self.statusbar = tk.Frame(self) self.statusbar = tk.Frame(self)
self.statusbar.pack(side=tk.BOTTOM, fill=tk.X) 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): def on_closing(self):
menu_action = MenuAction(self, self.master) menu_action = MenuAction(self, self.master)

View file

@ -17,214 +17,6 @@ from coretk.dialogs.sessionoptions import SessionOptionsDialog
from coretk.dialogs.sessions import SessionsDialog 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: class MenuAction:
""" """
Actions performed when choosing menu items Actions performed when choosing menu items
@ -258,7 +50,7 @@ class MenuAction:
self.app.core.stop_session() self.app.core.stop_session()
self.app.core.delete_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 Prompt user whether so save running session, and then close the application

View file

@ -43,52 +43,33 @@ class Menubar(tk.Menu):
:return: nothing :return: nothing
""" """
file_menu = tk.Menu(self) menu = tk.Menu(self)
file_menu.add_command( menu.add_command(label="New Session", accelerator="Ctrl+N", state=tk.DISABLED)
label="New Session", menu.add_command(
command=action.file_new, label="Open...", command=self.menuaction.file_open_xml, accelerator="Ctrl+O"
accelerator="Ctrl+N",
underline=0,
)
self.app.bind_all("<Control-n>", action.file_new)
file_menu.add_command(
label="Open...",
command=self.menuaction.file_open_xml,
accelerator="Ctrl+O",
underline=0,
) )
self.app.bind_all("<Control-o>", self.menuaction.file_open_xml) self.app.bind_all("<Control-o>", self.menuaction.file_open_xml)
file_menu.add_command(label="Reload", command=action.file_reload, underline=0) menu.add_command(label="Reload", underline=0, state=tk.DISABLED)
file_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
) )
self.app.bind_all("<Control-s>", self.menuaction.file_save_as_xml) self.app.bind_all("<Control-s>", self.menuaction.file_save_as_xml)
file_menu.add_separator() menu.add_separator()
file_menu.add_command( menu.add_command(label="Export Python script...", state=tk.DISABLED)
label="Export Python script...", command=action.file_export_python_script 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( menu.add_separator()
label="Execute XML or Python script...", menu.add_command(label="Open current file in editor...", state=tk.DISABLED)
command=action.file_execute_xml_or_python_script, 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( self.app.bind_all("<Control-q>", self.menuaction.on_quit)
label="Execute Python script with options...", self.add_cascade(label="File", menu=menu)
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)
def draw_edit_menu(self): def draw_edit_menu(self):
""" """
@ -96,47 +77,23 @@ class Menubar(tk.Menu):
:return: nothing :return: nothing
""" """
edit_menu = tk.Menu(self) menu = tk.Menu(self)
edit_menu.add_command( menu.add_command(label="Undo", accelerator="Ctrl+Z", state=tk.DISABLED)
label="Undo", command=action.edit_undo, accelerator="Ctrl+Z", underline=0 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("<Control-z>", action.edit_undo) menu.add_separator()
edit_menu.add_command( menu.add_command(label="Find...", accelerator="Ctrl+F", state=tk.DISABLED)
label="Redo", command=action.edit_redo, accelerator="Ctrl+Y", underline=0 menu.add_command(label="Clear marker", state=tk.DISABLED)
) menu.add_command(label="Preferences...", state=tk.DISABLED)
self.app.bind_all("<Control-y>", action.edit_redo) self.add_cascade(label="Edit", menu=menu)
edit_menu.add_separator()
edit_menu.add_command(
label="Cut", command=action.edit_cut, accelerator="Ctrl+X", underline=0
)
self.app.bind_all("<Control-x>", action.edit_cut)
edit_menu.add_command(
label="Copy", command=action.edit_copy, accelerator="Ctrl+C", underline=0
)
self.app.bind_all("<Control-c>", action.edit_copy)
edit_menu.add_command(
label="Paste", command=action.edit_paste, accelerator="Ctrl+V", underline=0
)
self.app.bind_all("<Control-v>", 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("<Control-a>", action.edit_select_all)
edit_menu.add_command(
label="Select Adjacent",
command=action.edit_select_adjacent,
accelerator="Ctrl+J",
)
self.app.bind_all("<Control-j>", 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("<Control-f>", 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)
def draw_canvas_menu(self): def draw_canvas_menu(self):
""" """
@ -144,55 +101,23 @@ class Menubar(tk.Menu):
:return: nothing :return: nothing
""" """
canvas_menu = tk.Menu(self) menu = tk.Menu(self)
canvas_menu.add_command(label="New", command=action.canvas_new) menu.add_command(label="New", state=tk.DISABLED)
canvas_menu.add_command(label="Manage...", command=action.canvas_manage) menu.add_command(label="Manage...", state=tk.DISABLED)
canvas_menu.add_command(label="Delete", command=action.canvas_delete) menu.add_command(label="Delete", state=tk.DISABLED)
canvas_menu.add_separator() menu.add_separator()
canvas_menu.add_command( menu.add_command(
label="Size/scale...", command=self.menuaction.canvas_size_and_scale 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 label="Wallpaper...", command=self.menuaction.canvas_set_wallpaper
) )
canvas_menu.add_separator() menu.add_separator()
canvas_menu.add_command( menu.add_command(label="Previous", accelerator="PgUp", state=tk.DISABLED)
label="Previous", command=action.canvas_previous, accelerator="PgUp" menu.add_command(label="Next", accelerator="PgDown", state=tk.DISABLED)
) menu.add_command(label="First", accelerator="Home", state=tk.DISABLED)
self.app.bind_all("<Prior>", action.canvas_previous) menu.add_command(label="Last", accelerator="End", state=tk.DISABLED)
canvas_menu.add_command( self.add_cascade(label="Canvas", menu=menu)
label="Next", command=action.canvas_next, accelerator="PgDown"
)
self.app.bind_all("<Next>", action.canvas_next)
canvas_menu.add_command(
label="First", command=action.canvas_first, accelerator="Home"
)
self.app.bind_all("<Home>", action.canvas_first)
canvas_menu.add_command(
label="Last", command=action.canvas_last, accelerator="End"
)
self.app.bind_all("<End>", 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)
def draw_view_menu(self): def draw_view_menu(self):
""" """
@ -202,21 +127,33 @@ class Menubar(tk.Menu):
""" """
view_menu = tk.Menu(self) view_menu = tk.Menu(self)
self.create_show_menu(view_menu) self.create_show_menu(view_menu)
view_menu.add_command( view_menu.add_command(label="Show hidden nodes", state=tk.DISABLED)
label="Show hidden nodes", command=action.view_show_hidden_nodes view_menu.add_command(label="Locked", state=tk.DISABLED)
) view_menu.add_command(label="3D GUI...", state=tk.DISABLED)
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_separator() view_menu.add_separator()
view_menu.add_command( view_menu.add_command(label="Zoom in", accelerator="+", state=tk.DISABLED)
label="Zoom in", command=action.view_zoom_in, accelerator="+" view_menu.add_command(label="Zoom out", accelerator="-", state=tk.DISABLED)
) self.add_cascade(label="View", menu=view_menu)
self.app.bind_all("<Control-Shift-plus>", action.view_zoom_in)
view_menu.add_command( def create_show_menu(self, view_menu):
label="Zoom out", command=action.view_zoom_out, accelerator="-" """
) Create the menu items in View/Show
self.app.bind_all("<Control-minus>", action.view_zoom_out)
self.add_cascade(label="View", menu=view_menu, underline=0) :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): def create_experimental_menu(self, tools_menu):
""" """
@ -225,19 +162,11 @@ class Menubar(tk.Menu):
:param tkinter.Menu tools_menu: tools menu :param tkinter.Menu tools_menu: tools menu
:return: nothing :return: nothing
""" """
experimental_menu = tk.Menu(tools_menu) menu = tk.Menu(tools_menu)
experimental_menu.add_command( menu.add_command(label="Plugins...", state=tk.DISABLED)
label="Plugins...", command=action.sub_menu_items, underline=0 menu.add_command(label="ns2immunes converter...", state=tk.DISABLED)
) menu.add_command(label="Topology partitioning...", state=tk.DISABLED)
experimental_menu.add_command( tools_menu.add_cascade(label="Experimental", menu=menu)
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
)
def create_random_menu(self, topology_generator_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 :param tkinter.Menu topology_generator_menu: topology generator menu
:return: nothing :return: nothing
""" """
random_menu = tk.Menu(topology_generator_menu) menu = tk.Menu(topology_generator_menu)
# list of number of random nodes to create # list of number of random nodes to create
nums = [1, 5, 10, 15, 20, 30, 40, 50, 75, 100] nums = [1, 5, 10, 15, 20, 30, 40, 50, 75, 100]
for i in nums: for i in nums:
the_label = "R(" + str(i) + ")" label = f"R({i})"
random_menu.add_command(label=the_label, command=action.sub_menu_items) menu.add_command(label=label, state=tk.DISABLED)
topology_generator_menu.add_cascade( topology_generator_menu.add_cascade(label="Random", menu=menu)
label="Random", menu=random_menu, underline=0
)
def create_grid_menu(self, topology_generator_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 :param tkinter.Menu topology_generator_menu: topology_generator_menu
:return: nothing :return: nothing
""" """
grid_menu = tk.Menu(topology_generator_menu) menu = tk.Menu(topology_generator_menu)
# list of number of nodes to create # list of number of nodes to create
nums = [1, 5, 10, 15, 20, 25, 30, 35, 40, 50, 60, 70, 80, 90, 100] nums = [1, 5, 10, 15, 20, 25, 30, 35, 40, 50, 60, 70, 80, 90, 100]
for i in nums: for i in nums:
the_label = "G(" + str(i) + ")" label = f"G({i})"
grid_menu.add_command(label=the_label, command=action.sub_menu_items) menu.add_command(label=label, state=tk.DISABLED)
topology_generator_menu.add_cascade(label="Grid", menu=grid_menu, underline=0) topology_generator_menu.add_cascade(label="Grid", menu=menu)
def create_connected_grid_menu(self, topology_generator_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 :param tkinter.Menu topology_generator_menu: topology generator menu
:return: nothing :return: nothing
""" """
grid_menu = tk.Menu(topology_generator_menu) menu = tk.Menu(topology_generator_menu)
for i in range(1, 11, 1): 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): for j in range(1, 11, 1):
i_j_label = str(i) + " X " + str(j) label = f"{i} X {j}"
i_n_menu.add_command(label=i_j_label, command=action.sub_menu_items) submenu.add_command(label=label, state=tk.DISABLED)
i_n_label = str(i) + " X N" label = str(i) + " X N"
grid_menu.add_cascade(label=i_n_label, menu=i_n_menu) menu.add_cascade(label=label, menu=submenu)
topology_generator_menu.add_cascade( topology_generator_menu.add_cascade(label="Connected Grid", menu=menu)
label="Connected Grid", menu=grid_menu, underline=0
)
def create_chain_menu(self, topology_generator_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 :param tkinter.Menu topology_generator_menu: topology generator menu
:return: nothing :return: nothing
""" """
chain_menu = tk.Menu(topology_generator_menu) menu = tk.Menu(topology_generator_menu)
# number of nodes to create # number of nodes to create
nums = list(range(2, 25, 1)) + [32, 64, 128] nums = list(range(2, 25, 1)) + [32, 64, 128]
for i in nums: for i in nums:
the_label = "P(" + str(i) + ")" label = f"P({i})"
chain_menu.add_command(label=the_label, command=action.sub_menu_items) menu.add_command(label=label, state=tk.DISABLED)
topology_generator_menu.add_cascade(label="Chain", menu=chain_menu, underline=0) topology_generator_menu.add_cascade(label="Chain", menu=menu)
def create_star_menu(self, topology_generator_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 :param tkinter.Menu topology_generator_menu: topology generator menu
:return: nothing :return: nothing
""" """
star_menu = tk.Menu(topology_generator_menu) menu = tk.Menu(topology_generator_menu)
for i in range(3, 26, 1): for i in range(3, 26, 1):
the_label = "C(" + str(i) + ")" label = f"C({i})"
star_menu.add_command(label=the_label, command=action.sub_menu_items) menu.add_command(label=label, state=tk.DISABLED)
topology_generator_menu.add_cascade(label="Star", menu=star_menu, underline=0) topology_generator_menu.add_cascade(label="Star", menu=menu)
def create_cycle_menu(self, topology_generator_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 :param tkinter.Menu topology_generator_menu: topology generator menu
:return: nothing :return: nothing
""" """
cycle_menu = tk.Menu(topology_generator_menu) menu = tk.Menu(topology_generator_menu)
for i in range(3, 25, 1): for i in range(3, 25, 1):
the_label = "C(" + str(i) + ")" label = f"C({i})"
cycle_menu.add_command(label=the_label, command=action.sub_menu_items) menu.add_command(label=label, state=tk.DISABLED)
topology_generator_menu.add_cascade(label="Cycle", menu=cycle_menu, underline=0) topology_generator_menu.add_cascade(label="Cycle", menu=menu)
def create_wheel_menu(self, topology_generator_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 :param tkinter.Menu topology_generator_menu: topology generator menu
:return: nothing :return: nothing
""" """
wheel_menu = tk.Menu(topology_generator_menu) menu = tk.Menu(topology_generator_menu)
for i in range(4, 26, 1): for i in range(4, 26, 1):
the_label = "W(" + str(i) + ")" label = f"W({i})"
wheel_menu.add_command(label=the_label, command=action.sub_menu_items) menu.add_command(label=label, state=tk.DISABLED)
topology_generator_menu.add_cascade(label="Wheel", menu=wheel_menu, underline=0) topology_generator_menu.add_cascade(label="Wheel", menu=menu)
def create_cube_menu(self, topology_generator_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 :param tkinter.Menu topology_generator_menu: topology generator menu
:return: nothing :return: nothing
""" """
cube_menu = tk.Menu(topology_generator_menu) menu = tk.Menu(topology_generator_menu)
for i in range(2, 7, 1): for i in range(2, 7, 1):
the_label = "Q(" + str(i) + ")" label = f"Q({i})"
cube_menu.add_command(label=the_label, command=action.sub_menu_items) menu.add_command(label=label, state=tk.DISABLED)
topology_generator_menu.add_cascade(label="Cube", menu=cube_menu, underline=0) topology_generator_menu.add_cascade(label="Cube", menu=menu)
def create_clique_menu(self, topology_generator_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 :param tkinter.Menu topology_generator_menu: topology generator menu
:return: nothing :return: nothing
""" """
clique_menu = tk.Menu(topology_generator_menu) menu = tk.Menu(topology_generator_menu)
for i in range(3, 25, 1): for i in range(3, 25, 1):
the_label = "K(" + str(i) + ")" label = f"K({i})"
clique_menu.add_command(label=the_label, command=action.sub_menu_items) menu.add_command(label=label, state=tk.DISABLED)
topology_generator_menu.add_cascade( topology_generator_menu.add_cascade(label="Clique", menu=menu)
label="Clique", menu=clique_menu, underline=0
)
def create_bipartite_menu(self, topology_generator_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 :param tkinter.Menu topology_generator_menu: topology_generator_menu
:return: nothing :return: nothing
""" """
bipartite_menu = tk.Menu(topology_generator_menu) menu = tk.Menu(topology_generator_menu)
temp = 24 temp = 24
for i in range(1, 13, 1): 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): for j in range(i, temp, 1):
i_j_label = "K(" + str(i) + " X " + str(j) + ")" label = f"K({i} X {j})"
i_n_menu.add_command(label=i_j_label, command=action.sub_menu_items) submenu.add_command(label=label, state=tk.DISABLED)
i_n_label = "K(" + str(i) + " X N)" label = f"K({i})"
bipartite_menu.add_cascade(label=i_n_label, menu=i_n_menu) menu.add_cascade(label=label, menu=submenu)
temp = temp - 1 temp = temp - 1
topology_generator_menu.add_cascade( topology_generator_menu.add_cascade(label="Bipartite", menu=menu)
label="Bipartite", menu=bipartite_menu, underline=0
)
def create_topology_generator_menu(self, tools_menu): def create_topology_generator_menu(self, tools_menu):
""" """
@ -401,20 +322,18 @@ class Menubar(tk.Menu):
:return: nothing :return: nothing
""" """
topology_generator_menu = tk.Menu(tools_menu) menu = tk.Menu(tools_menu)
self.create_random_menu(topology_generator_menu) self.create_random_menu(menu)
self.create_grid_menu(topology_generator_menu) self.create_grid_menu(menu)
self.create_connected_grid_menu(topology_generator_menu) self.create_connected_grid_menu(menu)
self.create_chain_menu(topology_generator_menu) self.create_chain_menu(menu)
self.create_star_menu(topology_generator_menu) self.create_star_menu(menu)
self.create_cycle_menu(topology_generator_menu) self.create_cycle_menu(menu)
self.create_wheel_menu(topology_generator_menu) self.create_wheel_menu(menu)
self.create_cube_menu(topology_generator_menu) self.create_cube_menu(menu)
self.create_clique_menu(topology_generator_menu) self.create_clique_menu(menu)
self.create_bipartite_menu(topology_generator_menu) self.create_bipartite_menu(menu)
tools_menu.add_cascade( tools_menu.add_cascade(label="Topology generator", menu=menu)
label="Topology generator", menu=topology_generator_menu, underline=0
)
def draw_tools_menu(self): def draw_tools_menu(self):
""" """
@ -422,41 +341,21 @@ class Menubar(tk.Menu):
:return: nothing :return: nothing
""" """
tools_menu = tk.Menu(self) menu = tk.Menu(self)
tools_menu.add_command( menu.add_command(label="Auto rearrange all", state=tk.DISABLED)
label="Auto rearrange all", menu.add_command(label="Auto rearrange selected", state=tk.DISABLED)
command=action.tools_auto_rearrange_all, menu.add_separator()
underline=0, menu.add_command(label="Align to grid", state=tk.DISABLED)
) menu.add_separator()
tools_menu.add_command( menu.add_command(label="Traffic...", state=tk.DISABLED)
label="Auto rearrange selected", menu.add_command(label="IP addresses...", state=tk.DISABLED)
command=action.tools_auto_rearrange_selected, menu.add_command(label="MAC addresses...", state=tk.DISABLED)
underline=0, menu.add_command(label="Build hosts file...", state=tk.DISABLED)
) menu.add_command(label="Renumber nodes...", state=tk.DISABLED)
tools_menu.add_separator() self.create_experimental_menu(menu)
tools_menu.add_command( self.create_topology_generator_menu(menu)
label="Align to grid", command=action.tools_align_to_grid, underline=0 menu.add_command(label="Debugger...", state=tk.DISABLED)
) self.add_cascade(label="Tools", menu=menu)
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)
def create_observer_widgets_menu(self, widget_menu): def create_observer_widgets_menu(self, widget_menu):
""" """
@ -465,54 +364,24 @@ class Menubar(tk.Menu):
:param tkinter.Menu widget_menu: widget_menu :param tkinter.Menu widget_menu: widget_menu
:return: nothing :return: nothing
""" """
observer_widget_menu = tk.Menu(widget_menu) menu = tk.Menu(widget_menu)
observer_widget_menu.add_command(label="None", command=action.sub_menu_items) menu.add_command(label="None", state=tk.DISABLED)
observer_widget_menu.add_command( menu.add_command(label="processes", state=tk.DISABLED)
label="processes", command=action.sub_menu_items menu.add_command(label="ifconfig", state=tk.DISABLED)
) menu.add_command(label="IPv4 routes", state=tk.DISABLED)
observer_widget_menu.add_command( menu.add_command(label="IPv6 routes", state=tk.DISABLED)
label="ifconfig", command=action.sub_menu_items menu.add_command(label="OSPFv2 neighbors", state=tk.DISABLED)
) menu.add_command(label="OSPFv3 neighbors", state=tk.DISABLED)
observer_widget_menu.add_command( menu.add_command(label="Listening sockets", state=tk.DISABLED)
label="IPv4 routes", command=action.sub_menu_items menu.add_command(label="IPv4 MFC entries", state=tk.DISABLED)
) menu.add_command(label="IPv6 MFC entries", state=tk.DISABLED)
observer_widget_menu.add_command( menu.add_command(label="firewall rules", state=tk.DISABLED)
label="IPv6 routes", command=action.sub_menu_items menu.add_command(label="IPsec policies", state=tk.DISABLED)
) menu.add_command(label="docker logs", state=tk.DISABLED)
observer_widget_menu.add_command( menu.add_command(label="OSPFv3 MDR level", state=tk.DISABLED)
label="OSPFv2 neighbors", command=action.sub_menu_items menu.add_command(label="PIM neighbors", state=tk.DISABLED)
) menu.add_command(label="Edit...", command=self.menuaction.edit_observer_widgets)
observer_widget_menu.add_command( widget_menu.add_cascade(label="Observer Widgets", menu=menu)
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)
def create_adjacency_menu(self, widget_menu): def create_adjacency_menu(self, widget_menu):
""" """
@ -521,12 +390,12 @@ class Menubar(tk.Menu):
:param tkinter.Menu widget_menu: widget menu :param tkinter.Menu widget_menu: widget menu
:return: nothing :return: nothing
""" """
adjacency_menu = tk.Menu(widget_menu) menu = tk.Menu(widget_menu)
adjacency_menu.add_command(label="OSPFv2", command=action.sub_menu_items) menu.add_command(label="OSPFv2", state=tk.DISABLED)
adjacency_menu.add_command(label="OSPFv3", command=action.sub_menu_items) menu.add_command(label="OSPFv3", state=tk.DISABLED)
adjacency_menu.add_command(label="OSLR", command=action.sub_menu_items) menu.add_command(label="OSLR", state=tk.DISABLED)
adjacency_menu.add_command(label="OSLRv2", command=action.sub_menu_items) menu.add_command(label="OSLRv2", state=tk.DISABLED)
widget_menu.add_cascade(label="Adjacency", menu=adjacency_menu) widget_menu.add_cascade(label="Adjacency", menu=menu)
def draw_widgets_menu(self): def draw_widgets_menu(self):
""" """
@ -534,18 +403,14 @@ class Menubar(tk.Menu):
:return: nothing :return: nothing
""" """
widget_menu = tk.Menu(self) menu = tk.Menu(self)
self.create_observer_widgets_menu(widget_menu) self.create_observer_widgets_menu(menu)
self.create_adjacency_menu(widget_menu) self.create_adjacency_menu(menu)
widget_menu.add_command(label="Throughput", command=action.widgets_throughput) menu.add_command(label="Throughput", state=tk.DISABLED)
widget_menu.add_separator() menu.add_separator()
widget_menu.add_command( menu.add_command(label="Configure Adjacency...", state=tk.DISABLED)
label="Configure Adjacency...", command=action.widgets_configure_adjacency menu.add_command(label="Configure Throughput...", state=tk.DISABLED)
) self.add_cascade(label="Widgets", menu=menu)
widget_menu.add_command(
label="Configure Throughput...", command=action.widgets_configure_throughput
)
self.add_cascade(label="Widgets", menu=widget_menu, underline=0)
def draw_session_menu(self): def draw_session_menu(self):
""" """
@ -553,36 +418,21 @@ class Menubar(tk.Menu):
:return: nothing :return: nothing
""" """
session_menu = tk.Menu(self) menu = tk.Menu(self)
session_menu.add_command( menu.add_command(
label="Change sessions...", label="Change sessions...",
command=self.menuaction.session_change_sessions, command=self.menuaction.session_change_sessions,
underline=0, underline=0,
) )
session_menu.add_separator() menu.add_separator()
session_menu.add_command( menu.add_command(label="Comments...", state=tk.DISABLED)
label="Node types...", command=action.session_node_types, underline=0 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( menu.add_command(label="Options...", command=self.menuaction.session_options)
label="Comments...", command=action.session_comments, underline=0 self.add_cascade(label="Session", menu=menu)
)
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)
def draw_help_menu(self): def draw_help_menu(self):
""" """
@ -590,13 +440,13 @@ class Menubar(tk.Menu):
:return: nothing :return: nothing
""" """
help_menu = tk.Menu(self) menu = tk.Menu(self)
help_menu.add_command( menu.add_command(
label="Core Github (www)", command=self.menuaction.help_core_github label="Core Github (www)", command=self.menuaction.help_core_github
) )
help_menu.add_command( menu.add_command(
label="Core Documentation (www)", label="Core Documentation (www)",
command=self.menuaction.help_core_documentation, command=self.menuaction.help_core_documentation,
) )
help_menu.add_command(label="About", command=action.help_about) menu.add_command(label="About", state=tk.DISABLED)
self.add_cascade(label="Help", menu=help_menu) self.add_cascade(label="Help", menu=menu)