ChartDirector 6.0 (ColdFusion Edition)
V-Bar Meter Orientation
Source Code Listing
<cfscript> // ChartDirector for ColdFusion API Access Point cd = CreateObject("java", "ChartDirector.CFChart"); // A utility to allow us to create arrays with data in one line of code function Array() { var result = ArrayNew(1); var i = 0; for (i = 1; i LTE ArrayLen(arguments); i = i + 1) result[i] = arguments[i]; return result; } // Function to create the demo charts function createChart(chartIndex) { // Declare local variables var value = 0; var barColor = 0; var m = 0; var alignment = 0; var meterXPos = 0; var labelGap = 0; var colorScalePos = 0; var smoothColorScale = 0; // The value to display on the meter value = 74.25; // Bar colors of the meters barColor = Array("0x2299ff", "0x00ee00", "0xaa66ee", "0xff7711"); // Create a LinearMeter object of size 70 x 240 pixels with very light grey (0xeeeeee) // backgruond and a grey (0xaaaaaa) 3-pixel thick rounded frame m = cd.LinearMeter(70, 240, "0xeeeeee", "0xaaaaaa"); m.setRoundedFrame(cd.Transparent); m.setThickFrame(3); // This example demonstrates putting the text labels at the left or right side of the meter // scale, and putting the color scale on the same side as the labels or on opposite side. alignment = Array(cd.Left, cd.Left, cd.Right, cd.Right); meterXPos = Array(28, 38, 12, 21); labelGap = Array(2, 12, 10, 2); colorScalePos = Array(53, 28, 36, 10); // Configure the position of the meter scale and which side to put the text labels m.setMeter(meterXPos[chartIndex + 1], 18, 20, 205, alignment[chartIndex + 1]); // Set meter scale from 0 - 100, with a tick every 10 units m.setScale(0, 100, 10); // To put the color scale on the same side as the text labels, we need to increase the gap // between the labels and the meter scale to make room for the color scale m.setLabelPos(False, labelGap[chartIndex + 1]); // Add a smooth color scale to the meter smoothColorScale = Array(0, "0x0000ff", 25, "0x0088ff", 50, "0x00ff00", 75, "0xdddd00", 100, "0xff0000"); m.addColorScale(smoothColorScale, colorScalePos[chartIndex + 1], 6); // Add a bar from 0 to value with glass effect and 4 pixel rounded corners m.addBar(0, value, barColor[chartIndex + 1], cd.glassEffect(cd.NormalGlare, cd.Left), 4); // Output the chart return m.makeSession(GetPageContext(), "chart" & chartIndex); } chart0URL = createChart(0); chart1URL = createChart(1); chart2URL = createChart(2); chart3URL = createChart(3); </cfscript> <html> <body style="margin:5px 0px 0px 5px"> <div style="font-size:18pt; font-family:verdana; font-weight:bold"> V-Bar Meter Orientation </div> <hr style="border:solid 1px #000080" /> <cfoutput> <div style="font-size:9pt; font-family:verdana; margin-bottom:1.5em"> <a href='viewsource.cfm?file=#CGI.SCRIPT_NAME#'>View Source Code</a> </div> <img src="getchart.cfm?#chart0URL#" /> <img src="getchart.cfm?#chart1URL#" /> <img src="getchart.cfm?#chart2URL#" /> <img src="getchart.cfm?#chart3URL#" /> </cfoutput> </body> </html> |