Histogram          
  
   
 


Displays a Histogram from a csv file

Parameters

  • pageName
  • csvFileName
  • width
  • height
  • separator
  • dataColumn
  • xAxisTitle
  • yAxisTitle

Usage:

[{Histogram pageName="/OpenForum/Extensions/Histogram" csvFileName="test.tsv" width="200" height="200" separator="TAB" dataColumn="1" yAxisTitle="Height" xAxisTitle="Rain Fall"}] Error parsing Extension tag [{Histogram pageName="/OpenForum/Extensions/Histogram" csvFileName="test.tsv" width="200" height="200" separator="TAB" dataColumn="1" yAxisTitle="Height" xAxisTitle="Rain Fall"}]. Exception:org.one.stone.soup.wiki.WikiException: /OpenForum/Extensions/Histogram/renderer.sjs Javascipt Error [at 22: 0]:Cannot call method "loadCSVAsXml" of null


renderer.sjswidth = extension.getAttributeValueByName("width"); height = new Number(extension.getAttributeValueByName("height")); pageName = extension.getAttributeValueByName("pageName"); csvFileName = extension.getAttributeValueByName("csvFileName"); separator = extension.getAttributeValueByName("separator"); if(separator=="TAB") { separator="\t"; } dataColumn = new Number(extension.getAttributeValueByName("dataColumn")); yAxisTitle = extension.getAttributeValueByName("yAxisTitle"); xAxisTitle = extension.getAttributeValueByName("xAxisTitle"); data = "<table border='0'><tr>"; data += "<td><b>"+yAxisTitle+"</b></td>"; data += "<td>"; data += "<table border='1'><tr><td>"; data += "<table height='"+height+"' width='"+width+"' cellpadding='1' cellspacing='0'>"; result = js.getApi("/OpenForum/JarManager/Spreadsheet").loadCSVAsXml(pageName,csvFileName,separator); rows = result.getElementsByName("row"); maxValue = 0; columnWidth = width/rows.size(); for(loop=0;loop<rows.size();loop++) { value = new Number(rows.elementAt(loop).getElementByIndex( dataColumn ).getValue()); if(value>maxValue) { maxValue = value; } } data+="<td>"+Math.round(maxValue)+"</td>" for(loop=0;loop<rows.size();loop++) { value = new Number(rows.elementAt(loop).getElementByIndex( dataColumn ).getValue()); columnHeight = (value*height)/maxValue; data += "<td rowspan='10' valign='bottom'><a href='' onclick='return false;' title='"+value+" "+yAxisTitle+"'><img src='/OpenForum/Images/area.png' width='"+columnWidth+"' height='"+columnHeight+"'/></td>"; } data+="</tr>"; for(loop=1;loop<10;loop++) { data+="<tr><td>"+Math.round((maxValue/10)*(10-loop))+"<td></tr>" } data += "</table>"; data += "</td></tr></table>"; data += "</td></tr>"; data += "<tr><td colspan='2' align='center'><b>"+xAxisTitle+"</b></td></tr>"; data += "</table>"; return data;
by Anon on 21/04/2008 at 10:08 PM