You have nicely summarized my plan. With a few points (the request queue for example) that I will add to my plan. Essentially I am going to have the "root" object much more in control of the behaviour of the renderers, such as clearing the images, dictating when rendering starts and stops, etc... There will be no CompositeRenderer (the root object will take its responsibilites along with the RenderExecutorComposite). There will be less eventing. Rather renderers can make requests to the "root" object. (What's a good name? we've already used RenderManager).

I will make some sequence and class diagrams and publish them on the WIKI. Lets use that as a place for collaboration.

For the sequence diagrams I am using a simple program:
http://udig.refractions.net/confluence/download/attachments/9218/ sequence-10.0.jar

for creating and editing them. I will post the files as well as images on to the page when I have some ready. you are welcom to do the same.

Jesse

        

Summary:
1) Clear up class names, listeners names, API to follow design pattern
semantic and business process: how is responsible for what.
2) "Root" concept in rendering process management, queue, updating job, comminications in both directions: Root renderer can cause child renderers
to be executed, each child renderer being requested has to invoke root
renderer to be started for updating.
3) Whenever bounds in renderer are changed - clear buffer for not to confuse users. The user needs to see what he requests, not intermediate steps. Zoom in - clear everything and no old data to be rendered from buffers if it was not yet cleared because of current implementation in jobs that are delayed.

I am sure the rendering is one of the corner stones. My goal is to share
experience and proposals, then implement something if the idea is
acknowledged. Whenever the best solution is found - implement it. Correct me
if I don't get to understand something..

_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel

Reply via email to