Online help framework is available. Each module has a licence file in its directory, or the common default licence saying « no licence yet for this module, please contact the author ». A description file can be provided in the module directory (index.html). An help directory is added in the module directory containing all the help files (html, gif, jpg) for the dialog boxes help buttons.
Project Step names are now unique. If several step have the same caption, a number is appended. Ex : 10, 10(1), 10 (2).
Script mode was born. A script is a prepared description for a simulation in a Java class. It is run without user interaction by specifying the script name to the script pilot. Ex : capsis -pscript maddmodel.Script01.
Capsis is now launched by a Starter class. It is told which pilot to choose with a -pPilotName parameter in the capsis (.sh/.bat) start script. Ex : capsis -pgui -len → Interactive pilot
Extension compatibilty system has been reinforced. Each extension can be asked for its compatibility with a referent object (matchWith method).
Plot cells can now be nested. If several levels of cells are used, only one level has the trees registered in it.
New extensions : SVInspector, GraphicalExtensionManager, Viewer3D for MADD models, SVMaid (from Capsis2 viewer for MAID models), stand table.
Memory options : kernel can be told to memorize only some steps to save memory under some circumstances.
New extension category is introduced : ModelTools can be run on every step to launch a process related to this step. These extensions are different than Interveners because they create no new step.
… is now developped under Linux (no change for win32 users).
GStand under Step is an interface.
GTCStand is introduced : a stand with a redefinable TreeCollection inside. Usable for models with tree list (MADD, MAID…).
GPlot and GCell become interfaces.
RectangularPlot is composed of SquareCells. They replace the original implementations of GPlot ans GCell. They support stuff for neighbourhood (Mountain module).
PolygonalPlot and PolygonalCell are introduced. They are polygons with their vertices in 3D coordinates.
Groups are redefined. They are sets of parametered filters. They can apply on Filtrable object. GStand and GPlot are Filtrable objects. Groups can be used in DataExtractors and StandViewers.
Extensions now concerns Interveners (thinners…), StandViewers, DataExtractors, DataRenderers, Filters, GenericTools and IOFormats.
Filters select elements in filtrable objects. There is a mouse driven filter to select trees in a spatialized stand. Other filters are provided for GStand and GPlot.
IOFormats are some classes to make match some GStand implementation (memory) with some file formats. They can be used for input, output or input/output.
MethodProviders are introduced (package capsis.util.methodprovider). They allow to write computation methods for some dendrometric data for the modules. Some can be inherited, everyone can be rewritten, some new can be added.
DataExtractors and DataRenderers replace Outputs and OutputBrowsers. They are more configurable, more robust, use MethodProviders, are redimensionable, a table renderer can do cut & paste to clipboard (Excel, editors…)… and we can do more (it's a difficult zone .
Projects can be created or opened directly without being in a session. An untitled session is created on the fly.
Command pattern is used to define main interface commands (package capsis.gui.command).
Some threads have been used in the interactive pilot (gui) to let the graphics refresh during some computation (evolution, pre & post intervention processes). These computations are defined in modules and their duration can not be estimated.
Contracts between generic and specific pilots have been reinforced.
Extension interfaces have been reviewed (more robust).
SVSimple is a StandViewer with zoom, translation, filtering, and introspection capabilities on the trees it represents in a graphical display. It can be subclassed to create specific viewers for modules (see SVMoutain and SVVentoux).
This release is an intermediate one that was built for the 2000 capsis meeting.
Calls to modules methods are framed in try / catch blocks. This allows to intercept Exceptions raised in the modules and to inform the user in an Error dialog box if an error occurs.
Translator.swap () replaces engine.translate () to translate labels and texts to be drawn on the gui. The method is no more in Engine because it is not a kernel functionalot a kernel functionality. The class method allows to use it from anywhere without a reference to the engine. It must only be used in gui packages.
Floating point number are all converted to double in capsis. The only exception is for the data in main data structured (i.e. to be cloned often) which are let in float type. These floats are managed only by accessor methods (get… and set…) which take and retrieve double values (cast inside). The only floats to remain are in Session, Scenario, Step, GStand, GTree, GMaddTree, GMaidTree, GPlot, GCell and in the classes which extends these ones. The result is : more accurate when computing, less volume when storing.
This release is synchronized with the mountain module.
Context menu on OutputBox to deal with all the output blocks at the same time.
Communication between ScenarioManager and Viewer/Output Mediators has been reviewed. It's more simple and robust. Behavior of clicks and ctrl-clicks is slightly modified. All is managed from the ScenarioManager.
OutputBox refresh method reviewed.
Introduction of a Log.println (…) class Method.
Introduction of a status bar. To write in it, use StatusBar.print (…) classe StatusBar.print (…) class method, only from a class in a gui package.
Package capsis.kernel.OType has been renamed in capsis.extension.output.type.
New package organisation. capsis.kernel, capsis.gui, capsis.util, capsis.extension, capsis.extension.output, capsis.extension.standviewer, capsis.extension.outputbrowser, capsis.extension.thinner, <moduleName>.gui and <moduleName>.model.
An extension mechanism is introduced. It concerns GenericTools, Viewers, Outputs, OutputBrowsers and Thinners. It may further concern other facilities. An ExtensionManager can retrieve a given extension which is defined in an external file. Capsis4 will have standard extensions and modelers will be able to create their own to see their data.
The spatial viewer is now included. This dynamic viewer is developped by Guillaume Cornu (Cirad Forêt). It uses layers to superimpose several tree representations (ex: crown, trunk) using transparency. Though this viewer is generic, data are retrieved in the real module tree definition using Java reflection capabilities.
Introduction of several design patterns : Iterator and Visitor allow to read scVisitor allow to read scenarios and steps from anywhere. Singleton allows to retrieve Engine and MainInterface references from anywhere, allowing to pass less parameters to methods.
New module : mountain. It's a copy of cemagrefepicea which becomes a technical module. This module (Benoit Courbaud, Cemagref) deals with epicea in mountain, allowing regeneration, death and stand enlightment.
Introduction of graphical outputs, managed by an OutputMediator. The outputs are grouped in an OutputBox (cf capsis2). An OutputBlock groups one or several outputs (data extractors) and is associated to an OutputBrowser, which shows the data series as curves, histograms or tables (for the moment).
A mechanism is introduced to manage OutputBrowsers compatibility (interfaces hierarchy). This allows to swap browsers when possible (ex: curve / table).
The output specifications are to be generalized to tables, drawings etc…
The browsers and some data extractors are configurable : they can produce a configuration panel (which is shown in a generic dialog box for instance) and configure themselves with it when returned, once modified by user. This allows to interact with the extractors to interact with the extractors and the data representation. The configurable mechanism deals with the object hierarchies to define configuration stuff only once.
Creation of the stand viewers, managed by a ViewerMediator. Some simple different viewers are added to build the viewer management strategy, which is implemented in the Mediator. The Mediator listens to the ScenarioManager to synchronize the viewers with user interactions. Mediators are intended to be swapped with others to allow synchronization strategy configuration.
Actions linked to menus can be controlled by program (ControlableAction.enable () / disable ()).
User properties can be modified by Edit > Options.
Fast Visualization presents a cartography of the plot with labeled trees. Cells appear if necessary. Scale can be changed with a slider. Labels and drawings can be shown / hidden.
Introduction of the GenericPlot and GenericCells.
Scenario Manager allows to delete one leaf Step.
Scenario Manager allows to build several scenarios, each connected to a user model and a stand (loaded from an inventory file). Each scenario Step is either visible (shown) i>Step is either visible (shown) or intermediate (hidden). Growth action can be asked from a Step with a popup menu. A dialog box allows to type in parameters and the module's growth method is called. Result must be the creation of new Steps in the scenario, with only the last visible.
Slight modification of the core architecture. GenericModel and GenericInterface are now replaced by (resp.) Engine and MainInterface. GenericModel and GenericInterface are now abstract superclasses of (resp.) xxxModel and xxxInterface.
Capsis graphical user interface deals with english anf french ResourceBundles. All labels on the GUI are internationalized. The modules load the bundle in the same language than the generic software. All modules must provide english and french bundles. Internal messages are only in english.
Modules can be dynamically loaded if present in capsis.root/bin. They are recognized with their jar file name, which is known part of their package name (capsis.package.*, bundled in package.jar). A specific class called IdCard informs on the model and gives the name of the main class name to instanciate (xxxModel). This class instanciates all the module in its constructor. Each module is associated to a sylviculturalociated to a sylvicultural scenario.
Building of the first release begins according to the specifications of the initial study report. The first release will provide interactive (GUI) mode for MADD models, with Scenario Manager, 2D Visualization, multi models management and internationalization (see report). Graphical results (for analysis and comparisons) will be developped as a second phase. MAID compatible release and off-line Interpretor will be developped as a third phase.
old_release_notes.txt · Last modified: 2013/05/23 10:25 (external edit)