use of com.vaadin.addon.charts.model.style.GradientColor in project charts by vaadin.
the class ChartTypes method chartTypesBubbleSnippet1.
public void chartTypesBubbleSnippet1() {
// Create a bubble chart
Chart chart = new Chart(ChartType.BUBBLE);
chart.setWidth("640px");
chart.setHeight("350px");
// Modify the default configuration a bit
Configuration conf = chart.getConfiguration();
conf.setTitle("Champagne Consumption by Country");
// Disable legend
conf.getLegend().setEnabled(false);
conf.getTooltip().setFormatter("this.point.name + ': ' + " + "Math.round(100*(this.point.z * this.point.z))/100.0 + " + "' M bottles'");
// World map as background
String url = VaadinServlet.getCurrent().getServletContext().getContextPath() + "/VAADIN/themes/mytheme/img/map.png";
conf.getChart().setPlotBackgroundImage(url);
// Show more bubbly bubbles with spherical color gradient
PlotOptionsBubble plotOptions = new PlotOptionsBubble();
Marker marker = new Marker();
GradientColor color = GradientColor.createRadial(0.4, 0.3, 0.7);
color.addColorStop(0.0, new SolidColor(255, 255, 255, 0.5));
color.addColorStop(1.0, new SolidColor(170, 70, 67, 0.5));
marker.setFillColor(color);
plotOptions.setMarker(marker);
conf.setPlotOptions(plotOptions);
// Source: CIVC - Les expeditions de vins de Champagne en 2011
DataSeries series = new DataSeries("Countries");
Object[][] data = { { "France", 181.6 }, { "United Kingdom", 34.53 }, { "United States", 19.37 } };
for (Object[] country : data) {
String name = (String) country[0];
double amount = (Double) country[1];
Coordinate pos = new Coordinate();
DataSeriesItem3d item = new DataSeriesItem3d();
item.setX(pos.longitude * Math.cos(pos.latitude / 2.0 * (Math.PI / 160)));
item.setY(pos.latitude * 1.2);
item.setZ(Math.sqrt(amount));
item.setName(name);
series.add(item);
}
conf.addSeries(series);
// Set the category labels on the axis correspondingly
XAxis xaxis = new XAxis();
xaxis.setExtremes(-180, 180);
conf.addxAxis(xaxis);
// Set the Y axis title
YAxis yaxis = new YAxis();
yaxis.setExtremes(-90, 90);
conf.addyAxis(yaxis);
}
use of com.vaadin.addon.charts.model.style.GradientColor in project charts by vaadin.
the class ChartOptionsJSONSerializationTest method toJSON_itemWithRadialGradientColor_RadialGradientSerialized.
@Test
public void toJSON_itemWithRadialGradientColor_RadialGradientSerialized() {
GradientColor color = GradientColor.createRadial(0.5, 0.3, 0.7);
color.addColorStop(0, new SolidColor(255, 128, 0));
color.addColorStop(1, new SolidColor(128, 64, 0));
DataSeriesItem item = new DataSeriesItem("Foobar", 45.0);
item.setColor(color);
DataSeries series = new DataSeries();
series.add(item);
String expected = "{\"data\":[{\"name\":\"Foobar\",\"y\":45.0,\"color\":{\"stops\":[[0.0,\"#FF8000\"],[1.0,\"#804000\"]],\"radialGradient\":{\"cx\":0.5,\"cy\":0.3,\"r\":0.7}}}]}";
assertEquals(expected, toJSON(series));
}
use of com.vaadin.addon.charts.model.style.GradientColor in project charts by vaadin.
the class ChartOptionsJSONSerializationTest method toJSON_ThemeSetWithColorStops_StopsSerialized.
@Test
public void toJSON_ThemeSetWithColorStops_StopsSerialized() {
Theme theme = new Theme();
GradientColor linear = GradientColor.createLinear(1, 2, 3, 4);
linear.addColorStop(5, SolidColor.BLUE);
theme.setColors(linear);
options.setTheme(theme);
String expected = String.format(ThemeWithLinearGradientAndStopsFormat, 1, 2, 3, 4, 5, SolidColor.BLUE.toString());
assertEquals(expected, toJSON(options));
}
use of com.vaadin.addon.charts.model.style.GradientColor in project charts by vaadin.
the class ThemeGradientColorBeanSerializer method serialize.
@Override
public void serialize(Object bean, JsonGenerator jgen, SerializerProvider provider) throws IOException {
// linearGradient: [0, 0, 250, 500],
// stops: [
// [0, 'rgb(48, 96, 48)'],
// [1, 'rgb(0, 0, 0)']
// ]
GradientColor value = (GradientColor) bean;
jgen.writeStartObject();
if (value.getLinearGradient() != null) {
ArrayNode array = JsonNodeFactory.instance.arrayNode();
GradientColor.LinearGradient linearGradient = value.getLinearGradient();
array.addPOJO(linearGradient.getX1());
array.addPOJO(linearGradient.getY1());
array.addPOJO(linearGradient.getX2());
array.addPOJO(linearGradient.getY2());
jgen.writeObjectField("linearGradient", array);
} else {
GradientColor.RadialGradient radialGradient = value.getRadialGradient();
ArrayNode array = JsonNodeFactory.instance.arrayNode();
array.addPOJO(radialGradient.getCx());
array.addPOJO(radialGradient.getCy());
array.addPOJO(radialGradient.getR());
jgen.writeObjectField("radialGradient", array);
}
serializeFields(bean, jgen, provider);
jgen.writeEndObject();
}
use of com.vaadin.addon.charts.model.style.GradientColor in project charts by vaadin.
the class ChartDesignReaderTest method readConfiguration_chartHasLinearGradientBackgroundColor_theLinearGradientIsDefinedInConfiguration.
@Test
public void readConfiguration_chartHasLinearGradientBackgroundColor_theLinearGradientIsDefinedInConfiguration() {
Elements elements = createElements("<chart><background-color><linear-gradient x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\"></linear-gradient>" + "<stops position=\"0\" color=\"white\"></stops>" + "<stops position=\"1\" color=\"black\"></stops></background-color></chart>");
Configuration configuration = new Configuration();
ChartDesignReader.readConfigurationFromElements(elements, configuration);
assertThat(configuration.getChart().getBackgroundColor(), instanceOf(GradientColor.class));
GradientColor backgroundColor = (GradientColor) configuration.getChart().getBackgroundColor();
assertNotNull(backgroundColor.getLinearGradient());
}
Aggregations