Glom’s relationships overview bounty mostly complete, thanks to Rasmus Toftdahl Olesen, with code checked into Glom.
Hmm, that window title is obviously wrong. I’ll fix that.
We still need to implement right-clicking to edit a table’s relationships from this overview. I’d also like some horizontal lines in the relationship connection lines, where they meet the table rectangles, to more obviously show the indicated key fields. And the arrows need to point both ways when there are relationships in both directions.
Note that 1-to-1, 1-to-many, many-to-many markings are not relevant in Glom, at least for now, because it does not try to enforce these things, though they would be useful extra information for the user to add to the overview.
However, this feature won’t be enabled for the upcoming Glom 1.4, because it depends on GooCanvas which is, quite rightly, taking some more time before it is declared API/ABI stable. This bug report has a patch to enable the feature if you would like to play with the code.
GooCanvas is making great progress, and now is the time to take a look if you are interested in a future gtk/cairo-based canvas API.
3 thoughts on “Glom: Relationships Overview”
hey, that looks nice. I wonder if a little color-coding might help to visually emphasize the relationships between the fields. i.e. http://people.freedesktop.org/~jjongsma/glom_relationships_overview.png
That’s a nice idea. I’m not sure how nice it would be in practice, but it might be worth a try.
I’m using GooCanvas to display multiple visual representations of the same linear data, with each view at different zoom levels (and different aspect ratios.) Despite having had experience with these types of systems, GooCanvas has been a moderately difficult learning experience, but then again I’m still not really assimilated into the gobject way of doing things. That said, perhaps the problem is that I simply do not grasp how to do this, but what I would *really* like is a way to insert the same items into a canvas at multiple locations. A “GooProxy” item that merely provided its own transformation matrix and freed you of the one-to-one parent-child relationship (if that were feasible) would be ideal IMHO.
Anyone who knows what I want, please let me know!