16 July 2011

Protovis-GWT 0.4.1 released

Protovis-GWT is an open source GWT data visualization module. The goal of Protovis-GWT is to make the Protovis JavaScript visualization API available in GWT by wrapping the original JavaScript code using JSNI.

Protovis-GWT supports a wide range of visualizations (Area chart, bar chart, pie chart, line chart, stacked charts, treemap, sunburst, icicle diagram, dendrogram, force-directed graph, arc diagram, matrix diagram, box-and-whisker plot, streamgraph, bullet chart, candlestick chart). It implements the complete API of the basic Protovis Mark classes (Mark, Area, Bar, Dot, Label, Line, Wedge) and enables you to create custom visualizations in GWT, similar to the ones you can create with the Protovis library in JavaScript.

In Protovis-GWT 0.4.1, support for the Protovis pan and zoom behaviors was added. The ellipse mark type, which is not part of the original Protovis, was added. Protovis-GWT 0.4.1 is now based on GWT 2.3 (instead of 2.1) and supports Internet Explorer 9.

More information on Protovis-GWT:

21 March 2011

Protovis-GWT 0.4 Released

Update: A newer version of Protovis-GWT has been released. Please see the wiki page for the latest information on Protovis-GWT.

Protovis-GWT is an open source GWT data visualization module. The goal of Protovis-GWT is to make the Protovis JavaScript visualization API available in GWT by wrapping the original JavaScript code using JSNI.

Protovis-GWT supports a wide range of visualizations (Area chart, bar chart, pie chart, line chart, stacked charts, treemap, sunburst, icicle diagram, dendrogram, force-directed graph, arc diagram, matrix diagram, box-and-whisker plot, streamgraph, bullet chart, candlestick chart). It implements the complete API of the basic Protovis Mark classes (Mark, Area, Bar, Dot, Label, Line, Wedge) and enables you to create custom visualizations in GWT, similar to the ones you can create with the Protovis library in JavaScript.

In Protovis-GWT 0.4, support for network visualizations (Arc diagram, Force-directed graphs, Matrix diagrams) was added. Several classes were moved into the PV class to align the syntax closer to the original Protovis syntax. A stable sort implementation was added to JsArrayGeneric, and various other API improvements were made.

More information on Protovis-GWT:

18 February 2011

Protovis-GWT 0.3 Released

Update: A newer version of Protovis-GWT has been released. Please see the wiki page for the latest information on Protovis-GWT.

Protovis-GWT is an open source GWT data visualization module. The goal of Protovis-GWT is to make the Protovis JavaScript visualization API available in GWT by wrapping the original JavaScript code using JSNI.

Protovis-GWT 0.3 implements the complete API of the basic Protovis Mark classes (Mark, Area, Bar, Dot, Label, Line, Wedge).

More information on Protovis-GWT:

11 February 2011

Choosel Visualization Component Architecture

The Choosel framework has been restructured into a more modular architecture that facilitates extensibility and reuse. The new visualization component architecture allows developers to use Choosel visualization components in regular GWT applications, to develop their own Choosel visualization components, and to extend the Choosel visualization workbench. This blog post outlines the architecture, describes its usage scenarios and explains how to update existing Choosel applications.

Visualization Component Architecture Overview (enlarge diagram)

The Choosel visualization component architecture separates the core functionality (which is required to use Choosel visualizations in GWT) from the workbench functionality. The visualizations are extracted into separate visualization modules. The architecture consists of three main components:

  • Core module: The choosel.core module contains the core functionality that is required by Choosel visualizations. This includes the resource (i.e. data) framework, the management of visualization states (e.g. data, highlighting, selection), the visualization component API, and also more general services such as logging (which wraps gwt-log). The choosel.core module needs to be inherited by any GWT module that uses Choosel, whether it is a visualization component, a GWT application or a Choosel workbench.
  • Visualization modules: Visualization modules provide one or more visualization components that implement the Choosel visualization component API. They can wrap around other libraries, e.g. GWT modules, JavaScript visualization toolkits, or Flash widgets. Choosel provides several visualization modules (map, timeline, text, chart, and graph) that can be used right away.
  • Workbench module: The choosel.workbench module provides the persistence and sharing facilities as well as the visualization workspace.

