Tuesday, June 26th, 2007
Chronoscope: GWT Charting and Vector Graphics platform
>Ray Cromwell and his team released Chronoscope a GWT based charting and vector graphics platform:
We aim to bring the Google Maps experience to exploration of time series data. Using GWT, we have created a chart
component which creates zoomable views of very large datasets (20,000+ points), stylable with CSS, mashupable with
Javascript API and Microformats, Bookmarkable chart start, Google Map style overlays/”pushpins”/”infowindows”,
both server-side and client-side chart rendering, and a future storyboard animation system to allow presentation
driven chart tours.
Features
- Written in Java using Google Web Toolkit, affords a variety of flexible deployment options:
- Javascript Browser Canvas (in Firefox, Safari, Opera)
- Server Side Rendering
- as a Java Applet or J2ME MIDLet
- Coming Soon: Flash Canvas and Silverlight XAML
- Support for very large datasets (~20,000 points)
- Multiresolution representation (custom or automatically “mip-mapped”)
- Flexible look-and-feel 100% controlled by ordinary Cascading Style Sheets
- Bookmarkable chart state works with browser back/forward buttons
- Attach markers or overlays to data points or axis positions
- Supports user-interface states of hover, focus traversal, highlighting ranges, and selections
- Multiple plot axes, auto-ranging axes, zoomable axis labels
- Automatic layout, no fixed sizes, ranges, tick divisions
- Animated scroll and zoom — fly through datasets
- Mousewheel support, mouse drag/select, and keyboard navigation
- Programmable context menu functions
- Double buffered rendering
- Damage region painting system only redraws what’s neccessary
- Zoomed-out overview window
- Current plots supported: XY Line, Bar
- Three authoring models:
- As a GWT Widget using Java
- As a Javascript widget
- Pure HTML+CSS using microformats
Related Content:












hmm.. dragging doesn’t work perfectly. drag the lower time track to the right – displayed time goes forward. don’t release mouse button and drag it to the left – displayed time will still go forward…
another hmmm: using IE 6, i am not seeing the charts, but with FF it renders fine. didn’t try IE 7. awesome concept tho, i can see number-centric companies eating this stuff up.
IE7 seems good. I found the navigation awkward (Home key, shift-tab etc). Rubber-band zooming and right-click with options (rather than just help) would be nice.
http://simile.mit.edu/timeline/ is still my fav time/event ajax interface
Opps… not IE7 friendly.
This feels a bit clunky, but it’s a good start. I think the simile timeline is really slick, but has a different focus (ie: mapping discreet events, not trends).
Safari won’t like it!
Safari 3 Beta likes it just fine actually… Safari 3 supports SVG better than any other browser on the market today.
Though it looks like they are using canvas for this :)
it’s still java.
Sorry, I didn’t see this sooner. (I’m the author) The FAQ on the left covers why IE currently isn’t supported and why scrolling is slow. Scrolling used to be accomplished by rendering a larger-than-visible canvas and then adjusting top/left while redrawing offscreen portions as needed, but that was changed for the public demo because of some new features that were added at the last minute (right now, it just re-renders everything on scroll) An upcoming version will revert to smooth-scrolling, as well as feature many rendering optimizations.
Ultimately, there will be the option of rendering to a Flash canvas, which will support IE, as well as the opportunity to run with the Flash JIT.
Yes, it’s “still Java” and that’s on purpose. It was originally written in hand-written JavaScript, but it proved untenable to supporting our requirements which are fallbacks to server-side rendering, as well as supporting diverse mobile environments (e.g. MIDLets). GWT+Java gets us all Java devices and environments (e.g. server-side image rendering) and all JS devices (e.g. iPhone), pure JS doesn’t.
There is also a FAQ entry that covers this (http://timepedia.org/ChronoscopeFAQ.html#whygwt) because of the inevitable language war zealots :)
-Ray