note description: "[ One of the classes that decompose the numourous VITP widgets into more managable groups. This class models the widgets that contain the ports AND sea areas. ]" author: "Jimmy J. Johnson" date: "5/15/24" copyright: "Copyright (c) 2024, Jimmy J. Johnson" license: "Eiffel Forum v2 (http://www.eiffel.com/licensing/forum.txt)" class LOCATION_WIDGITS_FACTORY inherit PORT_WIDGET_FACTORY redefine make_widgets, extend_widgets, pair_widgets, fill_widgets end SEA_AREAS_FACTORY redefine make_widgets, extend_widgets, pair_widgets, fill_widgets end create make feature -- Initialization make_widgets -- Create the widgets in Current do create location_widgets.make (100) Precursor {PORT_WIDGET_FACTORY} Precursor {SEA_AREAS_FACTORY} end feature -- Access location_widgets: VITP_WIDGET_TABLE [LOCATION_WIDGET, LOCATION] -- Keeps track of widgets feature {NONE} -- Implementation extend_widgets -- Put each widget into `world'. do Precursor {PORT_WIDGET_FACTORY} Precursor {SEA_AREAS_FACTORY} location_widgets.merge (port_widgets) location_widgets.merge (sea_area_widgets) end pair_widgets -- Associate each widget with a unit do Precursor {PORT_WIDGET_FACTORY} Precursor {SEA_AREAS_FACTORY} end fill_widgets -- Call `set_target' to give each widget a target. do Precursor {PORT_WIDGET_FACTORY} Precursor {SEA_AREAS_FACTORY} end end