Bug 314819

Summary: Make some methods of GraphContainer public so that it can be extended.
Product: [Tools] GEF Reporter: Paul Richardson <p.g.richardson>
Component: GEF-Legacy ZestAssignee: gef-inbox <gef-inbox>
Status: NEW --- QA Contact:
Severity: enhancement    
Priority: P3 CC: davymeers
Version: 3.6   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
patch from git repository for zest.core none

Description Paul Richardson CLA 2010-05-28 04:42:06 EDT
Created attachment 170310 [details]
patch from git repository for zest.core

We have made use of GraphContainer for displaying composite nodes in our graphs. However, certain functions of the current implementation, most specifically moving nodes when expanding a composite, are not suitable for our use hence we have extended the class to our own ends.

This has involved the following changes:

* Make pack public so it can be overrided and avoid moving nodes up/down

* Make moveNodesUp and moveNodesDown public so they can be overridden

* isExpanded getter so other components know when node is open/closed

* Since getScale() is not supported in AspectRatioFreeformLayer, changes
  getScale() to getScaleWidth() and getScaleHeight(). Likewise, for setScale.

* computerContainerSize() assumes childAreaHeight remains the same. If the
  container height is altered then it cannot be reduced. Change ensures that
  it has a minimum height but allows for the height to be reduced.

* refreshLocation() is called after the size of the container has been set,
  which potentially puts the size of the GraphContainer out of sync with the
  size of the figure. This causes problems with resizing. Thus, fix to set the
  size of the GraphContainer to match the figure.

Couple of other fixes have been added to the patch too. These have been implemented in our internal project. More consideration may be required if other contributors find them problematic.

Patch has been attached.

Thanks

phantomjinx