Friday, September 7, 2007

GanttProject 2.0.5: Release Candidate

The Release Candidate build of GanttProject 2.0.5 is available for downloading
The complete release notes are here. More detailed descriptions of bugfixes and new features are in this blog under the label GP 2.0.5

Friday, August 31, 2007

Bugfixes, exporting functions and interface translations

GanttProject 2.0.5 news:

We are very close to the release of GanttProject 2.0.5. Hopefully the release candidate build will be ready in a few days.

Friday, August 17, 2007

OpenProj

OpenProj is a project scheduling/management tool similar to GanttProject. It is also open-source and is written in Java. There is a gantt chart, there is a network chart, there are a few resource-related charts. It is developed by Projity, which is probably better known by their online service Project-on-Demand.

My personal feeling after playing with OpenProj a little is that the application is quite raw and unstable so far. There are obvious annoying bugs and quite a lot of usability problems. Goog luck for them, though! If they manage to overcome the problems, the community will be given one more nice project management application.

Sunday, August 12, 2007

A few more improvements in exporting and printing

GanttProject 2.0.5 news:

CSV export now understands custom fields and keeps correct order of tasks. Memory consumption of Print Preview has been decreased approximately twice. It is still possible that big projects will not fit into available memory if printed with big zoom level, but in this case an error message will be shown.

Tuesday, July 31, 2007

Exporting custom columns to PDF

A few more evenings of coding resulted in ability to export custom columns to PDF. There is a new theme Samara which is aware of custom columns. User interface is very simple: columns that you see in the task table are columns that get exported to PDF, plus resources and task notes. Samara theme tries to keep proportions of column widths, places notes under task names, using smaller font and indent and uses task colors in a narrow column on the left, rather than in the whole task row.

A screenshot below shows our HouseBuildingSample project exported to PDF with Samara theme.


Samara is a big and old Russian city on Volga river. I have never been there (except for one sporadic transit through its railway station 13 years ago) but GanttProject feels comfortable there (as well as in many other cities worldwide :)

Update: These changes will be available in GanttProject 2.0.5

Monday, July 23, 2007

Importing custom fields from .gan files

Having spent a few evenings on refactoring of kilobytes of code, I finally added custom fields to the importing of .gan files. So, if you import one project into another, custom fields of your tasks will not be lost.

Two lessons which I personally have been familiar with for quite a long time, but other developers may not know:
  1. Singleton pattern is very dangerous and one should avoid using it unless he is absolutely sure that two instances of that class is a non-sense. And even in this case avoid accessing singleton and prefer passing that singleton object as a parameters to the methods where it is required.

    In our case the instance of CustomColumnsStorage class was accessed as singleton from just everywhere. So when I decided to create another instance which would load custom fields from a file during import process, I had to patch all those places.


  2. Classes which represent user interface must not be used as a model for code that reads data from files (it is just a rephrased Model-View-Controller).

    In our case code that handles tags storing custom fields in .gan files directly used instances of GanttTreeTable (a class that represents the table view). So if I want to keep in memory two .gan files (one is a project we work with and another is a project we import), I either have to create two UI tables or to refactor the smelling code and give that tag handler the interface it needs. I chose the second way.
These changes will appear in GanttProject 2.0.5

Saturday, July 14, 2007

Bugfix: dependency type updates the gantt chart

One more bugfix. Now when you change a type of some dependency (say, from Finish-Start to Start-Start), the Gantt chart updates immediatly