Categories: News & Announcements

FusionCharts can now be your GWT charting plugin!

A new addition to the collection of community plugins for FusionCharts is the latest GWT plugin created by Fadi Al-Katout of Aurora R&D. This plugin was initially supposed to be a proof of concept for a client, and is now a full fledged plugin. FusionCharts for GWT lets you integrate FusionCharts in your applications in a seamless way, with full support for GXT and Smart GWT. GWT (Google Web Toolkit) makes it easy to write AJAX apps for developers who don’t speak browser quirks as a second language. Being in Java, GWT is gaining immense popularity among enterprise developers who are looking for a more powerful solution for their rich web apps. GWT lets you develop and debug your client-side AJAX code using the Java language and the Java tools of your choice. When you’re ready to deploy, GWT can cross-compile your application into a pure JavaScript form that works identical across most modern AJAX-capable browsers. In this plugin, a chart is a GWT widget which you can simply manipulate and use in your application. This plugin also provides an object-oriented data structure for building the chart’s data, meaning that you not need pass data to the chart as an XML or JSON string (although you still can). Instead, you can build the data module using high-level Java objects. A laundry list of a few important aspects of this plugin follows:
  • Standard procedure to create your charts
  • Full support for all chart properties
  • Dynamically name your divs
  • Dynamically resize your charts
  • Advanced chart data options
  • Pure client side solution
  • Fully compatible with GXT and Smart GWT
  • Cross browser compatibility
You would require Java 1.6 or higher, GWT 2.0 or higher and FusionCharts v3.2 to get started. While GWT does not have any charts baked right in, there are a couple of other plugins doing it using a combination of HTML, SVG and JavaScript. However, none of them add up to the wide range of charts, enterprise features and visual oomph that FusionCharts provides. Let us see how we can begin creating charts using this plugin.
  1. Download the evaluation version of FusionCharts v3.2
  2. Buy the GWT plugin from Aurora R&D
  3. Extract the archive and put gfcharts.jar in your build path.
  4. Inherit gfcharts in your gwt.xml file:
  5. In your war folder, add the .swf and .js files from the FusionCharts pack in resources > chart > fusion
  6. Include FusionCharts.js in your application’s .html file
  7. Import the plugin’s client package in your client file: import com.aurorarnd.gfcharts.client.*; This is how my Project Explorer sidebar looks like. I have named the project as hellocharts.
  8. Write code for your chart! Let us create a Pie Chart.
