2.6: SwimLanes and SwimmingPools

There are lots of ways to implement swim lanes, depending on how interactive you want them to be. Several ways are described in the documentation.
In version 2.6 Demo1 includes an implementation of swm lanes where SwimLanes are standard GoObjects (actually inheriting from GoSubGraphBase) and collections of SwimLanes are managed as a SwimmingPoolLanes class (inheriting from GoListGroup) and composed to form a SwimmingPool class.

This implementation imposes the restriction that nodes that are part of SwimLanes are restricted to stay within their lane, unless they are dropped into a different SwimLane, either along the edge of the destination lane, or on top of some child of the destination SwimLane.
Users can resize the breadth of individual lanes or the length of the whole swimming pool. Resizing is limited by the existing contents of the lanes.
This implementation also provides several context menu commands to allow the user to add, remove, reorder or rename SwimLanes.

I’ve just done the similiar thing, but it’s a little more complex. The user can divide the whole document into a number of regions by adding or deleting vertical or horizontal separating lines. The length of vertical lines is always the same as the height of the document, but the length of horizontal lines is decided by its adjacent vertical lines.
The user can drag all these lines. The objects will be moved accordingly. And also horizontal lines length will be adjusted accordingly.

I’m trying to accomplish something similar. I know this post is quite old, but in case you’re still listening, I would much appreciate some guidance as to your approach.