visualizr
visualizr is a tiny data visualization framework. It uses amcharts and an internal HTTP API to create charts based on time data.
Features
- Linecharts for time data (single and multiple graphs within one chart)
- Multiple charts per data source
- Support of multiple data sources (a data source can provide multiple charts)
- Full Ajax support
- Automatic refresh
- Easy integration
Integration
There are 6 steps, you've to do in order to integrate visualizr:
-
Implement a
DataSourceProvider
(implementsbiz.paluch.visualizr.spi.DataSourceProvider
)
TheDataSourceProvider
provides a list of DataSources. EveryChartDataSource
has an id and a name. -
Implement a
ChartProvider
(ìmplementsbiz.paluch.visualizr.spi.ChartProvider
)br/> TheChartProvider
provides two things: TheChartDescriptor
s andChartData
. -
Implement your
ViewResource
(extndsbiz.paluch.visualizr.AbstractViewResource
)
You need to implement just thegetDataSourceProvider
method. Since I'm not in charge of dependency injection, you're free on how you get theDataSourceProvider
-
Implement your
ChartResource
(extndsbiz.paluch.visualizr.AbstractChartResource
)
You need to implement just thegetChartProvider
method. Since I'm not in charge of dependency injection, you're free on how you get theChartProvider
-
Like 4, implement your
ChartDataResource
(extndsbiz.paluch.visualizr.AbstractChartDataResource
)
You need to implement just thegetChartProvider
method. Since I'm not in charge of dependency injection, you're free on how you get theChartProvider
-
Stick all together and run it! Some RESTEasy versions try to create instances of abstract resource classes, therefore you should disable autoscan and create an
javax.ws.rs.core.Application
that specifies the 3 resource classes.
Running a demo
Wanna try it? You need just maven for it:
mvn clean install
cd visualizr
mvn jetty:run
Open your browser and start [http://localhost:8080/visualizr/view/single.html]
Versions/Dependencies
This project is built against following dependencies/versions:
- Apache Velocity 1.7
- RESTEasy/RESTEasy Jackson 3.0.19
- Jackson 2.8.8
- Google Guava 21.0
- Java Servlet API 3.1 (will work with 2.5 as well)
HTML/Javascript Frameworks
visualizr uses JQuery 1.11.0, Bootstrap 3.1.1 and amcharts 3. These libraries are bundled within the module local-hosted-js-frameworks
which is optional. In case the bundled resources are not available, it will switch to the hosted version of JQuery (via googleapis), Bootstrap (netdna) and amcharts (amcharts.com). The compressed version of local-hosted-js-frameworks
eats some 1MB.