|
From: Marco W. <in...@ca...> - 2005-03-15 12:08:09
|
Ok guys,
I've had a change of mind. The previously mentioned Proxy component is
not really a proxy but more of a Bridge. Thinking this through more and
more doesn't reduce the work at hand. I've more or less re-factored the
svg into a egSvgBridge, egSvgNodes and implemented a very(!) rough
TExtGraphBridge. At this moment it is nothing more than extracting the
svg stuff and pushing it into a seperate unit. The two-way communication
between the xml dom tree and the ExtGraph is not complete. Since I don't
have the xml components I won't get it to work as easily as I would like to.
So, to divide the workload I would like Parvel to have a look and see if
he can repair the damage I've done to it. My future thoughts on the
Bridge technology goes beyond the svg implementation. It would even
allow multiple ExtGraphs with a single Bridge. To really make this work,
more internals on node and link manipulation need to be extracted from
the ExtGraph class. More logic needs to go into the ExtGraphBridge
class. Not really difficult, yet it requires a lot of work and re-factoring.
I'm thinking to far beyond to pull this off in a single increment. The
idea is to go towards the following architecture in several code increments:
ExtGraph -> CustomBridge
|
/-----------\
ExtBridge SvgBridge
GraphObject
|
^
/---------\
GraphNode GraphLink
| \
^ \
/---------\ \--------\
RectangleNode SvgNode \ \
BezierLink CurvedLink
ExtGraph is to be responsible for the drawing and gui of the graph
itself. It will still control all nodes and links, yet allows the
ExtBridge to intercept all communication on the collection of nodes and
links it displays. Instead of having eventhandlers on the ExtGraph
itself these will be moved towards (or extended on) the ExtBridge. The
other way around the Bridge will contain methods to insert nodes and
links into the ExtGraph. Different bridge classes, like SvgBridge, will
service other methods which allow a different language (svg) to be used
to manipulate the nodes and links on the ExtGraph.
I do hope this makes sence to you all. I can barely keep up my thought
train, and certainly miss the time to implement all of this. Yet my gut
feeling says this is the way to proceed as far as the architecture is
involved. If you have the energy and insight please come back to me on
this or help me convert at least a SvgBridge to make this first
increment work. Personally I will attempt to continue the work on a
ExtBridge layer and a custom Bridge for CaseTalk and see what is needed
for the communication between components to make it all work transparent...
Hope you are all well and coding. ;)
Regards,
Marco.
|