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!


13 Responses to “Recent improvements to SpringGraph graph visualizer”

  1. Says:

    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!

  2. seppe Says:

    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 ;)

  3. Subhro Says:

    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

  4. Subhro Says:

    Here is the code …

  5. Subhro Says:

    fc:SpringGraph id=”s” edgeRenderer = “{Edge}”

  6. Tanya Cashorali Says:

    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!

  7. Alexandre Says:

    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.

  8. Mark S Says:

    Hi Subhro. Try doing edgeRenderer=”{new Edge()}”.

  9. Fred Says:

    Hello,

    Nice Job !!!! Is it possible to have the weighted length for edges and not only rank.

  10. olivier Says:

    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

  11. Romain Says:

    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.

  12. Says:

    Alexandre,

    Did you manage to fix the bug where the auto fit functionality fails?

    Best,
    Sammi

  13. Mark S Says:

    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!

Leave a Reply


Learn More

Related Posts: flex, components, springgraph, visualization, Thesaurus Roamer in Flex , Recent improvements to SpringGraph graph visualizer , A Flex component for graph visualization