package demo.area;
import java.util.Map;
import org.zkoss.chart.Charts;
import org.zkoss.chart.Legend;
import org.zkoss.chart.PlotBand;
import org.zkoss.chart.Series;
import org.zkoss.chart.Subtitle;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.CategoryModel;
import org.zkoss.zul.SimpleCategoryModel;
import org.zkoss.zul.Window;
public class AreaSplineComposer extends SelectorComposer<Window> {
@Wire
Charts chart;
public void doAfterCompose(Window comp) throws Exception {
super.doAfterCompose(comp);
Subtitle subtitle = chart.getSubtitle();
subtitle.setAlign("center");
subtitle.setText("Source: <a href=\"https://www.ssb.no/jord-skog-jakt-og-fiskeri/jakt\" target=\"_blank\">SSB</a>");
int seriesIndex = 0;
for (Map.Entry<String, Integer[]> data : AreaSplineData.getData().entrySet()) {
Series series = chart.getSeries(seriesIndex++);
series.setName(data.getKey());
series.setData(data.getValue());
}
Legend legend = chart.getLegend();
legend.setLayout("vertical");
legend.setAlign("left");
legend.setVerticalAlign("top");
legend.setX(120);
legend.setY(70);
legend.setFloating(true);
legend.setBorderWidth(1);
legend.setBackgroundColor("#FFFFFF");
// visualize the weekend
chart.getXAxis().addPlotBand(
new PlotBand(2019, 2020, "rgba(68, 170, 213, .2)"));
chart.getYAxis().setTitle("Quantity");
chart.getTooltip().setShared(true);
chart.getTooltip().setHeaderFormat("<b>Hunting season starting autumn {point.x}</b><br>");
chart.getCredits().setEnabled(false);
chart.getPlotOptions().getSeries().setPointStart(2000);
chart.getPlotOptions().getAreaSpline().setFillOpacity(0.5);
}
}