This separation of concerns makes reusing and extending Choosel easier. It enables three ways to leverage Choosel in your own projects:

  • Developing your own visualization components: You can implement visualization components that adher to the Choosel visualization component API. These visualization components can then be used by yourself and others to take advantage of Choosel features such as view synchronization, selections, highlighting, and details on demand.
  • Using Choosel visualization components in your GWT application: You can use one or several Choosel visualization components as widgets in your GWT application to visualize your data.
  • Creating a Choosel-based workbench: You can extend the whole Choosel framework to develop your own visualization workbench, for example for a specific application domain.
Please note that while the modularization itself is complete, the visualization component API is still under development. We plan to release a first stable version in the next few months.

To set up a new Choosel project, please take a look at the development setup. If you are already working on a Choosel-based application, you can update it to use the modular Choosel architecture:

  • Check out the different Choosel modules (see development setup)
  • Change the dependencies of your Eclipse project (Right click on project --> Properties --> Java Build Path --> Projects) to reference the new Choosel modules, but not the old one (choosel)
  • Organize the imports of your .java files (Right click on source folder --> Source --> Organize Imports; then for each class that has problems in the Java editor)
  • Fix the static imports (if there are unresolved constants or methods: compare with previous version, insert old static imports and change choosel.client to choosel.core.client)
  • Add the visualization configuration file (see ChooselExampleWorkbenchViewContentDisplaysConfigurationProvider for an example)
  • Update the client module (see ChooselExampleClientModule for an example)
  • Change the .gwt.xml file of your project (see choosel.example.workbench for an example module file)
  • Update the servlet references in the web.xml (change choosel.server to choosel.workbench.server)
  • Remove old launch config, copy launch config from choosel.example.workbench and adjust it to your project.
You should be able to run your modular Choosel application now. If there are still problems, feel free to complain on the Choosel mailing list :-)

31 January 2011

Protovis-GWT 0.2 Released

Update: A newer version of Protovis-GWT has been released. Please see the wiki page for the latest information on Protovis-GWT.

Protovis-GWT is an open source GWT data visualization module. The goal of Protovis-GWT is to make the Protovis JavaScript visualization API available in GWT by wrapping the original JavaScript code using JSNI.

Protovis-GWT 0.2 has an improved event handler interface and now supports the hierarchical visualization examples (dendrograms, sunbursts, icicles, indented trees, circle packing, node-link trees, and treemaps) and the bubble chart example from the Protovis example library.

More information on Protovis-GWT:

03 January 2011

Protovis-GWT 0.1 Released

Update: A newer version of Protovis-GWT has been released. Please see the wiki page for the latest information on Protovis-GWT.

Protovis-GWT is an open source GWT data visualization module. It wraps the Protovis JavaScript visualization API for usage in GWT. Protovis-GWT 0.1 (Download Module) is an early development version based on Protovis 3.2 and GWT 2.1. Several examples from the Protovis example gallery have been re-implemented using Protovis/GWT. Protovis-GWT is developed as part of the Choosel Visual Data Exploration Framework.

Version 0.1 implements the Protovis functionality for most conventional and custom examples from the Protovis website. The support for tree, graph and map visualizations as well as for interaction is still limited. Protovis-GWT currently supports Chrome, Firefox and Safari. IE is not yet supported.

Getting started with Protovis-GWT in your GWT project is easy:

  1. Download the Protovis-GWT module jar file
  2. Add the jar file to the build path of your GWT project
  3. Inherit org.thechiselgroup.choosel.protovis.ProtovisGWT by adding <inherits name='org.thechiselgroup.choosel.protovis.ProtovisGWT'/> to your GWT module XML definition (.gwt.xml).
  4. Use the Protovis Widget in your code, e.g.
  5. public void onModuleLoad() {
    RootPanel.get().add(new ProtovisWidget() {
    protected void onAttach() {
    super.onAttach();
    initPVPanel();
    // create visualization here...
    getPVPanel().render();
    }
    });
    }

More information on Protovis-GWT: