Omonia Release Notes 1.3e ------------------------- Content 1. File List 2. Online Tool 3. Applet Runtime 4. Movie Generation 5. Code Changes 1. File List ============ This is a maintenance release of Omonia 1.3d. omonia_13e.jar The binaries and some sources of the online environment. samples_13e.zip The binaries and all sources of the samples. agentdemo_13e.html Demo page with an agent Omonia applet. leafdemo_13e.html Demo page with a leaf Omonia applet. moviedemo_13e.mov Demo movie generated from agent Omonia. For questions concerning Omonia please contact: Jan Burse 2. Online Tool ============== You have first to define your own leafs, agents and viewers which will be derived from classes such as omonia.model.leaf.Leaf and omonia.model.leaf.AbstractViewer. You find these classes in the omonia_13e.jar archive. After that you have to build and execute a model file. For this purpose you can use the Omonia online tool and load/save model files. The tool can be started from the command line as follows: For agents and leafs: java -cp omonia_13e.jar;\ \ omonia.tools.simulator.OnlineFrame For leafs: java -cp omonia_13b.jar;\ \ omonia.tools.tester.DataFrame Model files can have the following extensions: .mdl: Tree Agent/Leaf Model. Private fields are not accessed. Structures cannot be shared and cyclic. Format is ascii. .mds: Graph Agent/Leaf Model. Private fields can be accessed. Structures can be cyclic. Format is ascii. .dat: Tree Leaf Model. Private fields are not accessed. Structures cannot be shared and cyclic. Format is ascii. .das: Graph Leaf Model. Private fields can be accessed. Structures can be cyclic. Format is ascii. 3. Applet Runtime ================= You can also execute a model file in an applet. For this purpose you have to run Omonia as an applet. From a HTML page this can be done as follows: For agents and leafs: -- or -- For leafs: -- or -- See also agentdemo_13e.html and/or leafdemo_13e.html. 4. Movie Generation =================== You can generate movies from your simulations. But you have to download the JMF library from SUN first. To start the movie tool use the following command: java -cp omonia_13e.jar;jmf.jar;\ \ omonia.tools.movie.MovieFrame You can the use the menu Simulation | Make Movie to generate a movie. The movie is generated from the actual simulation by taking the following parameters: Size: The movie is generated in the size that the active viewer currently has. Max: The movie is generated for step 0 till step max where max is set in the simulation parameters. Seed: The movie is generated for the actual seed that is used. FrameRate: The frame rate is computed as 1000 / refresh where refresh is set in the simulation parameters. SkipSteps: The number of steps that are skipped between each frame is computed as refresh / step where refresh and step are set in the simulation parameters. See also moviedemo_13a.mov. 5. Code Changes =============== Package reorganisation: - We have again refactored a little bit the packages. The packages on the top level are now: - omonia.model: Contains the classes for leafs and agents. - omonia.tools: Contains the tools for leafs and agents. Also the basic gui framework is contained here. - omonia.util: Contains various utilities. Also some gui utilities are conatined here. Copy of vector/hashtable: - Vectors and hashtables are now also supported in the cloning of agents and leafs. The problem was that the cloning of vectors and hashtables rendered an empty vector respective hashtable. This had an impact to the starting of agent models, as the model is then copied, and to the previous value storage in an agent, as the value is also copied. The defect is now gone. More efficient handling of structs: Also most of the field accessors have be re-optimized. The passage through the object wrappers has been eliminated for primitive data types. Better support of StringBuffer: - The data type of string buffer can now also be used in a model. String buffers are written out in a model file, by prefixing the # to a string. String buffers are handy when larger strings are to be managed. In the default agent viewer, a string buffer field will be shown in a multi line text field. String buffers are considered mutable. There- fore they are copied during the cloning of agents. They behave similarly to vectors. Easier editing of objects: - The syntax for objects includes the "()" for a null value. For strings """" respective "'" quotes are used, for objects "(" and ")" pairs are used, for the special java objects the "#" respective the "&" prefix is used. All this syntactic sugar is needed inside a structure or an array, because an element can potentially have any type. The syntactic sugar is not needed in the default agent viewer, when the type of the field permits. We have implemented the following rules for fields of the following particular types: - Long, Double, Boolean, Class, Field: The empty string is allowed and denotes null. The "#" respective the "&" prefix is not needed. - char: The "'" quotes are not needed. - String: The """" quotes are not needed. A check box is now present to distinguish the empty string from the null value. """" quotes can be entered without escaping. - StringBuffer: The """" quotes are not needed. The "#" prefix is also not needed. A check box is now present to distinguish the empty string from the null value. """" quotes and the new line can be entered without escaping. - Agent, Leaf: The empty string is allowed and denotes null. - Structures, Arrays: The empty string is allowed and denotes null. The first "(" and ")" pair is not needed any more. Parser/Unparse character input/output: The parser and unparsers typically work on input and output streams, connected with an encoding. It is now possible to directly provied a reader respective writer to a parser respective unparser. Have fun, XLOG Technologies GmbH Jan Burse, CEO, 13. January 2007