Recent improvements to SpringGraph graph visualizer
What’s new: An auto-fit mode that automatically adjusts item separation to keep all items on-screen, more control over link appearance, a history feature in the Roamer component. Check out the improved RoamerDemo, and download the latest build (20061202).
It’s been a month since I published the first version of the SpringGraph graph visualization component for Adobe Flex, and many of you have written comments, questions, compliments (thanks!) and some very good ideas. This new build of the SpringGraph and Roamer components incorporates several improvements inspired by your feedback.
The big new “feature” is the autoFit mode, which you can see in action in the updated RoamerDemo. Open a big file and crank up the “max degrees of separation” so there are lots of items on the screen. As you double-click to browse through the graph, notice how everything stays nicely fitted onto the screen. If you adjust the ‘item separation’ slider to force things offscreen, the component will gradually re-adjust things so that everything fits again. You can turn on and off autoFit mode to see the difference in behavior.
You can now tell Roamer (the component that allows you to browse very large graphs) to automatically make visible all the items you’ve visited, sort of a bread-crumb trail. In the RoamerDemo, these are the items highlighted in blue. Also, Roamer now gives you a way to show or hide individual items. This is something you could take advantage of in your own application.
I added some notes in the docs for SpringGraph discussing a few different ways of controlling the appearance of links. It’s still not very good, but it’s a start. Let me know your ideas.
Please feel free to post comments, questions, bug reports, etc. I will try to respond as soon as I can. Have fun!
December 30th, 2006 at 3:08 am
Beautiful work…the Flex version is much nicer than the previous Java renditions of this.
I wanted to add that SpringGraph.distinguishedItem should be getter/setter, so it can call a redraw when set. Otherwise, setting the property on a still SpringGraph (i.e. the nodes have settled down and the background isn’t redrawing) won’t show the change…until of course something changes and it redraws.
And I had a question about drawing the connecting lines… why did you choose to use beginFill() when you only wanted a line? Is there a performance benefit?
Thanks again for a great component!
February 26th, 2007 at 8:21 am
Hi,
I’m trying to use your library in Flex Builder. I followed all the steps in the README to run the samples, but I always get errors like these:
“Could not resolve to a component implementation”
or
“Could not resolve to a component implementation”
and so on.
I’m new to Flex, and I want to use it as an alternative to processing.org
What am I doing wrong?
Can you mail me with a solution? Thanks in advance
February 28th, 2007 at 4:29 am
Hi it’s a very good looking component! Congrats! I was trying to create a spring graph and add my my own link renderer. Here is the code …
Edge is a class that implements IEdgeRenderer. When I compile, mxml compiler shows the following error:
Implicit coercion of a value of type Class to an unrelated type com.adobe.flex.extras.controls.springgraph:IEdgeRenderer.
Can you please tell me where am I going wrong.
Thanks again
Subhro
February 28th, 2007 at 4:31 am
Here is the code …
February 28th, 2007 at 4:33 am
fc:SpringGraph id=”s” edgeRenderer = “{Edge}”
March 30th, 2007 at 8:43 am
I added some functionality to the Music Roamer..
clicking an artist shows top rated albums, then clicking an album pops up a track listing. There are also links to Last.FM with album information.
http://www.ccs.neu.edu/home/cash21/bin/MusicRoamer.html
Thanks and keep up the great work!
April 2nd, 2007 at 6:17 am
Hello, your component is great, and this auto fit function is very good, but it has a small bug.
Even on your example, if you drag part of the graph out of the screen (by dragging the background, not the graph), the nodes will slowly come back (as expected), but the edges won’t. The edges will be in the same position, until you do something that forces a redraw.
April 3rd, 2007 at 2:47 pm
Hi Subhro. Try doing edgeRenderer=”{new Edge()}”.
April 28th, 2007 at 3:35 pm
Hello,
Nice Job !!!! Is it possible to have the weighted length for edges and not only rank.
May 30th, 2007 at 1:21 am
hi there
Anyone know how I could edit the nodes from the interface.
I would like to enable my knowledge worker to rename, add, etc
June 1st, 2007 at 12:44 am
Mark,
first - obviously - kudos and great respect to you for such an amazing jaw-dropping component. I started using flex a few months ago and it never ceases to excite me.
Now, a question regarding the licence of the component : what does the ” Component Software License Agreement” means exactly ? Can I make a flex app that embeds your component and sell the final product ? Same question for a website ?
Thanks in advance.
Romain.
June 6th, 2007 at 3:49 am
Alexandre,
Did you manage to fix the bug where the auto fit functionality fails?
Best,
Sammi
June 8th, 2007 at 1:46 pm
Re: the License Agreement. The license allows you to do anything you like with the software. You can use and/or modify it for any purpose, whether application or website, business or non-profit. There is no obligation to disclose any source code modifications you create.
If you make useful modifications to the source code for SpringGraph/Roamer and wish to make your changes public, this is appreciated, but you are not obligated to do so.
Have fun!