/* XYShapeHighlightingRenderer.java created 2007-12-18
*
*/
package org.signalml.app.view.signal.roc;
import org.jfree.chart.event.RendererChangeEvent;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
/** XYShapeHighlightingRenderer
*
*
* @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o.
*/
public class XYShapeHighlightingRenderer extends XYLineAndShapeRenderer {
private static final long serialVersionUID = 1L;
private int mainSeries;
private int highlightedSeries = -1;
private int highlightedItem = -1;
public XYShapeHighlightingRenderer(boolean lines, boolean shapes, int mainSeries) {
super(lines, shapes);
this.mainSeries = mainSeries;
}
public int getHighlightedSeries() {
return highlightedSeries;
}
public void setHighlightedSeries(int highlightedSeries) {
if (this.highlightedSeries != highlightedSeries) {
this.highlightedSeries = highlightedSeries;
notifyListeners(new RendererChangeEvent(this));
}
}
public int getHighlightedItem() {
return highlightedItem;
}
public void setHighlightedItem(int highlightedItem) {
if (this.highlightedItem != highlightedItem) {
this.highlightedItem = highlightedItem;
notifyListeners(new RendererChangeEvent(this));
}
}
public void setHighlight(int highlightedSeries, int highlightedItem) {
if (this.highlightedSeries != highlightedSeries || this.highlightedItem != highlightedItem) {
this.highlightedItem = highlightedItem;
this.highlightedSeries = highlightedSeries;
notifyListeners(new RendererChangeEvent(this));
}
}
public void clearHighlight() {
if (this.highlightedSeries != -1 || this.highlightedItem != -1) {
this.highlightedItem = -1;
this.highlightedSeries = -1;
notifyListeners(new RendererChangeEvent(this));
}
}
@Override
public boolean getItemShapeVisible(int series, int item) {
if (series == mainSeries) {
return true;
} else {
return false;
}
}
@Override
public boolean getItemShapeFilled(int series, int item) {
if (highlightedSeries >= 0 && highlightedItem >= 0 && series == highlightedSeries && item == highlightedItem) {
return true;
}
return false;
}
}