This project has several problems for which I have no answer, so I'm turning to Eiffel Software for help.  Notes about implementation follow the questions/problems.

I have problems with both Studio 20.05 and 22.05.

1a)  In 20.05 it runs in workbench mode and if finalized keeping assertions.  When finalized with assertions discarded get "feature call on Void target."

1b)  In 22.05 seg faults in workbench mode and when finalized keeping assertions.  When finalized with assertions discarded it runs.  ??


2)  Compilations seems extremely slow for descendants of VITP_WIDGET (e.g. ANDAMAN_ISLANDS_WIDGET, ATTU_WIDGET, ALEUTIAN_ISLANDS_WIDGET, etc.)  BTW, all the xx_WIDGET classes should be named xx_MODEL, because they are descendants of EV_MODEL not EV_WIDGET; this is a holdover from years of work.


3)  Getting CatCalls in EV_TOOL_BAR_RADIO_BUTTON_IMP.set_item_parent_imp?


4)  Problem with pick-and-put.  Run the program [in one of the modes that actually runs].  There is a window with two main sections: a map on the left and a set of three panels on the right.  Right click on a red square near the top of the "Japanese Order of Appearance Chart".  You can now drop the pebble on Yokosuka Navy Yard (Japan).  When right clicking on a red square Japan should light up; it does not.  The feature that highlights Japan is getting called, but the interface is not reacting to the change in color.  To see what should happen, click on one of the red squares that happen to be on the map.  Or, click on the yellow square that is over the word "Pacific" at the top-left of the map; this will highlight Japan, Saigon, and Truk.  So this "highlighting" works if the pick-and-put begins in the same (i.e. the map) "window".  This leads into the next issue.


5)  Try to zoom in/out with the plus/minus buttons at the top of each tool.  When zooming in, the scrollbars react but the content does not change until the mouse is moved into the view.  Zooming out does not have that problem.


Implementation notes:

1)  The main abstraction for the interface is VIEW, which is responsible for displaying its `target'.  When a COMMAND or other actions changes an object, it can ask they system to update all the views that contain that target.  For example, a red square is an ATTACK_UNIT_WIDGET which displays an ATTACK_UNIT.  Each SEA_AREA and PORT in the map is also a VIEW.

2)  The main window contains two TOOL objects.  (A TOOL is a VIEW.)  Each TOOL contains one or more views.  Placement of the tools and views is performed by classes in the "jj_vision" cluster.  

3)  The pick-and-put features are in class VIEW.  Near the bottom of the class are feature grouped in "Basic operations" (to be redefined in descendants) and "Agents and support".

4)  The game is in two parts:  Implementation and Interface
