Monday, March 30, 2009

Project diagram

Matrex version 1.3.5 will have the possibility to show the project in form of a diagram.
Here is the diagram for the example project projection, that is included in the Matrex setup:


It shows all items of the projects (but timers) and their connections.
Each item is labeled with its type (matrix, function...), each connection is displayed as an arrow.

Compared to the item trees and to the information views, the project diagram has the advantage that It gives a global overview of the project. In one single window it is possible to see all items of the project.

The meaning of the arrows is the following:
  • An arrow from a matrix to a function means that the matrix is input of the function
  • An arrow from a function to a matrix means that the matrix is output (result) of the function
  • An arrow from a matrix to a presentation or chart means that the matrix is used in the presentation or chart.
Since a project can contain many items and therefore many connections among them items, the project diagram can become complex.
To make it easier to understand it, it is possible to:
  • Click on an item: the item becomes green and all the connected items and their arrows become blue (in) and red (out).
  • Click on one of the items type on the tool bar: all the items of that type become green.
In the tool bar there is also a button to print the diagram.

Monday, March 09, 2009

Matrex easier to package

Until now once you installed Matrex in a directory, Matrex used the same directory to:
  • write its log file
  • write the changes to its configuration files
  • write additional templates
  • write scripts used as base of templates
This is natural for a java application that is installed with a java installer and does not pretend to integrate with the platform in which it is installed.

But what if we want to create installers for specific platforms (Windows setup, MacOSX application bundles, Linux .deb and .rpm files)?
In this case:
  • it is the operating system that defines in which directory or directories Matrex is installed.
  • Matrex cannot write the files it produces (templates, configurations, log...) in the directories in which it is installed, but must use a writable directory, which can be under Documents and Settings in Windows or under the home directory in Linux.
Version 1.3.5 will make this possible with two changes:
  • the new configuration file main.properties, which contains the paths of all other configuration files (which can contain environment variables).
  • the new concept of configuration files that contain the locations of other files.
The configuration files that contain the locations of other files are:
  • templates.cld, which contains the paths of the top directories of directory trees containing functions templates.
  • plugins.cld, which contains the directories and jar files containing additional java classes used as plugins and their dependencies.
  • scrips.cld, which contains the top directories of directory trees containing scripts used by templates.
With the addition of main.properties and of the .cld files it is possible to have the configuration files that change after the installation and additional templates, java classes and scripts in writable directories.
In this way anyone can change these files, add them or delete them without touching the original installation.

It will be then easy to install Matrex:
  • In Windows in a directory under the Program Files directory, with the additional files and the writable configuration files in a directory under Documents and Settings.
  • In Linux in the standard directories (/usr/bin, usr/share...), with the additional files and the writable configuration files in a directory (.matrex ?) under the home directory.
  • In MacOSX in a directory under the Applications directory, with the additional files and the writable configuration files in a directory under Users
I tested this new feature installing version 1.3.5 under a read-only directory and configuring it so that it keeps all the files that need to be changed under a writable directory.
It works fine.
As soon as possible I will release a beta of this version.