Hi Michiel,

The problem is multi-faceted and I think we are working on different aspects
of it.  Let me know if you disagree.  My perception is that you've been
working on untangling package cycles by moving classes between packages
based on feedback from JDepend.  My work is focused on class cycles and
doesn't address the issue of package cycles at all.

> What are basically the changes you will perform? 

The changes that affect the most modules are the introduction of IProject
and IArgoDiagram interfaces to use in place of Project and ArgoDiagram
implementation classes.  Of these two, IProject affects far more classes.
I've also introduced a ProjectFactory which returns instances of IProject
instead of Project.

I've also introduced a number of smaller interfaces such as Clarifiable for
things which depended on FigNodeModelElement, but really only cared about
the paintClarifiers() method.  In general I think we need to be making more
use of interfaces and make those interfaces as small and modular as
possible.

The most heavily affected class is probably ProjectBrowser which has been
broken into a number of smaller classes.  I've also introduced a new event
for the status updates that the status bar listens to so that other classes
can just post status events rather than calling ProjectBrowser directly.

There are lots of other little changes like separating out the filename
handling that the UI uses to fix up file names from the rest of the
persistance manager and removing the dependency that PGMLStackParser has on
FigPool just so it can special case something (actually this last one I
haven't figured out a solution for yet -- I need to ask Bob what he's trying
to do there).

I'm trying to reduce the use of ProjectManager.getCurrentProject() as must
as possible since most things know what project they belong to (and all
should know).

Hope that gives a flavor for the kinds of changes that are included.

Tom

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to