Chart Events"

From Documentation
Line 13: Line 13:
  
 
==== ShiftComposer.java ====
 
==== ShiftComposer.java ====
<source lang="java" high="14,15,16,17, 18, 19">
+
<source lang="java" high="13, 14,15,16,17, 18, 19">
 
public class ShiftComposer extends SelectorComposer<Window> {
 
public class ShiftComposer extends SelectorComposer<Window> {
 
     @Wire
 
     @Wire
Line 20: Line 20:
 
     public void doAfterCompose(Window comp) throws Exception {
 
     public void doAfterCompose(Window comp) throws Exception {
 
     super.doAfterCompose(comp);
 
     super.doAfterCompose(comp);
 
 
         // Initial series data
 
         // Initial series data
 
     initPoints();
 
     initPoints();
Line 67: Line 66:
  
 
[[File:PlotClickEventAfter.png]]
 
[[File:PlotClickEventAfter.png]]
 
  
 
=== Table of ChartsEvent and Description ===
 
=== Table of ChartsEvent and Description ===

Revision as of 13:06, 5 March 2014

WarningTriangle-32x32.png This page is under construction, so we cannot guarantee the accuracy of the content!

ZK Chart will fire events when user is interacting with chart, so we can declare a method to listen the event and handle the event data. ChartsEvent represents an event cause by user's interaction. If we want to shift the point's position when user clicking, we can listen the onPlotClick event and retrieve the point being clicked. Then update the point's position like below:

shift.zul

<window apply="ShiftComposer">
    <charts id="chart" type="bubble" />
</window>

ShiftComposer.java

public class ShiftComposer extends SelectorComposer<Window> {
    @Wire
    Charts chart;

    public void doAfterCompose(Window comp) throws Exception {
    	super.doAfterCompose(comp);
        // Initial series data
    	initPoints();
        // Hide some unnecessary options
        hideOptions();
    }
    
    @Listen("onPlotClick = #chart")
    public void shiftPoint(ChartsEvent event) {
        // Retrieve the point object.
        Point point = event.getPoint();
        // Shift the point by updating its x value.
        point.update(point.getX().intValue() + random() / 10, point.getY());
    }
    
    private void initPoints() {
        for (int i = 0; i < 10; i ++) {
    	    chart.getSeries(i).addPoint(random(), random(), i * 5);
        }
    }

    private void hideOptions() {
        // Remove y axis title
        chart.getYAxis().setTitle("");
        // Hide the legend.
        chart.getLegend().setEnabled(false);
        // Hide the tooltip.
        chart.getTooltip().setEnabled(false);
        // Hide the exporting button.
        chart.getExporting().setEnabled(false);
        // Initialize series data
    }
    
    private double random() {
        // Returns random integer ranged from 0 to 100.
    	return Math.round((Math.random() * 100));
    }
}

Congratulations! Now the user could interact with chart. Here is what it shows:

File:PlotClickEventBefore.png

When use click the maroon, it will shift to the right a bit.

File:PlotClickEventAfter.png

Table of ChartsEvent and Description

EventName Description
onPlotClick Fires when the series is clicked.
onPlotCheckboxClick Fires when the checkbox next to the series' name in the legend is clicked.
onPlotLegendItemClick Fires when the legend item belonging to the series is clicked. (Not applicable to pies).
onPlotShow Fires when the series is shown after chart generation time, by clicking the legend item.
onPlotHide Fires when the series is hidden after chart generation time, by clicking the legend item.
onPlotMouseOver Fires when the mouse enters the graph.
onPlotMouseOut Fires when the mouse leaves the graph.
onPlotDrillUp Fires when drilling up from a drilldown series.
onPlotDrillDown Fires when a drilldown point is clicked, before the new series is added.

< Get Complete Source Code of This Book >


Last Update : 2014/03/05

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.