I thought I would have the pluggable rendering support for OpenJUMP finished
today, but I've hit another wall in my design. I thought I had overcome the
problem. After I started making the modifications for my solution I realized
I 'm still going to be hosed.
I really need some help to come up with the best alternate solution. Here is
the problem:
OpenJUMP creates Task objects. Task objects create LayerManager objects.
LayerManager objects create RenderingManager objects. In my pluggable
rendering system, RenderingManager objects create RendererFactory objects.
OpenJUMP can create a task at any time, and always does so after plug-in
intialization. I'm trying to find a way to allow developers to add tools for
the RendererFactory that produce custom renderers. I tried storing a
collection of these tools in the JUMPWorkbenchContext, but I realize now
that the RenderingFactory has no way to get to this collection. It needs
access to the tools contributed with plug-ins when it is created by the
RenderingManager.
To make matters worse, a Task takes a no-parameter constructor so that it
can be created by Java2XML. This means that I can't pass a reference to the
JUMPWorkbench object down the chain to the RendererFactory so that it can
access the tools stored in the collection.
I don't see a way around this. It seems there is no where I can put the
collection of tools that will allow [1] plug-in developers to add their tool
during plug-in initialization and [2] that will be accessible by the
RendererFactory objects for each task.
The only way to solve this may be to parse a text file indicating the name
of each class that implements the RendererFactoryTool interface. When a
RendererFacotry is created I can parse this list and create an implemenation
of each class it contains. I'll then add these objects to the
RendererFactory. I think the classes can still be loaded during the normal
plug-in intialization process.
Is there a better solution than this? I hate to add the requirement for an
external file, but I don't know how to get around this.
Thanks for the help.
The Sunburned Surveyor
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel