package org.richfaces.sandbox.chart;
import javax.faces.component.UIComponent;
import javax.faces.event.FacesEvent;
import javax.faces.event.FacesListener;
/**
* The class represents plotclick event fired
* by the chart component, when user clicks a point
* in a chart.
* @author Lukas Macko
*/
public class PlotClickEvent extends FacesEvent{
/**
* Index into chart series. The first
* series has index 0.
*/
private int seriesIndex;
/**
* Index into list of points inside series.
* The first point has index 0.
*/
private int pointIndex;
/**
* The value independent variable of the clicked point.
* x-coordinate
*/
private String x;
/**
* Dependent variable.
* y-coordinate
*/
private Number y;
public PlotClickEvent(UIComponent component,int seriesIndex,int pointIndex, String x, Number y){
super(component);
this.seriesIndex=seriesIndex;
this.pointIndex=pointIndex;
this.x=x;
this.y=y;
}
public int getSeriesIndex() {
return seriesIndex;
}
public int getPointIndex() {
return pointIndex;
}
public String getX() {
return x;
}
public Number getY() {
return y;
}
@Override
public String toString() {
return "Point with index " +getPointIndex()+
"within series "+getSeriesIndex()+" was clicked.\n"+
"Point coordinates ["+getX()+","+getY()+"]";
}
@Override
public boolean isAppropriateListener(FacesListener listener) {
return listener instanceof PlotClickListener;
}
@Override
public void processListener(FacesListener listener) {
((PlotClickListener) listener).processDataClick(this);
}
}