JVWorkshops
((short description what this page is about))
Workshops
The general structure of a workshop consists of the following classes, as an example I use
jvx.geom.PjEvolve
:
-
PjEvolve
: like a project this class handles all interaction with the environment. This class may derive from jvx.geom.PjWorkshop
which allows to get rid of an own dialog or even info panel.
-
PjEvolve_IP
: info panel of the whole stuff
-
PjEvolve_Dialog
: if necessary, a dialog. But if possible try to configure PjWorkshop_Dialog
.
-
PwEvolve
: optional call containing all the algorithmic stuff, if there is some heavy algorithm involved. If the functionality is rather simple, then PwEvolve
may be skipped and the algorthmic stuff put in PjEvolve
.
Obtaining the display(s) in a Workshop: We no longer need calls like
m_minesweeper.m_geom.getDisplays()
to obtain the displays in a workshop. The list of displays is passed to each menu and from within the menu it may be made available to a workshop. This must be done by hand when the menu item is pressed in the menu method
applyMethod(String aMethod)
.
The flag
m_bUpdateSender
is mostly obsolete now. The rare cases are handled by
PjWorkshop
. Basically, each update of the workshop leads to an update of the registered geometry. In this case the superclass
PjWorkshop
internally sets that flag to avoid circular update cycles. That means, calls like
myWorkshop.update(myWorkshop)
or, if sent from an info panel,
myWorkshop.update(null)
will safely update the workshop and the registered
geometry, and also circumvent the cycle problem.