Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 150536

Summary: GraphicalViewer does not invalidate the figure tree when FigureCanvas resizes
Product: [Tools] GEF Reporter: Pawel Garbacz <pawel.garbacz>
Component: GEF-Legacy GEF (MVC)Assignee: gef-inbox <gef-inbox>
Status: RESOLVED WORKSFORME QA Contact:
Severity: normal    
Priority: P3 CC: nyssen
Version: 3.2   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Pawel Garbacz CLA 2006-07-13 13:23:33 EDT
I recently had a very strange problem when using GraphicalViewer. There is a short background.

I implemented an application that showed a GraphicalViewer in one of the panes in a SashForm. In this graphical viewer there were some figures shown. The structure was pretty simple: one contents root figure having few - at most a dozen of figures. This was all. There has been a layout manager implemented for the contents root figure that calculated the sizes and locations of all the figures inside this GraphicalViewer but the size of the contents was calculated depending on the GraphicalViewer's size.

What is really strange when I moved the sash which caused resizing the FigureCangas causing it smaller scrollbars appeared automatically depending on the size of the contents shown in GraphicalViewer. This is pretty normal but in simple cases - not the one I had: after resizing the GraphicalViewer's control my contents root figure and all its children was invalidated and validated again - depending on the size of the GraphicalViewer again.

Now what is the problem in my opinnion: I realized that when the FigureCanvas is resized only the root figure of the LightweightSystem is invalidated. I think that the whole figure tree should be invalidated and then validated again to avoid the problem I got. I understand that this could lead to efficiency problems - sometimes layout recalculation of all the figures (when there are a lot of figures) could take more time, but there should be any way of extending the GraphicalViewer to do such thing.

Please let me know if you would like to get more details if the description above is not enough.

Regards,
Pawel
Comment 1 Alexander Nyßen CLA 2011-02-25 17:35:56 EST
This seems to have been open for quite a while (without any response from our side; my apologies for that). From the description I cannot infer that there is a GEF problem that causes this. FIt looks more like a client code problem, so I will close it as WORKSFORME. Pawel, please reopen and provide additional detail, if this is still an issue for you.
Comment 2 Alexander Nyßen CLA 2011-02-25 17:36:10 EST
This seems to have been open for quite a while (without any response from our side; my apologies for that). From the description I cannot infer that there is a GEF problem that causes this. It looks more like a client code problem, so I will close it as WORKSFORME. Pawel, please reopen and provide additional detail, if this is still an issue for you.