with Gtk.Main; with Gtk.Tooltip; with Ada.Text_IO; use Ada.Text_IO; with graphical_editor.scheduling_refs; use graphical_editor.scheduling_refs; with graphical_editor.manuals; use graphical_editor.manuals; with graphical_editor.caches; use graphical_editor.caches; with graphical_editor.cores; use graphical_editor.cores; with graphical_editor.address_spaces; use graphical_editor.address_spaces; with graphical_editor.processors; use graphical_editor.processors; with graphical_editor.networks; use graphical_editor.networks; with graphical_editor.oxmls; use graphical_editor.oxmls; with graphical_editor.import_aadls; use graphical_editor.import_aadls; with graphical_editor.export_aadls; use graphical_editor.export_aadls; with graphical_editor.aadl_options; use graphical_editor.aadl_options; with graphical_editor.save_xmls; use graphical_editor.save_xmls; with graphical_editor.tasks; use graphical_editor.tasks; with graphical_editor.messages; use graphical_editor.messages; with graphical_editor.dependencies; use graphical_editor.dependencies; with graphical_editor.resources; use graphical_editor.resources; with graphical_editor.buffers; use graphical_editor.buffers; with graphical_editor.event_tables; use graphical_editor.event_tables; with graphical_editor.event_analyzers; use graphical_editor.event_analyzers; with graphical_editor.analysis_on_event_table; use graphical_editor.analysis_on_event_table; with graphical_editor.scheduling_simulations; use graphical_editor.scheduling_simulations; with graphical_editor.priorities_rm; use graphical_editor.priorities_rm; with graphical_editor.priorities_dm; use graphical_editor.priorities_dm; with graphical_editor.scheduling_feasibility_widgets; use graphical_editor.scheduling_feasibility_widgets; with graphical_editor.message_text; use graphical_editor.message_text; with graphical_editor.static_deployments; use graphical_editor.static_deployments; with Project; use Project; with Glib; use Glib; with Glib.Object; use Glib.Object; with Gtk.Widget; use Gtk.Widget; with Gdk.Window; use Gdk.Window; with Gdk.Color; use Gdk.Color; with Gdk.GC; use Gdk.GC; with graphical_editor.Draw_Scheduling_Pkg; use graphical_editor.Draw_Scheduling_Pkg; with Gdk.Drawable; use Gdk.Drawable; with Call_Framework; use Call_Framework; with Call_Framework_Interface; use Call_Framework_Interface; use Call_Framework_Interface.Framework_Request_Package; use Call_Framework_Interface.Framework_Response_Package; with Call_Scheduling_Framework; use Call_Scheduling_Framework; with Tasks; use Tasks; with Task_Set; use Task_Set; use Task_Set.Generic_Task_Set; with Buffers; use Buffers; with Buffer_Set; use Buffer_Set; use Buffer_Set.Generic_Buffer_Set; with Address_Spaces; use Address_Spaces; with Address_Space_Set; use Address_Space_Set; use Address_Space_Set.Generic_Address_Space_Set; with Resources; use Resources; with Resource_Set; use Resource_Set; use Resource_Set.Generic_Resource_Set; with Processors; use Processors; with Processor_Set; use Processor_Set; use Processor_Set.Generic_Processor_Set; use Processor_Set.Generic_core_unit_Set; with Multiprocessor_Services; use Multiprocessor_Services; with Multiprocessor_Services_Interface; use Multiprocessor_Services_Interface; use Multiprocessor_Services_Interface.Scheduling_Result_Per_Processor_Package; with graphical_editor.user_message; use graphical_editor.user_message; with Translate; use Translate; with Framework_Config; use Framework_Config; with Gtk.Text_Iter; use Gtk.Text_Iter; package body graphical_editor.cheddar_callbacks is line_Number : integer := 0; procedure draw_time_line_from_event_table (Object : access Gtkada_Builder_Record'Class) is begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); return; end if; if Framework.Sched.nb_entries = 0 then Show_Message_Box (Lb_Schedule_Before (Current_Language)); return; end if; graphical_editor.event_tables.show_draw_time_line_from_event_table_widget; end draw_time_line_from_event_table; procedure initialyse_system (Object : access Gtkada_Builder_Record'Class) is begin Do_New; end initialyse_system; function new_quit (Object : access Gtkada_Builder_Record'Class) return Boolean is begin Do_Exit; return True; end new_quit; procedure new_Quit_proc (Object : access Gtkada_Builder_Record'Class) is begin Do_Exit; end new_quit_proc; procedure Quit (Object : access Gtkada_Builder_Record'Class) is begin Gtk.Main.Gtk_Exit (0); end Quit; function QuitAboutDialog (Object : access Gtkada_Builder_Record'Class) return boolean is begin Gtk.Main.Main_quit; return false; end QuitAboutDialog; procedure about (Object : access Gtkada_Builder_Record'Class) is begin Show_Message_Box (Lb_About_Text (Current_Language)); end about; procedure clear_workspace (Object : access Gtkada_Builder_Record'Class) is begin Set_Text(buffer_editor_cheddar, ""); Gdk.Window.Clear (get_window(my_area)); end clear_workspace; procedure manual (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.manuals.Show_Manual_Widget; end manual; procedure cache (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.caches.Show_Cache_Widget; end cache; procedure static_deployment (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.static_deployments.Show_Static_Deployment_Widget; end static_deployment; procedure set_priorities_rm (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.priorities_rm.Show_Priorities_Rm_Widget; end set_priorities_rm; procedure set_priorities_dm (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.priorities_dm.Show_Priorities_Dm_Widget; end set_priorities_dm; procedure buffer (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.buffers.Show_Buffer_Widget; end buffer; procedure export_cheddar_properties_set (Object : access Gtkada_Builder_Record'Class) is begin Write_Cheddar_Property_Sets_To_File (Sys); end export_cheddar_properties_set; procedure export_aadl_standard_properties_set (Object : access Gtkada_Builder_Record'Class) is begin Write_Aadl_Standard_Properties_Set_To_File (Sys); end export_aadl_standard_properties_set; procedure scheduling_partition_best_fit (Object : access Gtkada_Builder_Record'Class) is Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); return; end if; if (get_number_of_elements (Sys.Processors) = 0) then Show_Message_Box (Lb_Define_Processors_Before (Current_Language)); return; end if; if (get_number_of_elements (Sys.Address_Spaces) = 0) then Show_Message_Box (Lb_Define_Address_Spaces_Before (Current_Language)); return; end if; Initialize (A_Request); A_Request.statement := Scheduling_Feasibility_Best_Fit; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); end scheduling_partition_best_fit; procedure scheduling_partition_first_fit (Object : access Gtkada_Builder_Record'Class) is Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); return; end if; if (get_number_of_elements (Sys.Processors) = 0) then Show_Message_Box (Lb_Define_Processors_Before (Current_Language)); return; end if; if (get_number_of_elements (Sys.Address_Spaces) = 0) then Show_Message_Box (Lb_Define_Address_Spaces_Before (Current_Language)); return; end if; Initialize (A_Request); A_Request.statement := Scheduling_Feasibility_First_Fit; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); end scheduling_partition_first_fit; procedure priorities_display_chetto (Object : access Gtkada_Builder_Record'Class) is Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); else Initialize (A_Request); A_Request.statement := Dependency_Compute_Chetto_Blazewicz_Priority; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); end if; end priorities_display_chetto; procedure deadline_display_chetto (Object : access Gtkada_Builder_Record'Class) is Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); else Initialize (A_Request); A_Request.statement := Dependency_Compute_Chetto_Blazewicz_Deadline; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); end if; end deadline_display_chetto; procedure deadline_update_chetto (Object : access Gtkada_Builder_Record'Class) is pragma Unreferenced (Object); Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); else Initialize (A_Request); A_Request.statement := Dependency_Set_Chetto_Blazewicz_Deadline; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); -- Do not forget to save project -- since tasks are modified !! -- Is_New := False; Is_Saved := False; end if; end deadline_update_chetto; procedure end_to_end_display_one_step (Object : access Gtkada_Builder_Record'Class) is Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); else Initialize (A_Request); A_Request.statement := Dependency_Compute_End_To_End_Response_Time_One_Step; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); end if; end end_to_end_display_one_step; procedure end_to_end_update_one_step (Object : access Gtkada_Builder_Record'Class) is pragma Unreferenced (Object); Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); else Initialize (A_Request); A_Request.statement := Dependency_Set_End_To_End_Response_Time_One_Step; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); -- Do not forget to save project -- since tasks are modified !! -- Is_New := False; Is_Saved := False; end if; end end_to_end_update_one_step; procedure end_to_end_display_all_steps (Object : access Gtkada_Builder_Record'Class) is pragma Unreferenced (Object); Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); else Initialize (A_Request); A_Request.statement := Dependency_Compute_End_To_End_Response_Time_All_Steps; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); end if; end end_to_end_display_all_steps; procedure end_to_end_update_all_steps (Object : access Gtkada_Builder_Record'Class) is Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); else Initialize (A_Request); A_Request.statement := Dependency_Set_End_To_End_Response_Time_All_Steps; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); Is_New := False; Is_Saved := False; end if; end end_to_end_update_all_steps; procedure priorities_update_chetto (Object : access Gtkada_Builder_Record'Class) is Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); else Initialize (A_Request); A_Request.statement := Dependency_Set_Chetto_Blazewicz_Priority; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); -- Do not forget to save project -- since tasks are modified !! -- Is_New := False; Is_Saved := False; end if; end priorities_update_chetto; procedure scheduling_partition_small_task (Object : access Gtkada_Builder_Record'Class) is Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); return; end if; if (get_number_of_elements (Sys.Processors) = 0) then Show_Message_Box (Lb_Define_Processors_Before (Current_Language)); return; end if; if (get_number_of_elements (Sys.Address_Spaces) = 0) then Show_Message_Box (Lb_Define_Address_Spaces_Before (Current_Language)); return; end if; Initialize (A_Request); A_Request.statement := Scheduling_Feasibility_Small_Task; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); end scheduling_partition_small_task; procedure scheduling_partition_next_fit (Object : access Gtkada_Builder_Record'Class) is Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); return; end if; if (get_number_of_elements (Sys.Processors) = 0) then Show_Message_Box (Lb_Define_Processors_Before (Current_Language)); return; end if; if (get_number_of_elements (Sys.Address_Spaces) = 0) then Show_Message_Box (Lb_Define_Address_Spaces_Before (Current_Language)); return; end if; Initialize (A_Request); A_Request.statement := Scheduling_Feasibility_Next_Fit; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); end scheduling_partition_next_fit; procedure compute_response_time_density (Object : access Gtkada_Builder_Record'Class) is Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); return; end if; if Framework.Sched.nb_entries = 0 then Show_Message_Box (Lb_Schedule_Before (Current_Language)); return; end if; Initialize (A_Request); A_Request.statement := Random_Response_Time_Density; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); end compute_response_time_density; procedure scheduling_partition_general (Object : access Gtkada_Builder_Record'Class) is Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); return; end if; if (get_number_of_elements (Sys.Processors) = 0) then Show_Message_Box (Lb_Define_Processors_Before (Current_Language)); return; end if; if (get_number_of_elements (Sys.Address_Spaces) = 0) then Show_Message_Box (Lb_Define_Address_Spaces_Before (Current_Language)); return; end if; Initialize (A_Request); A_Request.statement := Scheduling_Feasibility_General_Task; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); end scheduling_partition_general; procedure analysis_buffer_feasibility (Object : access Gtkada_Builder_Record'Class) is pragma Unreferenced (Object); Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Buffers) = 0) then Show_Message_Box (Lb_Define_Buffers_Before (Current_Language)); return; end if; Initialize (A_Request); A_Request.statement := Buffer_Feasibility_Tests; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text(Response_List); end analysis_buffer_feasibility; procedure analysis_buffer_simulation (Object : access Gtkada_Builder_Record'Class) is begin put_line("appeller ici la fction on_Draw_Buffer_Activate de root_window package"); end analysis_buffer_simulation; procedure scheduling_feasibility (Object : access Gtkada_Builder_Record'Class) is pragma Unreferenced (Object); Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); return; end if; Initialize (A_Request); A_Request.statement := Scheduling_Feasibility_Basics; A_Request.target := To_Unbounded_String (""); add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text(Response_List); end scheduling_feasibility; procedure scheduling_simulation (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.scheduling_simulations.Show_scheduling_options_Widget; end scheduling_simulation; procedure run_analysis_on_event_table (Object : access Gtkada_Builder_Record'Class) is begin if Framework.Sched.nb_entries = 0 then Show_Message_Box (Lb_Schedule_Before (Current_Language)); return; end if; graphical_editor.analysis_on_event_table.Show_scheduling_options_Widget; end run_analysis_on_event_table; procedure scheduling_feasibility_widget (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.scheduling_feasibility_widgets.Show_scheduling_feasibility_widget; end scheduling_feasibility_widget; procedure core (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.cores.Show_Core_Widget; end core; procedure event_analyzer (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.event_analyzers.Show_Event_Analyzer_Widget; end event_analyzer; procedure message (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.messages.Show_Message_Widget; end message; procedure dependencies (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.dependencies.show_dependencies_widget; end dependencies; procedure resource (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.resources.Show_Resource_Widget; end resource; procedure adress_space (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.address_spaces.Show_Address_spaces_Widget; end adress_space; procedure taskc (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.tasks.Show_Tasks_Widget; end taskc; procedure processor (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.processors.Show_Processor_Widget; end processor; procedure network (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.networks.Show_Network_Widget; end network; procedure open_xml (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.oxmls.Show_file_chooser_Dialog; end open_xml; procedure import_event_table (Object : access Gtkada_Builder_Record'Class) is begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); return; end if; graphical_editor.event_tables.show_file_chooser_dialog_import; end import_event_table; procedure import_aadl (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.import_aadls.Show_file_chooser_Dialog; end import_aadl; procedure export_aadl (Object : access Gtkada_Builder_Record'Class) is pragma Unreferenced (Object); begin graphical_editor.export_aadls.Show_file_chooser_Dialog; end export_aadl; procedure aadl_option (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.aadl_options.Show_aadl_option_widget; end aadl_option; procedure save_xml (Object : access Gtkada_Builder_Record'Class) is begin if (Xml_Project_File_Name /= To_Unbounded_String ("")) then Systems.Write_To_Xml_File (Sys, Xml_Project_File_Name); Is_Saved := True; else graphical_editor.save_xmls.Show_file_chooser_Dialog; end if; end save_xml; procedure save_as_xml (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.save_xmls.Show_file_chooser_Dialog; end save_as_xml; procedure export_event_table (Object : access Gtkada_Builder_Record'Class) is begin if Framework.Sched.nb_entries = 0 then Show_Message_Box (Lb_Schedule_Before (Current_Language)); return; end if; graphical_editor.event_tables.Show_file_chooser_Dialog_export; end export_event_table; procedure scheduling_ref (Object : access Gtkada_Builder_Record'Class) is begin graphical_editor.scheduling_refs.Show_Sched_Reference_Widget; end scheduling_ref; procedure resource_deadlock (Object : access Gtkada_Builder_Record'Class) is Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Resources) = 0) then Show_Message_Box (Lb_Define_Resources_Before (Current_Language)); return; end if; -- check if tasks exist -- if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); return; end if; -- Check if scheduling is computed or not -- --if Call_Scheduling_Framework.Sched.nb_entries = 0 then if Framework.Sched.nb_entries = 0 then Show_Message_Box (Lb_Schedule_Before (Current_Language)); return; end if; Initialize (A_Request); A_Request.statement := Scheduling_Simulation_Deadlock; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); end resource_deadlock; procedure resource_priority_inversion (Object : access Gtkada_Builder_Record'Class) is Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin -- check if there are resources -- if (get_number_of_elements (Sys.Resources) = 0) then Show_Message_Box (Lb_Define_Resources_Before (Current_Language)); return; end if; -- check if tasks exist -- if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); return; end if; if Framework.Sched.nb_entries = 0 then Show_Message_Box (Lb_Schedule_Before (Current_Language)); return; end if; Initialize (A_Request); A_Request.statement := Scheduling_Simulation_Priority_Inversion; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); end resource_priority_inversion; procedure bound_blocking_display (Object : access Gtkada_Builder_Record'Class) is pragma Unreferenced (Object); Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Resources) = 0) then Show_Message_Box (Lb_Define_Resources_Before (Current_Language)); else Initialize (A_Request); A_Request.statement := Scheduling_Feasibility_Compute_Blocking_Time; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); end if; end bound_blocking_display; procedure bound_blocking_update (Object : access Gtkada_Builder_Record'Class) is Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Resources) = 0) then Show_Message_Box (Lb_Define_Resources_Before (Current_Language)); else Initialize (A_Request); A_Request.statement := Scheduling_Feasibility_Compute_And_Set_Blocking_Time; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); -- Do not forget to save project -- since tasks are modified !! -- Is_New := False; Is_Saved := False; end if; end bound_blocking_update; procedure check_address_space_update (Object : access Gtkada_Builder_Record'Class) is pragma Unreferenced (Object); Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); return; end if; if (get_number_of_elements (Sys.Address_Spaces) = 0) then Show_Message_Box (Lb_Define_Address_Spaces_Before (Current_Language)); return; end if; Initialize (A_Request); A_Request.statement := Global_Memory_Compute_Requirement_Analysis; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); end check_address_space_update; procedure check_address_space (Object : access Gtkada_Builder_Record'Class) is Response_List : Framework_Response_Table; Request_List : Framework_Request_Table; A_Request : Framework_Request; begin if (get_number_of_elements (Sys.Tasks) = 0) then Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); return; end if; if (get_number_of_elements (Sys.Address_Spaces) = 0) then Show_Message_Box (Lb_Define_Address_Spaces_Before (Current_Language)); return; end if; Initialize (A_Request); A_Request.statement := Global_Memory_Set_Requirement_Analysis; add (Request_List, A_Request); Sequential_Framework_Request (Sys, Request_List, Response_List); Write_Title_And_Text (Response_List); end check_address_space; end graphical_editor.cheddar_callbacks;