------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- Cheddar is a GNU GPL real-time scheduling analysis tool. -- This program provides services to automatically check schedulability and -- other performance criteria of real-time architecture models. -- -- Copyright (C) 2002-2023, Frank Singhoff, Alain Plantec, Jerome Legrand, -- Hai Nam Tran, Stephane Rubini -- -- The Cheddar project was started in 2002 by -- Frank Singhoff, Lab-STICC UMR 6285, Université de Bretagne Occidentale -- -- Cheddar has been published in the "Agence de Protection des Programmes/France" in 2008. -- Since 2008, Ellidiss technologies also contributes to the development of -- Cheddar and provides industrial support. -- -- The full list of contributors and sponsors can be found in README.md -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -- -- -- Contact : cheddar@listes.univ-brest.fr -- ------------------------------------------------------------------------------ -- Last update : -- $Rev: 4028 $ -- $Date: 2021-08-25 22:50:24 +0200 (mer., 25 août 2021) $ -- $Author: singhoff $ ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ with GNAT.OS_Lib; use GNAT.OS_Lib; with Ada.Text_IO; use Ada.Text_IO; with call_scheduling_framework; use call_scheduling_framework; with framework; use framework; with framework_config; use framework_config; with translate; use translate; with multiprocessor_services; use multiprocessor_services; with multiprocessor_services_interface; use multiprocessor_services_interface; use multiprocessor_services_interface.scheduling_result_per_processor_package; with multiprocessor_services; use multiprocessor_services; with graphical_editor.message_text; use graphical_editor.message_text; with graphical_editor.cheddar_callbacks; use graphical_editor.cheddar_callbacks; with graphical_editor.cheddar_callbacks.tool_menu; use graphical_editor.cheddar_callbacks.tool_menu; with graphical_editor.cheddar_callbacks.edit_menu; use graphical_editor.cheddar_callbacks.edit_menu; with graphical_editor.cheddar_callbacks.file_menu; use graphical_editor.cheddar_callbacks.file_menu; with graphical_editor.cheddar_callbacks.help_menu; use graphical_editor.cheddar_callbacks.help_menu; with graphical_editor.wizard; use graphical_editor.wizard; with graphical_editor.scheduling_simulations_callbacks; use graphical_editor.scheduling_simulations_callbacks; with Gtkada.Dialogs; use Gtkada.Dialogs; with Gtk; use Gtk; with Gtk.Main; use Gtk.Main; package body graphical_editor is procedure do_new is begin if (not is_saved) then if (not is_new) then if Message_Dialog (To_String (lb_not_saved_project (current_language) & ASCII.LF & lb_continue (current_language)), confirmation, Button_Yes or Button_Cancel, Button_Cancel, "", "") /= Button_Yes then return; end if; end if; end if; initialize (sys); xml_project_file_name := To_Unbounded_String (""); initialize (aadl_project_file_name); xml_event_table_file_name := To_Unbounded_String ("default_event_table.xml"); is_saved := False; is_new := True; starting_text; event_table_file_name := empty_string; if framework.sched /= null then initialize (framework.sched.all); end if; end do_new; procedure do_open is begin if (not is_saved) then if (not is_new) then if Message_Dialog (To_String (lb_not_saved_project (current_language) & ASCII.LF & lb_continue (current_language)), confirmation, Button_Yes or Button_Cancel, Button_Cancel, "", "") /= Button_Yes then return; end if; end if; end if; initialize (sys); xml_project_file_name := To_Unbounded_String (""); initialize (aadl_project_file_name); xml_event_table_file_name := To_Unbounded_String ("default_event_table.xml"); is_saved := False; is_new := True; event_table_file_name := empty_string; if framework.sched /= null then initialize (framework.sched.all); end if; end do_open; procedure do_wizard is begin if (not is_saved) then if (not is_new) then if Message_Dialog (To_String (lb_not_saved_project (current_language) & ASCII.LF & lb_continue (current_language)), confirmation, Button_Yes or Button_Cancel, Button_Cancel, "", "") /= Button_Yes then return; end if; end if; end if; xml_project_file_name := To_Unbounded_String (""); initialize (aadl_project_file_name); xml_event_table_file_name := To_Unbounded_String ("default_event_table.xml"); is_saved := False; is_new := True; event_table_file_name := empty_string; if framework.sched /= null then initialize (framework.sched.all); end if; end do_wizard; procedure do_save is begin if (xml_project_file_name /= To_Unbounded_String ("")) then systems.write_to_xml_file (sys, xml_project_file_name); is_saved := True; end if; end do_save; procedure do_aadl_export is begin null; end do_aadl_export; procedure do_aadl_import is begin if (not is_saved) then if (not is_new) then if Message_Dialog (To_String (lb_not_saved_project (current_language) & ASCII.LF & lb_continue (current_language)), confirmation, Button_Yes or Button_Cancel, Button_Cancel, "", "") /= Button_Yes then return; end if; end if; end if; end do_aadl_import; procedure do_exit is begin if (not is_saved) then if (not is_new) then if Message_Dialog (To_String (lb_not_saved_project (current_language) & ASCII.LF & lb_continue (current_language)), confirmation, Button_Yes or Button_Cancel, Button_Cancel, "", "") = Button_Yes then Os_Exit (0); else return; end if; end if; end if; OS_Exit (0); end do_exit; function display_zoom return Unbounded_String is result : Unbounded_String := To_Unbounded_String (""); begin case zoom_level is when -4 => result := To_Unbounded_String ("5 %"); when -3 => result := To_Unbounded_String ("10 %"); when -2 => result := To_Unbounded_String ("25 %"); when -1 => result := To_Unbounded_String ("50 %"); when 0 => result := To_Unbounded_String ("100 %"); when +1 => result := To_Unbounded_String ("200 %"); when +2 => result := To_Unbounded_String ("400 %"); when +3 => result := To_Unbounded_String ("1000 %"); when +4 => result := To_Unbounded_String ("2000 %"); end case; return result; end display_zoom; procedure connect_callbacks is begin connect_file_callbacks; connect_tool_callbacks; connect_edit_callbacks; connect_help_callbacks; Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem39_activate", Handler => graphical_editor.cheddar_callbacks.new_quit_proc'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_toolbutton3_clicked", Handler => graphical_editor.cheddar_callbacks.new_quit_proc'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "gtk_main_quit", Handler => graphical_editor.cheddar_callbacks.new_quit'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_window1_destroy", Handler => graphical_editor.cheddar_callbacks.quit'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem29_activate", Handler => graphical_editor.cheddar_callbacks.initialyse_system'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_toolbutton4_clicked", Handler => graphical_editor.cheddar_callbacks.initialyse_system'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem27_activate", Handler => graphical_editor.cheddar_callbacks.clear_workspace'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_toolbutton8_clicked", Handler => graphical_editor.cheddar_callbacks.clear_workspace'access); end connect_callbacks; procedure connect_edit_callbacks is begin Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem14_activate", Handler => graphical_editor.cheddar_callbacks.edit_menu.cache'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem15_activate", Handler => graphical_editor.cheddar_callbacks.edit_menu.core'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem21_activate", Handler => graphical_editor.cheddar_callbacks.edit_menu.buffer'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem16_activate", Handler => graphical_editor.cheddar_callbacks.edit_menu.processor'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem17_activate", Handler => graphical_editor.cheddar_callbacks.edit_menu.network'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem18_activate", Handler => graphical_editor.cheddar_callbacks.edit_menu.address_space'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem19_activate", Handler => graphical_editor.cheddar_callbacks.edit_menu.taskc'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem10_activate", Handler => graphical_editor.cheddar_callbacks.edit_menu.task_group'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem23_activate", Handler => graphical_editor.cheddar_callbacks.edit_menu.message'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem91_activate", Handler => graphical_editor.cheddar_callbacks.edit_menu.precedence_dependency'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem92_activate", Handler => graphical_editor.cheddar_callbacks.edit_menu.time_triggered_dependency'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem95_activate", Handler => graphical_editor.cheddar_callbacks.edit_menu.queueing_buffer_dependency'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem96_activate", Handler => graphical_editor.cheddar_callbacks.edit_menu.black_board_buffer_dependency' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem97_activate", Handler => graphical_editor.cheddar_callbacks .edit_menu.asynchronous_communication_dependency' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem98_activate", Handler => graphical_editor.cheddar_callbacks.edit_menu.resource_dependency'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem20_activate", Handler => graphical_editor.cheddar_callbacks.edit_menu.resource'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_toolbutton15_clicked", Handler => graphical_editor.wizard .show_wizard_widget' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem24_activate", Handler => graphical_editor.cheddar_callbacks.edit_menu.event_analyzer'access); end connect_edit_callbacks; procedure connect_help_callbacks is begin Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_imagemenuitem11_activate", Handler => graphical_editor.cheddar_callbacks.help_menu.about'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_Manual_activate", Handler => graphical_editor.cheddar_callbacks.help_menu.manual'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem9_activate", Handler => graphical_editor.cheddar_callbacks.help_menu.scheduling_ref'access); end connect_help_callbacks; procedure connect_file_callbacks is begin Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem32_activate", Handler => graphical_editor.cheddar_callbacks.file_menu.save_as_xml'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_toolbutton6_clicked", Handler => graphical_editor.cheddar_callbacks.file_menu.save_as_xml'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem30_activate", Handler => graphical_editor.cheddar_callbacks.file_menu.open_xml'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_toolbutton2_clicked", Handler => graphical_editor.cheddar_callbacks.file_menu.open_xml'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem31_activate", Handler => graphical_editor.cheddar_callbacks.file_menu.save_xml'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_toolbutton5_clicked", Handler => graphical_editor.cheddar_callbacks.file_menu.save_xml'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem34_activate", Handler => graphical_editor.cheddar_callbacks.file_menu.import_aadl'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem35_activate", Handler => graphical_editor.cheddar_callbacks.file_menu.export_aadl'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem38_activate", Handler => graphical_editor.cheddar_callbacks.file_menu.aadl_option'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem36_activate", Handler => graphical_editor.cheddar_callbacks.file_menu.export_cheddar_properties_set' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem37_activate", Handler => graphical_editor.cheddar_callbacks.file_menu.export_aadl_standard_properties_set' access); end connect_file_callbacks; procedure connect_tool_callbacks is begin Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem47_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.draw_time_line_from_event_table' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem48_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.run_analysis_on_event_table'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem68_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.end_to_end_display_one_step'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem63_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.check_address_space'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem64_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.check_address_space_update'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem69_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.end_to_end_update_one_step'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem70_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.end_to_end_display_all_steps' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem71_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.end_to_end_update_all_steps'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem72_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.deadline_display_chetto'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem73_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.deadline_update_chetto'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem74_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.priorities_display_chetto'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem75_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.priorities_update_chetto'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem79_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.resource_priority_inversion'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem80_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.resource_deadlock'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem93_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.ceiling_priority_display'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem94_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.ceiling_priority_update'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem81_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.bound_blocking_display'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem82_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.bound_blocking_update'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem40_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.scheduling_simulation'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem41_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.scheduling_feasibility_widget' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_toolbutton10_clicked", Handler => graphical_editor.cheddar_callbacks.tool_menu.scheduling_feasibility'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem50_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.import_event_table'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem6_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.set_priorities_audsley_opa'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem7_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.set_priorities_opa_crpd_pt'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem88_activate", Handler => graphical_editor.cheddar_callbacks .tool_menu.set_priorities_opa_crpd_pt_simplified' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem87_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.set_priorities_opa_crpd_tree' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem42_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.set_priorities_rm'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem43_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.set_priorities_dm'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem56_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.scheduling_option'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem90_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.feasibility_test_option'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem25_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.export_arinc653_tsp'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem49_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.export_event_table'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem62_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.compute_response_time_density' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem51_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.scheduling_partition_best_fit' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem53_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.scheduling_partition_next_fit' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem54_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.scheduling_partition_first_fit' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem55_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.scheduling_partition_small_task' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem52_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.scheduling_partition_general' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem76_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.analysis_buffer_feasibility'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem77_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.analysis_buffer_simulation'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem46_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.tindell_transaction_wcrt'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem84_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.audsley_transaction_wcrt'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem85_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.palencia_transaction_wcrt'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem86_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.wcdops_plus_transaction_wcrt' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem83_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.wcdops_plus_nim_transaction_wcrt' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemImportCFG_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.import_cfg'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemComputeCAP_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.compute_task_cache_access_profile' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitem99_activate", Handler => graphical_editor.cheddar_callbacks.tool_menu.design_pattern_analysis'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitembiba", Handler => graphical_editor.cheddar_callbacks.tool_menu.compute_mils_biba'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitembelllapadula", Handler => graphical_editor.cheddar_callbacks.tool_menu.compute_mils_belllapadula'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemchinisewall", Handler => graphical_editor.cheddar_callbacks.tool_menu.compute_mils_chinesewall'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemwarshall", Handler => graphical_editor.cheddar_callbacks.tool_menu.compute_mils_warshall'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemnocpath", Handler => graphical_editor.cheddar_callbacks.tool_menu.compute_noc_path_delay'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemnocdirect", Handler => graphical_editor.cheddar_callbacks.tool_menu.compute_noc_direct_delay'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemnocindirect", Handler => graphical_editor.cheddar_callbacks.tool_menu.compute_noc_indirect_delay'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemnoccom", Handler => graphical_editor.cheddar_callbacks.tool_menu.compute_noc_communication_delay' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemschedulinganomaliesactivate", Handler => graphical_editor.cheddar_callbacks.tool_menu.compute_scheduling_anomalies' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemscm", Handler => graphical_editor.cheddar_callbacks .tool_menu.compute_spacewire_scm_transformation' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemectmsaf", Handler => graphical_editor.cheddar_callbacks.tool_menu.compute_ectm_saf_transformation' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemwcctmsaf", Handler => graphical_editor.cheddar_callbacks.tool_menu.compute_wcctm_saf_transformation' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemectmwormhole", Handler => graphical_editor.cheddar_callbacks .tool_menu.compute_ectm_wormhole_transformation' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemwcctmwormhole", Handler => graphical_editor.cheddar_callbacks .tool_menu.compute_wcctm_wormhole_transformation' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemsetscm", Handler => graphical_editor.cheddar_callbacks.tool_menu.set_spacewire_scm_transformation' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemsetectmsaf", Handler => graphical_editor.cheddar_callbacks.tool_menu.set_ectm_saf_transformation'access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemsetwcctmsaf", Handler => graphical_editor.cheddar_callbacks.tool_menu.set_wcctm_saf_transformation' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemsetectmwormhole", Handler => graphical_editor.cheddar_callbacks.tool_menu.set_ectm_wormhole_transformation' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_menuitemsetwcctmwormhole", Handler => graphical_editor.cheddar_callbacks.tool_menu.set_wcctm_wormhole_transformation' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_toolbutton11_clicked", Handler => graphical_editor.scheduling_simulations_callbacks .show_scheduling_simulation_duration_widget' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_toolbutton1_clicked", Handler => graphical_editor.scheduling_simulations_callbacks .show_scheduling_simulation_zoom_fit' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_toolbutton12_clicked", Handler => graphical_editor.scheduling_simulations_callbacks .show_scheduling_simulation_zoom_in' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_toolbutton13_clicked", Handler => graphical_editor.scheduling_simulations_callbacks .show_scheduling_simulation_zoom_out' access); Register_Handler (Builder => Builder_Cheddar, Handler_Name => "on_toolbutton14_clicked", Handler => graphical_editor.scheduling_simulations_callbacks .show_scheduling_simulation_zoom_reset' access); end connect_tool_callbacks; end graphical_editor;