// Create the Data Object
FusionChartData chartData = new FusionChartData();
// Add Chart Properties
chartData.addChartProperty("caption", "Pie Chart");
chartData.addChartProperty("numberPrefix", "$");
// Add Data Sets to Chart
// Create Data Set
FusionChartDataSet dataSet = new FusionChartDataSet("Item A", "25");
dataSet.addDataSetProperty("color", "AFD8F8");
chartData.addDataSet(dataSet);
// Create Data Point
// (data set for this plugin; data point with respect to FusionCharts)
dataSet = new FusionChartDataSet("Item B", "17");
dataSet.addDataSetProperty("color", "F6BD0F");
chartData.addDataSet(dataSet);
// Create Data Point
dataSet = new FusionChartDataSet("Item C", "23");
dataSet.addDataSetProperty("color", "8BBA00");
dataSet.addDataSetProperty("isSliced", "1");
chartData.addDataSet(dataSet);
// Create Data Point
dataSet = new FusionChartDataSet("Item D", "65");
dataSet.addDataSetProperty("color", "A66EDD");
chartData.addDataSet(dataSet);
// Finally create the chart itself
FusionChartWidget chart = new FusionChartWidget(FusionCharts.Pie2D,
chartData);
chart.setTransparent(true);
// Now add it to a container
somePanel.add(chart);
And the resulting pie chart is shown below: If you find creating Java data objects too verbose for your tastes, you can always provide the data using the XMLUrl, JSONUrl, XMLString or JSONString as usual. A pie chart was easy enough to create, now let us make a multi-series dual Y-axis chart. One thing to note here, while creating a multi-series chart, you will have to create an object for FusionChartExtendedData, and not FusionChartData as we had done above. Also, being a multi-series chart, you have to set the data values for each series appropriately. We will also specify the primary and secondary Y-axes in this chart. Let us see how. Create a new project if you would like to in Eclipse, or just delete the code for the previous pie chart code and begin with this new code.
// Create the Data Object
FusionChartExtendedData chartData = new FusionChartExtendedData();
// Add Chart Properties
chartData.addChartProperty("caption", "Population Chart");
chartData.addChartProperty("showValues", "0");
chartData.addChartProperty("sNumberSuffix", "%");
chartData.addChartProperty("decimals", "3");
chartData.addChartProperty("setAdaptiveYMin", "1");
chartData.addChartProperty("setAdaptiveSYMin", "1");
chartData.addChartProperty("lineThickness", "5");
// Add Chart Categories
chartData.addCategory("2000");
chartData.addCategory("2001");
chartData.addCategory("2002");
chartData.addCategory("2003");
chartData.addCategory("2004");
chartData.addCategory("2005");
// Create Data Set
FusionChartExtendedDataSet dataSet = new FusionChartExtendedDataSet();
// Add Data Set Properties
dataSet.addDataSetProperty("seriesname", "Population");
// Add Data Set Values
dataSet.addValue("275562673");
dataSet.addValue("278558081");
dataSet.addValue("280562489");
dataSet.addValue("290342551");
dataSet.addValue("290342551");
dataSet.addValue("293027112");
// Add Data Set To The Chart Data Object
chartData.addDataSet(dataSet);
// Create Data Set
dataSet = new FusionChartExtendedDataSet();
// Add Data Set Properties
dataSet.addDataSetProperty("parentYAxis", "S");
dataSet.addDataSetProperty("seriesname", "Birth Rate");
// Add Data Set Values
dataSet.addValue("1.42");
dataSet.addValue("1.42");
dataSet.addValue("1.41");
dataSet.addValue("1.414");
dataSet.addValue("1.413");
dataSet.addValue("1.414");
// Add Data Set To The Chart Data Object
chartData.addDataSet(dataSet);
// Create Data Set
dataSet = new FusionChartExtendedDataSet();
// Add Data Set Properties
dataSet.addDataSetProperty("parentYAxis", "S");
dataSet.addDataSetProperty("seriesname", "Death Rate");
// Add Data Set Values
dataSet.addValue("0.87");
dataSet.addValue("0.87");
dataSet.addValue("0.87");
dataSet.addValue("0.844");
dataSet.addValue("0.834");
dataSet.addValue("0.825");
// Add Data Set To The Chart Data Object
chartData.addDataSet(dataSet);
// Finally Create The Chart Itself
FusionChartWidget chart = new FusionChartWidget(FusionCharts.MSCombiDY2D, chartData);
chart.setTransparent(true);
// Now add it to a container
somePanel.add(chart);
Finally, the resulting chart would look as the one below: Since we are using FusionCharts v3.2, all charts will be rendered using JavaScript if the Flash plugin isn’t installed. So your users can access your GWT app from their iPhones and iPads, and still have an amazing charting experience. Do give the new plugin a spin from the FusionCharts for GWT plugin page. Use it and tell us how things can be done better. And if you are using any other GWT plugin for charts, do let us know how it serves you better. As always, we appreciate all feedback.
rishi

Recent Posts

What is a Bar Chart Used For?

Imagine you’re comparing the sales performance of your top product lines across different regions, or…

1 month ago

AI-Powered Documentation for Data Visualization & Analytics

Have you ever spent hours buried in documentation, hunting for a specific piece of code?…

2 months ago

Unveiling the Hidden Gems: Top 5 AI Data Visualization Tools for 2024

Do you feel like your data is a cryptic puzzle, locked away from revealing its…

3 months ago

Unleash the Power of AI: Smart Charting for JavaScript Developers

In web development, mastering JavaScript charting libraries is crucial for keeping up with the fast-paced…

3 months ago

Focus on the Magic, Not the Mundane: Ask FusionDev AI is Here!

Ever spend an afternoon neck-deep in documentation, searching for that one elusive code snippet? Or…

3 months ago

FusionCharts 4.0: New Data Visualization Capabilities

In the dynamic world of data visualization, the need for precision and innovation has never…

4 months ago