/*
* Licensed Materials - Property of Perforce Software, Inc.
* © Copyright Perforce Software, Inc. 2014, 2021
* © Copyright IBM Corp. 2009, 2014
* © Copyright ILOG 1996, 2009
* All Rights Reserved.
*
* Note to U.S. Government Users Restricted Rights:
* The Software and Documentation were developed at private expense and
* are "Commercial Items" as that term is defined at 48 CFR 2.101,
* consisting of "Commercial Computer Software" and
* "Commercial Computer Software Documentation", as such terms are
* used in 48 CFR 12.212 or 48 CFR 227.7202-1 through 227.7202-4,
* as applicable.
*/
package demo.chart3d;
import ilog.views.chart.IlvChart;
import ilog.views.chart.IlvScale;
import ilog.views.chart.data.IlvDataSet;
import ilog.views.chart.data.IlvDataSetPoint;
import ilog.views.chart.renderer.IlvSingleChartRenderer;
import ilog.views.chart.servlet.IlvChartHitmap;
import ilog.views.chart.servlet.IlvChartHitmapAccumulator;
import ilog.views.chart.servlet.IlvDefaultChartHitmapDefinition;
import ilog.views.chart.servlet.IlvDefaultChartToolTip;
import ilog.views.chart.servlet.IlvIMapAttributes;
import ilog.views.util.hitmap.IlvHitmapConstants;
import ilog.views.util.hitmap.IlvHitmapInfoGenerator;
/**
* The customized hitmap info definition for 3D chart view.
*
* @since JViews 8.7
*/
public class HitmapDefinition3D extends IlvDefaultChartHitmapDefinition {
/**
* A tooltip class that allows access to the data set and to the index of the
* data point in the data set.
*/
static class DataPointToolTip extends IlvDefaultChartToolTip {
private final IlvDataSet dataSet;
private final int idx;
DataPointToolTip(IlvDataSet dataSet, int idx) {
super("Data value", dataSet, idx);
this.dataSet = dataSet;
this.idx = idx;
}
public IlvDataSet getDataSet() {
return this.dataSet;
}
public int getIdx() {
return this.idx;
}
}
Override
public void drawIntoHitmap(IlvChart chart, IlvScale scale, IlvChartHitmapAccumulator accumulator) {
// do not draw scale hitmap for chart 3D demo.
// super.drawIntoHitmap(chart, scale, accumulator);
}
Override
public IlvIMapAttributes getAttributes(IlvChart chart, IlvSingleChartRenderer renderer, IlvDataSetPoint dp) {
return new DataPointToolTip(dp.getDataSet(), dp.getIndex());
}
Override
public String getToolTipAsHTML(IlvIMapAttributes attributes) {
DataPointToolTip tooltip = (DataPointToolTip) attributes;
StringBuffer buffer = new StringBuffer();
buffer.append("{");
buffer.append("'title':");
buffer.append("'Value").append(tooltip.getIdx()).append("'");
buffer.append(",");
buffer.append("'value':");
buffer.append("'" + tooltip.getALT() + "'");
buffer.append("}");
return buffer.toString();
}
Override
public IlvHitmapInfoGenerator createHitmapInfoGenerator(String infoType, IlvChartHitmap hitmap) {
if (infoType.equals(IlvHitmapConstants.CURSOR_TYPE)) {
return new MyCursorInfoGenerator(hitmap);
} else {
return super.createHitmapInfoGenerator(infoType, hitmap);
}
}
}