Name
global.ChartUtil
Description
Utilities to manipulate Datasets and get JFreeChart constants
Script
gs.include("PrototypeServer");
var ChartUtil = Class.create();
ChartUtil.prototype = {
initialize : function() {
this.util = null;
this.table = null;
this.column = null;
this.ds = null;
},
setTable : function(table) {
this.table = table;
},
setColumn : function(column) {
this.column = column;
},
setDS : function(ds) {
this.ds = ds;
},
setColors: function(colors) {
this._getUtil();
this.util.setPaletteColors(colors);
},
mergeDatasets : function(ds1, label1, ds2, label2) {
this._getUtil();
this.ds = this.util.addSeries(ds1, label1, ds2, label2);
return this.ds;
},
changeDatasetLabel : function(ds, label) {
this._getUtil();
this.ds = this.util.addSeries(ds, label, null, null);
return this.ds;
},
getForwardRenderingOrder : function() {
return this._getUtil().getForwardRenderingOrder();
},
setToolTipGenerator: function(renderer, tipText) {
this._getUtil().addToolTipGenerator(renderer, tipText);
},
addEmptyValues : function(ds, protoType) {
return this._getUtil().addEmptyValues(ds, protoType);
},
addSeries : function(target, source, newRowKey, newRowColor) {
if (source == null)
return target;
var columns = this._getColumnKeys(target, source);
var rowKey = source.getRowKey(0);
var dv = new GlideChartValue("0", "", "", null);
for (var i = 0; i < columns.size(); i++) {
var columnKey = columns.get(i);
try {
var cv = source.getValue(rowKey, columnKey);
cv.setColor(newRowColor);
target.addValue(cv, newRowKey, columnKey);
} catch (err) {
dv.setColor(newRowColor);
target.addValue(dv, newRowKey, columnKey);
}
}
return target;
},
_getColumnKeys : function(ds1, ds2) {
var ds1Keys = new Packages.java.util.ArrayList(ds1.getColumnKeys());
var ds2Keys = new Packages.java.util.ArrayList(ds2.getColumnKeys());
var answer = new Packages.java.util.ArrayList();
var i = 0;
for (; i < ds1Keys.size(); i++) {
var key = ds1Keys.get(i);
var index = ds2Keys.indexOf(key);
if (index < 0) {
answer.add(key);
continue;
}
if (index > i) {
for (var j = i; j < index; j++) {
answer.add(ds2Keys.get(j));
ds2Keys.remove(j);
}
}
answer.add(key);
}
for (; i < ds2Keys.size(); i++)
answer.add(ds2Keys.get(i));
return answer;
},
_getUtil: function() {
if (this.util)
return this.util;
this.util = new GlideChartUtil(this.ds);
if (this.table) {
var colors = new GlideChartFieldColors(this.table, this.column);
this.util.setColors(colors);
}
return this.util
}
};
Sys ID
f8c9fdcd0a0a0b9e0088f28fd8e874b0