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.

Comments

 
Topic revision: r2 - 30 Mar 2016, MartinSkrodzki
 
  • Printable version of this topic (p) Printable version of this topic (p)