3131from controllers .main_controller import MainController
3232from controllers .minizinc_controller import MiniZincController
3333from controllers .csv_controller import CsvController
34- from models .constants import PlateDefaults , UI , Messages , WindowConfig , FileTypes , PathsIni , Validation
34+ from models .constants import PlateDefaults , MainMenu , UI , Messages , WindowConfig , FileTypes , PathsIni , Validation
3535from core .io_utils import path_show
3636from ui .ui_validators import numeric_entry_callback
3737
@@ -72,15 +72,15 @@ def __init__(
7272 self ._build_ui ()
7373
7474 self ._shortcuts = [
75- # (menu, label, key_event, accelerator, handler, guard)
76- ("file" , "Load DZN…" , "<Control-d>" , "Ctrl+D" , self ._on_load_dzn , None ),
77- ("file" , "Load CSV…" , "<Control-f>" , "Ctrl+f " , self ._on_load_csv , None ),
78- ("tools" , "Generate DZN…" , "<Control-g>" , "Ctrl+G" , self ._on_generate_dzn , None ),
79- ("tools" , "Run MiniZinc…" , "<Control-r>" , "Ctrl+R" , self ._on_run_minizinc , self .button_run_minizinc ),
80- ("tools" , "Visualize" , "<Control-l>" , "Ctrl+L" , self ._on_visualize , self .button_visualize ),
81- ("tools" , "Reset" , "<Control-e>" , "Ctrl+E" , self ._set_program_state_to_default_call , None ),
75+ # (menu, label, key_event, accelerator, handler, guard)
76+ ("file" , MainMenu . LOAD_DZN , "<Control-d>" , "Ctrl+D" , self ._on_load_dzn , None ),
77+ ("file" , MainMenu . LOAD_CSV , "<Control-f>" , "Ctrl+F " , self ._on_load_csv , None ),
78+ ("tools" , MainMenu . GEN_DZN , "<Control-g>" , "Ctrl+G" , self ._on_generate_dzn , None ),
79+ ("tools" , MainMenu . RUN_MZN , "<Control-r>" , "Ctrl+R" , self ._on_run_minizinc , self .button_run_minizinc ),
80+ ("tools" , MainMenu . VISUALIZE , "<Control-l>" , "Ctrl+L" , self ._on_visualize , self .button_visualize ),
81+ ("tools" , MainMenu . RESET , "<Control-e>" , "Ctrl+E" , self ._set_program_state_to_default_call , None ),
8282 ]
83-
83+
8484 self ._setup_window ()
8585 self ._setup_shortcuts ()
8686 self ._setup_menu ()
@@ -282,11 +282,11 @@ def _setup_menu(self) -> None:
282282 label = label , accelerator = accelerator , command = handler
283283 )
284284 # Insert the Recent submenus after the Load CSV entry
285- if label == "Load CSV…" :
285+ if label == MainMenu . LOAD_CSV :
286286 self .menu_file .add_separator ()
287- self .menu_file .add_cascade (label = "Recent DZN files" , menu = self .menu_recent_dzn )
288- self .menu_file .add_cascade (label = "Recent CSV files" , menu = self .menu_recent_csv )
289- elif label == "Run MiniZinc…" :
287+ self .menu_file .add_cascade (label = MainMenu . RCNT_DZN , menu = self .menu_recent_dzn )
288+ self .menu_file .add_cascade (label = MainMenu . RCNT_CSV , menu = self .menu_recent_csv )
289+ elif label == MainMenu . RUN_MZN :
290290 self .menu_tools .add_separator () # separator before Visualize
291291
292292 self .menu_bar .add_cascade (label = "File" , menu = self .menu_file )
@@ -339,7 +339,7 @@ def _update_run_minizinc_button_state(self) -> None:
339339
340340 new_state = tk .NORMAL if button_should_be_enabled else tk .DISABLED
341341 self .button_run_minizinc .config (state = new_state )
342- self .menu_tools .entryconfig ("Run MiniZinc…" , state = new_state )
342+ self .menu_tools .entryconfig (MainMenu . RUN_MZN , state = new_state )
343343
344344 if button_should_be_enabled :
345345 logger .debug ("Run Model button enabled - config valid" )
@@ -636,14 +636,14 @@ def lock(self) -> None:
636636 self .button__set_program_state_to_default .config (state = tk .DISABLED )
637637
638638 # Disable menu entries
639- self .menu_file .entryconfig ("Load DZN…" , state = tk .DISABLED )
640- self .menu_file .entryconfig ("Load CSV…" , state = tk .DISABLED )
641- self .menu_file .entryconfig ("Recent DZN files" , state = tk .DISABLED )
642- self .menu_file .entryconfig ("Recent CSV files" , state = tk .DISABLED )
643- self .menu_tools .entryconfig ("Generate DZN…" , state = tk .DISABLED )
644- self .menu_tools .entryconfig ("Run MiniZinc…" , state = tk .DISABLED )
645- self .menu_tools .entryconfig ("Visualize" , state = tk .DISABLED )
646- self .menu_tools .entryconfig ("Reset" , state = tk .DISABLED )
639+ self .menu_file .entryconfig ( MainMenu . LOAD_DZN , state = tk .DISABLED )
640+ self .menu_file .entryconfig ( MainMenu . LOAD_CSV , state = tk .DISABLED )
641+ self .menu_file .entryconfig ( MainMenu . RCNT_DZN , state = tk .DISABLED )
642+ self .menu_file .entryconfig ( MainMenu . RCNT_CSV , state = tk .DISABLED )
643+ self .menu_tools .entryconfig (MainMenu . GEN_DZN , state = tk .DISABLED )
644+ self .menu_tools .entryconfig (MainMenu . RUN_MZN , state = tk .DISABLED )
645+ self .menu_tools .entryconfig (MainMenu . VISUALIZE , state = tk .DISABLED )
646+ self .menu_tools .entryconfig (MainMenu . RESET , state = tk .DISABLED )
647647 logger .debug ("Main window locked" )
648648
649649 def unlock (self ) -> None :
@@ -661,18 +661,18 @@ def unlock(self) -> None:
661661 self .button_load_dzn .config (state = tk .NORMAL )
662662 self .button_load_csv .config (state = tk .NORMAL )
663663 self .button__set_program_state_to_default .config (state = tk .NORMAL )
664- self .menu_file .entryconfig ("Load DZN…" , state = tk .NORMAL )
665- self .menu_file .entryconfig ("Load CSV…" , state = tk .NORMAL )
666- self .menu_file .entryconfig ("Recent DZN files" , state = tk .NORMAL )
667- self .menu_file .entryconfig ("Recent CSV files" , state = tk .NORMAL )
668- self .menu_tools .entryconfig ("Generate DZN…" , state = tk .NORMAL )
669- self .menu_tools .entryconfig ("Reset" , state = tk .NORMAL )
664+ self .menu_file .entryconfig ( MainMenu . LOAD_DZN , state = tk .NORMAL )
665+ self .menu_file .entryconfig ( MainMenu . LOAD_CSV , state = tk .NORMAL )
666+ self .menu_file .entryconfig ( MainMenu . RCNT_DZN , state = tk .NORMAL )
667+ self .menu_file .entryconfig ( MainMenu . RCNT_CSV , state = tk .NORMAL )
668+ self .menu_tools .entryconfig (MainMenu . GEN_DZN , state = tk .NORMAL )
669+ self .menu_tools .entryconfig (MainMenu . RESET , state = tk .NORMAL )
670670
671671 # Restore state-dependent controls without resetting data
672672 self ._update_run_minizinc_button_state ()
673673 if self .csv_file_path .get ():
674674 self .button_visualize .config (state = tk .NORMAL )
675- self .menu_tools .entryconfig ("Visualize" , state = tk .NORMAL )
675+ self .menu_tools .entryconfig (MainMenu . VISUALIZE , state = tk .NORMAL )
676676 logger .debug ("Main window unlocked" )
677677
678678 def show (self ) -> None :
0 commit comments