I have created a new CVS branch "fm_090407_refactoring" with refactored
view part of FreeMind.
The most important changes follow:
* Class hierarchy of descendands of NodeView removed
* NodeView is made responsible for painting of its cloud, children edges
and folding marks
* Class hierarchy for MainView introduced
* New classes for NodeView Layout, MapView Layout and Viewport Layout
* NodeViewFactory for putting NodeView components and LayoutManager together
* EdgeView is no more part of NodeView, it is managed by NodeViewFactory
* setLeft is no more initiated by view
* multiple map views for map are allowed by the new design, but only one
NodeView for Node on each MapView
Because development of two freemind versions simultaneously is not
efficient, I ask you to have a look at the new version ASAP in order to
make its merging with the integration branch possible in the nearest
future. I think that the new implementation is more mature, stable,
efficient and maintainable, because different layout tasks are better
The new design makes an easy implementation of the following change
1. Many roots on the same map
2. Horizontal map layout (now we have a vertical layout)
3. Combined vertical and horizontal map layout (because different
NodeView may have different Layout Managers)
4. After introducing of Internal Frames, multiple MapView for the same
Map can be introduced.
I have done some testing, but still no profiling.
Feedback is welcome.
Best regards, Dimitry
I have committed the refactored version to the integration branch
because of the following reasons:
1. It seems to work pretty well,
2. If there still are some bugs, they are easier to fix than for the
old non refactored version.
I have also solved the problem with the "jerkiness" the Krzysztof has
mentioned. And as Krzysztof wants to work on view issues, it is better
to give him the right starting position.
Best regards, Dimitry
From: Eric Lavarde <Eric@Lavar.de> - 2007-06-02 17:47:33
Dimitry Polivaev wrote:
> I have created a new CVS branch "fm_090407_refactoring" with refactored
> view part of FreeMind.
Browsing recently in CVS, I noticed that the nomenclature for tags was
fm_YYMMDD_xyz, which made sense because it sorts nicely. You seem to
have gone to DDMMYY, I would suggest to switch back and stick to the
prior naming convention.
Gewalt ist die letzte Zuflucht der Inkompetenz.
Violence is the Last Resort of the Incompetent.
Gwalt jest ostatnem schronieniem niekompetencji.
La violence est le dernier refuge de l'incompetence.
~ Isaac Asimov
you are right, it was my mistake. I was not sure if one may rename a CVS
branch tag, so I have not tried to correct it.
Eric Lavarde schrieb:
> Dimitry Polivaev wrote:
>> I have created a new CVS branch "fm_090407_refactoring" with refactored
>> view part of FreeMind.
> Browsing recently in CVS, I noticed that the nomenclature for tags was
> fm_YYMMDD_xyz, which made sense because it sorts nicely. You seem to
> have gone to DDMMYY, I would suggest to switch back and stick to the
> prior naming convention.
> Thanks, Eric