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

Offical Documentation

Official Docs: