reportbuilder 1.2.5 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/History.txt +6 -0
- data/Manifest.txt +377 -0
- data/data/flot/API.txt +1024 -0
- data/data/flot/FAQ.txt +71 -0
- data/data/flot/LICENSE.txt +22 -0
- data/data/flot/Makefile +15 -0
- data/data/flot/NEWS.txt +340 -0
- data/data/flot/PLUGINS.txt +105 -0
- data/data/flot/README.txt +81 -0
- data/data/flot/examples/ajax.html +143 -0
- data/data/flot/examples/annotating.html +75 -0
- data/data/flot/examples/arrow-down.gif +0 -0
- data/data/flot/examples/arrow-left.gif +0 -0
- data/data/flot/examples/arrow-right.gif +0 -0
- data/data/flot/examples/arrow-up.gif +0 -0
- data/data/flot/examples/basic.html +38 -0
- data/data/flot/examples/data-eu-gdp-growth-1.json +4 -0
- data/data/flot/examples/data-eu-gdp-growth-2.json +4 -0
- data/data/flot/examples/data-eu-gdp-growth-3.json +4 -0
- data/data/flot/examples/data-eu-gdp-growth-4.json +4 -0
- data/data/flot/examples/data-eu-gdp-growth-5.json +4 -0
- data/data/flot/examples/data-eu-gdp-growth.json +4 -0
- data/data/flot/examples/data-japan-gdp-growth.json +4 -0
- data/data/flot/examples/data-usa-gdp-growth.json +4 -0
- data/data/flot/examples/dual-axis.html +39 -0
- data/data/flot/examples/graph-types.html +75 -0
- data/data/flot/examples/hs-2004-27-a-large_web.jpg +0 -0
- data/data/flot/examples/image.html +45 -0
- data/data/flot/examples/index.html +43 -0
- data/data/flot/examples/interacting.html +93 -0
- data/data/flot/examples/layout.css +6 -0
- data/data/flot/examples/navigate.html +118 -0
- data/data/flot/examples/selection.html +114 -0
- data/data/flot/examples/setting-options.html +65 -0
- data/data/flot/examples/stacking.html +77 -0
- data/data/flot/examples/thresholding.html +54 -0
- data/data/flot/examples/time.html +71 -0
- data/data/flot/examples/tracking.html +95 -0
- data/data/flot/examples/turning-series.html +98 -0
- data/data/flot/examples/visitors.html +90 -0
- data/data/flot/examples/zooming.html +98 -0
- data/data/flot/excanvas.js +1427 -0
- data/data/flot/excanvas.min.js +1 -0
- data/data/flot/jquery.colorhelpers.js +174 -0
- data/data/flot/jquery.colorhelpers.min.js +1 -0
- data/data/flot/jquery.flot.crosshair.js +156 -0
- data/data/flot/jquery.flot.crosshair.min.js +1 -0
- data/data/flot/jquery.flot.image.js +237 -0
- data/data/flot/jquery.flot.image.min.js +1 -0
- data/data/flot/jquery.flot.js +2119 -0
- data/data/flot/jquery.flot.min.js +1 -0
- data/data/flot/jquery.flot.navigate.js +272 -0
- data/data/flot/jquery.flot.navigate.min.js +1 -0
- data/data/flot/jquery.flot.selection.js +299 -0
- data/data/flot/jquery.flot.selection.min.js +1 -0
- data/data/flot/jquery.flot.stack.js +152 -0
- data/data/flot/jquery.flot.stack.min.js +1 -0
- data/data/flot/jquery.flot.threshold.js +103 -0
- data/data/flot/jquery.flot.threshold.min.js +1 -0
- data/data/flot/jquery.js +4376 -0
- data/data/flot/jquery.min.js +19 -0
- data/data/jqplot/MIT-LICENSE.txt +21 -0
- data/data/jqplot/README.txt +73 -0
- data/data/jqplot/changes.txt +261 -0
- data/data/jqplot/copyright.txt +33 -0
- data/data/jqplot/docs/files/MIT-LICENSE-txt.html +39 -0
- data/data/jqplot/docs/files/changes-txt.html +39 -0
- data/data/jqplot/docs/files/gpl-2-0-txt.html +39 -0
- data/data/jqplot/docs/files/images/background.jpg +0 -0
- data/data/jqplot/docs/files/images/basicline.png +0 -0
- data/data/jqplot/docs/files/images/basiclogaxis.png +0 -0
- data/data/jqplot/docs/files/images/basiclogoptions.png +0 -0
- data/data/jqplot/docs/files/images/basicoptions.png +0 -0
- data/data/jqplot/docs/files/images/dualaxis.png +0 -0
- data/data/jqplot/docs/files/images/logo.jpg +0 -0
- data/data/jqplot/docs/files/images/navdocs.png +0 -0
- data/data/jqplot/docs/files/images/navdocsover.png +0 -0
- data/data/jqplot/docs/files/images/navdownload.png +0 -0
- data/data/jqplot/docs/files/images/navdownloadover.png +0 -0
- data/data/jqplot/docs/files/images/navexamples.png +0 -0
- data/data/jqplot/docs/files/images/navexamplesover.png +0 -0
- data/data/jqplot/docs/files/images/navhome.png +0 -0
- data/data/jqplot/docs/files/images/navhomeover.png +0 -0
- data/data/jqplot/docs/files/images/new.png +0 -0
- data/data/jqplot/docs/files/images/sample3.png +0 -0
- data/data/jqplot/docs/files/images/samplesm.png +0 -0
- data/data/jqplot/docs/files/jqPlotCssStyling-txt.html +39 -0
- data/data/jqplot/docs/files/jqPlotOptions-txt.html +292 -0
- data/data/jqplot/docs/files/jqplot-axisLabelRenderer-js.html +47 -0
- data/data/jqplot/docs/files/jqplot-axisTickRenderer-js.html +69 -0
- data/data/jqplot/docs/files/jqplot-canvasGridRenderer-js.html +39 -0
- data/data/jqplot/docs/files/jqplot-core-js.html +353 -0
- data/data/jqplot/docs/files/jqplot-divTitleRenderer-js.html +39 -0
- data/data/jqplot/docs/files/jqplot-lineRenderer-js.html +53 -0
- data/data/jqplot/docs/files/jqplot-linearAxisRenderer-js.html +39 -0
- data/data/jqplot/docs/files/jqplot-markerRenderer-js.html +65 -0
- data/data/jqplot/docs/files/jqplot-shadowRenderer-js.html +61 -0
- data/data/jqplot/docs/files/jqplot-shapeRenderer-js.html +63 -0
- data/data/jqplot/docs/files/jqplot-themeEngine-js.html +190 -0
- data/data/jqplot/docs/files/optionsTutorial-txt.html +119 -0
- data/data/jqplot/docs/files/plugins/jqplot-BezierCurveRenderer-js.html +45 -0
- data/data/jqplot/docs/files/plugins/jqplot-barRenderer-js.html +67 -0
- data/data/jqplot/docs/files/plugins/jqplot-blockRenderer-js.html +53 -0
- data/data/jqplot/docs/files/plugins/jqplot-bubbleRenderer-js.html +71 -0
- data/data/jqplot/docs/files/plugins/jqplot-canvasAxisLabelRenderer-js.html +63 -0
- data/data/jqplot/docs/files/plugins/jqplot-canvasAxisTickRenderer-js.html +79 -0
- data/data/jqplot/docs/files/plugins/jqplot-categoryAxisRenderer-js.html +46 -0
- data/data/jqplot/docs/files/plugins/jqplot-cursor-js.html +91 -0
- data/data/jqplot/docs/files/plugins/jqplot-dateAxisRenderer-js.html +93 -0
- data/data/jqplot/docs/files/plugins/jqplot-donutRenderer-js.html +98 -0
- data/data/jqplot/docs/files/plugins/jqplot-dragable-js.html +45 -0
- data/data/jqplot/docs/files/plugins/jqplot-enhancedLegendRenderer-js.html +49 -0
- data/data/jqplot/docs/files/plugins/jqplot-funnelRenderer-js.html +87 -0
- data/data/jqplot/docs/files/plugins/jqplot-highlighter-js.html +80 -0
- data/data/jqplot/docs/files/plugins/jqplot-logAxisRenderer-js.html +45 -0
- data/data/jqplot/docs/files/plugins/jqplot-mekkoAxisRenderer-js.html +49 -0
- data/data/jqplot/docs/files/plugins/jqplot-mekkoRenderer-js.html +62 -0
- data/data/jqplot/docs/files/plugins/jqplot-meterGaugeRenderer-js.html +103 -0
- data/data/jqplot/docs/files/plugins/jqplot-ohlcRenderer-js.html +65 -0
- data/data/jqplot/docs/files/plugins/jqplot-pieRenderer-js.html +93 -0
- data/data/jqplot/docs/files/plugins/jqplot-pointLabels-js.html +72 -0
- data/data/jqplot/docs/files/plugins/jqplot-trendline-js.html +67 -0
- data/data/jqplot/docs/files/usage-txt.html +58 -0
- data/data/jqplot/docs/index.html +1 -0
- data/data/jqplot/docs/index/Classes.html +58 -0
- data/data/jqplot/docs/index/Files.html +34 -0
- data/data/jqplot/docs/index/Functions.html +66 -0
- data/data/jqplot/docs/index/General.html +46 -0
- data/data/jqplot/docs/index/General2.html +46 -0
- data/data/jqplot/docs/index/General3.html +46 -0
- data/data/jqplot/docs/index/General4.html +50 -0
- data/data/jqplot/docs/index/General5.html +34 -0
- data/data/jqplot/docs/index/General6.html +58 -0
- data/data/jqplot/docs/index/Hooks.html +46 -0
- data/data/jqplot/docs/index/Properties.html +50 -0
- data/data/jqplot/docs/index/Properties2.html +50 -0
- data/data/jqplot/docs/index/Properties3.html +50 -0
- data/data/jqplot/docs/index/Properties4.html +34 -0
- data/data/jqplot/docs/index/Properties5.html +58 -0
- data/data/jqplot/docs/javascript/main.js +836 -0
- data/data/jqplot/docs/javascript/searchdata.js +182 -0
- data/data/jqplot/docs/search/ClassesA.html +20 -0
- data/data/jqplot/docs/search/ClassesG.html +20 -0
- data/data/jqplot/docs/search/ClassesJ.html +20 -0
- data/data/jqplot/docs/search/ClassesL.html +20 -0
- data/data/jqplot/docs/search/ClassesS.html +20 -0
- data/data/jqplot/docs/search/ClassesSymbols.html +20 -0
- data/data/jqplot/docs/search/ClassesT.html +20 -0
- data/data/jqplot/docs/search/FilesJ.html +20 -0
- data/data/jqplot/docs/search/FunctionsC.html +20 -0
- data/data/jqplot/docs/search/FunctionsD.html +20 -0
- data/data/jqplot/docs/search/FunctionsG.html +20 -0
- data/data/jqplot/docs/search/FunctionsI.html +20 -0
- data/data/jqplot/docs/search/FunctionsM.html +20 -0
- data/data/jqplot/docs/search/FunctionsN.html +20 -0
- data/data/jqplot/docs/search/FunctionsR.html +20 -0
- data/data/jqplot/docs/search/FunctionsS.html +20 -0
- data/data/jqplot/docs/search/FunctionsZ.html +20 -0
- data/data/jqplot/docs/search/GeneralA.html +20 -0
- data/data/jqplot/docs/search/GeneralB.html +20 -0
- data/data/jqplot/docs/search/GeneralC.html +20 -0
- data/data/jqplot/docs/search/GeneralD.html +20 -0
- data/data/jqplot/docs/search/GeneralE.html +20 -0
- data/data/jqplot/docs/search/GeneralF.html +20 -0
- data/data/jqplot/docs/search/GeneralG.html +20 -0
- data/data/jqplot/docs/search/GeneralH.html +20 -0
- data/data/jqplot/docs/search/GeneralI.html +20 -0
- data/data/jqplot/docs/search/GeneralJ.html +20 -0
- data/data/jqplot/docs/search/GeneralL.html +20 -0
- data/data/jqplot/docs/search/GeneralM.html +20 -0
- data/data/jqplot/docs/search/GeneralN.html +20 -0
- data/data/jqplot/docs/search/GeneralO.html +20 -0
- data/data/jqplot/docs/search/GeneralP.html +20 -0
- data/data/jqplot/docs/search/GeneralR.html +20 -0
- data/data/jqplot/docs/search/GeneralS.html +20 -0
- data/data/jqplot/docs/search/GeneralSymbols.html +20 -0
- data/data/jqplot/docs/search/GeneralT.html +20 -0
- data/data/jqplot/docs/search/GeneralU.html +20 -0
- data/data/jqplot/docs/search/GeneralV.html +20 -0
- data/data/jqplot/docs/search/GeneralW.html +20 -0
- data/data/jqplot/docs/search/GeneralX.html +20 -0
- data/data/jqplot/docs/search/GeneralY.html +20 -0
- data/data/jqplot/docs/search/GeneralZ.html +20 -0
- data/data/jqplot/docs/search/HooksA.html +20 -0
- data/data/jqplot/docs/search/HooksE.html +20 -0
- data/data/jqplot/docs/search/HooksJ.html +20 -0
- data/data/jqplot/docs/search/HooksP.html +20 -0
- data/data/jqplot/docs/search/NoResults.html +15 -0
- data/data/jqplot/docs/search/PropertiesA.html +20 -0
- data/data/jqplot/docs/search/PropertiesB.html +20 -0
- data/data/jqplot/docs/search/PropertiesC.html +20 -0
- data/data/jqplot/docs/search/PropertiesD.html +20 -0
- data/data/jqplot/docs/search/PropertiesE.html +20 -0
- data/data/jqplot/docs/search/PropertiesF.html +20 -0
- data/data/jqplot/docs/search/PropertiesG.html +20 -0
- data/data/jqplot/docs/search/PropertiesH.html +20 -0
- data/data/jqplot/docs/search/PropertiesI.html +20 -0
- data/data/jqplot/docs/search/PropertiesL.html +20 -0
- data/data/jqplot/docs/search/PropertiesM.html +20 -0
- data/data/jqplot/docs/search/PropertiesN.html +20 -0
- data/data/jqplot/docs/search/PropertiesO.html +20 -0
- data/data/jqplot/docs/search/PropertiesP.html +20 -0
- data/data/jqplot/docs/search/PropertiesR.html +20 -0
- data/data/jqplot/docs/search/PropertiesS.html +20 -0
- data/data/jqplot/docs/search/PropertiesT.html +20 -0
- data/data/jqplot/docs/search/PropertiesU.html +20 -0
- data/data/jqplot/docs/search/PropertiesV.html +20 -0
- data/data/jqplot/docs/search/PropertiesW.html +20 -0
- data/data/jqplot/docs/search/PropertiesX.html +20 -0
- data/data/jqplot/docs/search/PropertiesY.html +20 -0
- data/data/jqplot/docs/search/PropertiesZ.html +20 -0
- data/data/jqplot/docs/styles/1.css +767 -0
- data/data/jqplot/docs/styles/2.css +174 -0
- data/data/jqplot/docs/styles/main.css +2 -0
- data/data/jqplot/examples/.htaccess +1 -0
- data/data/jqplot/examples/OHLC.html +333 -0
- data/data/jqplot/examples/OHLC2.html +193 -0
- data/data/jqplot/examples/area.html +107 -0
- data/data/jqplot/examples/axisLabel.html +117 -0
- data/data/jqplot/examples/axisLabelsRotatedText.html +131 -0
- data/data/jqplot/examples/axisLabelsRotatedText2.html +155 -0
- data/data/jqplot/examples/barLinePieStack.html +198 -0
- data/data/jqplot/examples/barMissingValues.html +64 -0
- data/data/jqplot/examples/barTest.html +283 -0
- data/data/jqplot/examples/barTest2.html +74 -0
- data/data/jqplot/examples/bezierCurve.html +96 -0
- data/data/jqplot/examples/blockPlot.html +149 -0
- data/data/jqplot/examples/bubbleChart2.html +253 -0
- data/data/jqplot/examples/bubblechart.html +69 -0
- data/data/jqplot/examples/catchError.html +53 -0
- data/data/jqplot/examples/categoryHorizontalBar.html +81 -0
- data/data/jqplot/examples/categoryVsLinearAxes.html +74 -0
- data/data/jqplot/examples/chartInTable.html +33 -0
- data/data/jqplot/examples/customHighlighterCursorTrendline.html +72 -0
- data/data/jqplot/examples/customPieTests.html +73 -0
- data/data/jqplot/examples/dataLabels.html +192 -0
- data/data/jqplot/examples/dataTracking.html +91 -0
- data/data/jqplot/examples/donutTest.html +89 -0
- data/data/jqplot/examples/donutTest.js +96 -0
- data/data/jqplot/examples/examples.css +19 -0
- data/data/jqplot/examples/fillToZero.html +126 -0
- data/data/jqplot/examples/filledLine.html +78 -0
- data/data/jqplot/examples/filledLineCategoryAxis.html +80 -0
- data/data/jqplot/examples/funnelTest.html +82 -0
- data/data/jqplot/examples/funnelTest.js +74 -0
- data/data/jqplot/examples/gridCustomization.html +56 -0
- data/data/jqplot/examples/hiddenPlot.html +216 -0
- data/data/jqplot/examples/highlighter.html +95 -0
- data/data/jqplot/examples/highlighter2.html +63 -0
- data/data/jqplot/examples/horizontalLine.html +51 -0
- data/data/jqplot/examples/intticks.html +178 -0
- data/data/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/data/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/data/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
- data/data/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/data/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/data/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/data/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/data/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/data/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/data/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
- data/data/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
- data/data/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
- data/data/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
- data/data/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
- data/data/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.8.1.custom.css +486 -0
- data/data/jqplot/examples/jquery-ui/js/jquery-1.4.2.min.js +154 -0
- data/data/jqplot/examples/jquery-ui/js/jquery-ui-1.8.1.custom.min.js +756 -0
- data/data/jqplot/examples/legendLabels.html +205 -0
- data/data/jqplot/examples/legendLabels2.html +228 -0
- data/data/jqplot/examples/liz.zip +0 -0
- data/data/jqplot/examples/markerStyles.html +44 -0
- data/data/jqplot/examples/mekkoChart.html +217 -0
- data/data/jqplot/examples/meterGauge.html +132 -0
- data/data/jqplot/examples/meterGauge2.html +158 -0
- data/data/jqplot/examples/minMaxLines.html +61 -0
- data/data/jqplot/examples/missingValues.html +119 -0
- data/data/jqplot/examples/multiAxesRotatedText.html +70 -0
- data/data/jqplot/examples/multipleBarColors.html +149 -0
- data/data/jqplot/examples/multipleLines.html +47 -0
- data/data/jqplot/examples/multipleYAxes.html +85 -0
- data/data/jqplot/examples/nav.inc +35 -0
- data/data/jqplot/examples/pieTest.html +77 -0
- data/data/jqplot/examples/pieTest2.html +87 -0
- data/data/jqplot/examples/pieTest2.js +80 -0
- data/data/jqplot/examples/pieTest3.html +100 -0
- data/data/jqplot/examples/pointLabels.html +94 -0
- data/data/jqplot/examples/pointLabels2.html +47 -0
- data/data/jqplot/examples/prefix.html +90 -0
- data/data/jqplot/examples/resizablePlot.html +150 -0
- data/data/jqplot/examples/rotatedTickLabels.html +61 -0
- data/data/jqplot/examples/rotatedTickLabelsZoom.html +68 -0
- data/data/jqplot/examples/seriesCanvasReorder.html +93 -0
- data/data/jqplot/examples/seriesUpdate.html +123 -0
- data/data/jqplot/examples/shadowTests.html +133 -0
- data/data/jqplot/examples/singlePoint.html +70 -0
- data/data/jqplot/examples/sparkLine.html +48 -0
- data/data/jqplot/examples/stackedBar2.html +104 -0
- data/data/jqplot/examples/stackedBar3.html +76 -0
- data/data/jqplot/examples/stackedBarCategoryVsLinearAxes.html +121 -0
- data/data/jqplot/examples/stackedCategoryAxis.html +89 -0
- data/data/jqplot/examples/stackedFilledLine.html +77 -0
- data/data/jqplot/examples/stackedLine.html +56 -0
- data/data/jqplot/examples/test2.html +64 -0
- data/data/jqplot/examples/theming.html +483 -0
- data/data/jqplot/examples/trendlineDragableCustomization.html +79 -0
- data/data/jqplot/examples/verticalLine.html +52 -0
- data/data/jqplot/examples/waterfall.html +135 -0
- data/data/jqplot/examples/zoom1.html +125 -0
- data/data/jqplot/examples/zoom2.html +73 -0
- data/data/jqplot/examples/zoom3.html +69 -0
- data/data/jqplot/examples/zoomOptions.html +101 -0
- data/data/jqplot/examples/zoomProxy.html +108 -0
- data/data/jqplot/excanvas.js +1416 -0
- data/data/jqplot/excanvas.min.js +35 -0
- data/data/jqplot/gpl-2.0.txt +280 -0
- data/data/jqplot/jqPlotCssStyling.txt +53 -0
- data/data/jqplot/jqPlotOptions.txt +276 -0
- data/data/jqplot/jquery-1.4.1.min.js +152 -0
- data/data/jqplot/jquery-1.4.2.min.js +154 -0
- data/data/jqplot/jquery.jqplot.css +212 -0
- data/data/jqplot/jquery.jqplot.js +7004 -0
- data/data/jqplot/jquery.jqplot.min.css +1 -0
- data/data/jqplot/jquery.jqplot.min.js +34 -0
- data/data/jqplot/optionsTutorial.txt +239 -0
- data/data/jqplot/plugins/jqplot.BezierCurveRenderer.js +300 -0
- data/data/jqplot/plugins/jqplot.BezierCurveRenderer.min.js +34 -0
- data/data/jqplot/plugins/jqplot.barRenderer.js +629 -0
- data/data/jqplot/plugins/jqplot.barRenderer.min.js +34 -0
- data/data/jqplot/plugins/jqplot.blockRenderer.js +221 -0
- data/data/jqplot/plugins/jqplot.blockRenderer.min.js +34 -0
- data/data/jqplot/plugins/jqplot.bubbleRenderer.js +724 -0
- data/data/jqplot/plugins/jqplot.bubbleRenderer.min.js +34 -0
- data/data/jqplot/plugins/jqplot.canvasAxisLabelRenderer.js +187 -0
- data/data/jqplot/plugins/jqplot.canvasAxisLabelRenderer.min.js +34 -0
- data/data/jqplot/plugins/jqplot.canvasAxisTickRenderer.js +226 -0
- data/data/jqplot/plugins/jqplot.canvasAxisTickRenderer.min.js +34 -0
- data/data/jqplot/plugins/jqplot.canvasTextRenderer.js +408 -0
- data/data/jqplot/plugins/jqplot.canvasTextRenderer.min.js +34 -0
- data/data/jqplot/plugins/jqplot.categoryAxisRenderer.js +630 -0
- data/data/jqplot/plugins/jqplot.categoryAxisRenderer.min.js +34 -0
- data/data/jqplot/plugins/jqplot.cursor.js +952 -0
- data/data/jqplot/plugins/jqplot.cursor.min.js +34 -0
- data/data/jqplot/plugins/jqplot.dateAxisRenderer.js +313 -0
- data/data/jqplot/plugins/jqplot.dateAxisRenderer.min.js +34 -0
- data/data/jqplot/plugins/jqplot.donutRenderer.js +876 -0
- data/data/jqplot/plugins/jqplot.donutRenderer.min.js +34 -0
- data/data/jqplot/plugins/jqplot.dragable.js +206 -0
- data/data/jqplot/plugins/jqplot.dragable.min.js +34 -0
- data/data/jqplot/plugins/jqplot.enhancedLegendRenderer.js +186 -0
- data/data/jqplot/plugins/jqplot.enhancedLegendRenderer.min.js +34 -0
- data/data/jqplot/plugins/jqplot.funnelRenderer.js +918 -0
- data/data/jqplot/plugins/jqplot.funnelRenderer.min.js +34 -0
- data/data/jqplot/plugins/jqplot.highlighter.js +374 -0
- data/data/jqplot/plugins/jqplot.highlighter.min.js +34 -0
- data/data/jqplot/plugins/jqplot.logAxisRenderer.js +434 -0
- data/data/jqplot/plugins/jqplot.logAxisRenderer.min.js +34 -0
- data/data/jqplot/plugins/jqplot.mekkoAxisRenderer.js +595 -0
- data/data/jqplot/plugins/jqplot.mekkoAxisRenderer.min.js +34 -0
- data/data/jqplot/plugins/jqplot.mekkoRenderer.js +419 -0
- data/data/jqplot/plugins/jqplot.mekkoRenderer.min.js +34 -0
- data/data/jqplot/plugins/jqplot.meterGaugeRenderer.js +1112 -0
- data/data/jqplot/plugins/jqplot.meterGaugeRenderer.min.js +34 -0
- data/data/jqplot/plugins/jqplot.ohlcRenderer.js +343 -0
- data/data/jqplot/plugins/jqplot.ohlcRenderer.min.js +34 -0
- data/data/jqplot/plugins/jqplot.pieRenderer.js +749 -0
- data/data/jqplot/plugins/jqplot.pieRenderer.min.js +34 -0
- data/data/jqplot/plugins/jqplot.pointLabels.js +325 -0
- data/data/jqplot/plugins/jqplot.pointLabels.min.js +34 -0
- data/data/jqplot/plugins/jqplot.trendline.js +208 -0
- data/data/jqplot/plugins/jqplot.trendline.min.js +34 -0
- data/data/jqplot/usage.txt +119 -0
- data/examples/graph.rb +17 -0
- data/lib/reportbuilder.rb +21 -2
- data/lib/reportbuilder/builder.rb +31 -3
- data/lib/reportbuilder/builder/html.rb +39 -5
- data/lib/reportbuilder/graph.rb +252 -0
- data/lib/reportbuilder/graph/html_flot.rb +149 -0
- data/lib/reportbuilder/graph/html_jqplot.rb +145 -0
- data/lib/reportbuilder/image.rb +178 -78
- data/lib/reportbuilder/table/rtfbuilder.rb +2 -2
- data/test/helper_test.rb +6 -7
- data/test/test_graph.rb +44 -0
- data/test/test_graph_html_flot.rb +36 -0
- data/test/test_graph_html_jqplot.rb +36 -0
- data/test/test_html.rb +4 -7
- data/test/test_image.rb +35 -7
- data/test/test_reportbuilder.rb +4 -6
- data/test/test_table.rb +0 -2
- metadata +402 -7
- metadata.gz.sig +4 -2
@@ -0,0 +1,34 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) 2009 - 2010 Chris Leonello
|
3
|
+
* jqPlot is currently available for use in all personal or commercial projects
|
4
|
+
* under both the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL
|
5
|
+
* version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html) licenses. This means that you can
|
6
|
+
* choose the license that best suits your project and use it accordingly.
|
7
|
+
*
|
8
|
+
* Although not required, the author would appreciate an email letting him
|
9
|
+
* know of any substantial use of jqPlot. You can reach the author at:
|
10
|
+
* chris at jqplot or see http://www.jqplot.com/info.php .
|
11
|
+
*
|
12
|
+
* If you are feeling kind and generous, consider supporting the project by
|
13
|
+
* making a donation at: http://www.jqplot.com/donate.php .
|
14
|
+
*
|
15
|
+
* jqPlot includes date instance methods and printf/sprintf functions by other authors:
|
16
|
+
*
|
17
|
+
* Date instance methods contained in jqplot.dateMethods.js:
|
18
|
+
*
|
19
|
+
* author Ken Snyder (ken d snyder at gmail dot com)
|
20
|
+
* date 2008-09-10
|
21
|
+
* version 2.0.2 (http://kendsnyder.com/sandbox/date/)
|
22
|
+
* license Creative Commons Attribution License 3.0 (http://creativecommons.org/licenses/by/3.0/)
|
23
|
+
*
|
24
|
+
* JavaScript printf/sprintf functions contained in jqplot.sprintf.js:
|
25
|
+
*
|
26
|
+
* version 2007.04.27
|
27
|
+
* author Ash Searle
|
28
|
+
* http://hexmen.com/blog/2007/03/printf-sprintf/
|
29
|
+
* http://hexmen.com/js/sprintf.js
|
30
|
+
* The author (Ash Searle) has placed this code in the public domain:
|
31
|
+
* "This code is unrestricted: you are free to use it however you like."
|
32
|
+
*
|
33
|
+
*/
|
34
|
+
(function(f){var d=function(m){return Math.max.apply(Math,m)};var j=function(m){return Math.min.apply(Math,m)};f.jqplot.BubbleRenderer=function(){f.jqplot.LineRenderer.call(this)};f.jqplot.BubbleRenderer.prototype=new f.jqplot.LineRenderer();f.jqplot.BubbleRenderer.prototype.constructor=f.jqplot.BubbleRenderer;f.jqplot.BubbleRenderer.prototype.init=function(v,s){this.varyBubbleColors=true;this.autoscaleBubbles=true;this.autoscaleMultiplier=1;this.autoscalePointsFactor=-0.07;this.escapeHtml=true;this.highlightMouseOver=true;this.highlightMouseDown=false;this.highlightColors=[];this.bubbleAlpha=1;this.highlightAlpha=null;this.bubbleGradients=false;this.showLabels=true;this.radii=[];this.maxRadius=0;this._highlightedPoint=null;this.labels=[];this.bubbleCanvases=[];if(v.highlightMouseDown&&v.highlightMouseOver==null){v.highlightMouseOver=false}f.extend(true,this,v);if(this.highlightAlpha==null){this.highlightAlpha=this.bubbleAlpha;if(this.bubbleGradients){this.highlightAlpha=0.35}}this.autoscaleMultiplier=this.autoscaleMultiplier*Math.pow(this.data.length,this.autoscalePointsFactor);this._highlightedPoint=null;for(var q=0;q<this.data.length;q++){var o=null;var u=this.data[q];this.maxRadius=Math.max(this.maxRadius,u[2]);if(u[3]){if(typeof(u[3])=="object"){o=u[3]["color"]}}if(o==null){if(this.seriesColors[q]!=null){o=this.seriesColors[q]}}if(o&&this.bubbleAlpha<1){comps=f.jqplot.getColorComponents(o);o="rgba("+comps[0]+", "+comps[1]+", "+comps[2]+", "+this.bubbleAlpha+")"}if(o){this.seriesColors[q]=o}}if(!this.varyBubbleColors){this.seriesColors=[this.color]}this.colorGenerator=new f.jqplot.ColorGenerator(this.seriesColors);if(this.highlightColors.length==0){for(var q=0;q<this.seriesColors.length;q++){var n=f.jqplot.getColorComponents(this.seriesColors[q]);var t=[n[0],n[1],n[2]];var r=t[0]+t[1]+t[2];for(var p=0;p<3;p++){t[p]=(r>570)?t[p]*0.8:t[p]+0.3*(255-t[p]);t[p]=parseInt(t[p],10)}this.highlightColors.push("rgba("+t[0]+","+t[1]+","+t[2]+", "+this.highlightAlpha+")")}}this.highlightColorGenerator=new f.jqplot.ColorGenerator(this.highlightColors);var m={fill:true,isarc:true,angle:this.shadowAngle,alpha:this.shadowAlpha,closePath:true};this.renderer.shadowRenderer.init(m);this.canvas=new f.jqplot.DivCanvas();this.canvas._plotDimensions=this._plotDimensions;s.eventListenerHooks.addOnce("jqplotMouseMove",a);s.eventListenerHooks.addOnce("jqplotMouseDown",b);s.eventListenerHooks.addOnce("jqplotMouseUp",k);s.eventListenerHooks.addOnce("jqplotClick",g);s.eventListenerHooks.addOnce("jqplotRightClick",l);s.postDrawHooks.addOnce(h)};f.jqplot.BubbleRenderer.prototype.setGridData=function(w){var q=this._xaxis.series_u2p;var m=this._yaxis.series_u2p;var t=this._plotData;this.gridData=[];var s=[];this.radii=[];var v=Math.min(w._height,w._width);for(var u=0;u<this.data.length;u++){if(t[u]!=null){this.gridData.push([q.call(this._xaxis,t[u][0]),m.call(this._yaxis,t[u][1]),t[u][2]]);this.radii.push([u,t[u][2]]);s.push(t[u][2])}}var n,o,x=this.maxRadius=d(s);var p=this.gridData.length;if(this.autoscaleBubbles){for(var u=0;u<p;u++){o=s[u]/x;n=this.autoscaleMultiplier*v/6;this.gridData[u][2]=n*o}}this.radii.sort(function(y,r){return r[1]-y[1]})};f.jqplot.BubbleRenderer.prototype.makeGridData=function(t,w){var q=this._xaxis.series_u2p;var n=this._yaxis.series_u2p;var x=[];var s=[];this.radii=[];var v=Math.min(w._height,w._width);for(var u=0;u<t.length;u++){if(t[u]!=null){x.push([q.call(this._xaxis,t[u][0]),n.call(this._yaxis,t[u][1]),t[u][2]]);s.push(t[u][2]);this.radii.push([u,t[u][2]])}}var m,o,y=this.maxRadius=d(s);var p=this.gridData.length;if(this.autoscaleBubbles){for(var u=0;u<p;u++){o=s[u]/y;m=this.autoscaleMultiplier*v/6;x[u][2]=m*o}}this.radii.sort(function(z,r){return r[1]-z[1]});return x};f.jqplot.BubbleRenderer.prototype.draw=function(C,I,n){if(this.plugins.pointLabels){this.plugins.pointLabels.show=false}var z=(n!=undefined)?n:{};var q=(z.shadow!=undefined)?z.shadow:this.shadow;this.canvas._elem.empty();for(var F=0;F<this.radii.length;F++){var B=this.radii[F][0];var v=null;var E=null;var m=tel=null;var H=this.data[B];var I=this.gridData[B];if(H[3]){if(typeof(H[3])=="object"){v=H[3]["label"]}else{if(typeof(H[3])=="string"){v=H[3]}}}E=this.colorGenerator.get(B);var D=I[2];var p,J;if(this.shadow){p=(0.7+I[2]/40).toFixed(1);J=1+Math.ceil(I[2]/15);D+=p*J}this.bubbleCanvases[B]=new f.jqplot.BubbleCanvas();this.canvas._elem.append(this.bubbleCanvases[B].createElement(I[0],I[1],D));this.bubbleCanvases[B].setContext();var C=this.bubbleCanvases[B]._ctx;var s=C.canvas.width/2;var r=C.canvas.height/2;if(this.shadow){this.renderer.shadowRenderer.draw(C,[s,r,I[2],0,2*Math.PI],{offset:p,depth:J})}this.bubbleCanvases[B].draw(I[2],E,this.bubbleGradients,this.shadowAngle/180*Math.PI);if(v&&this.showLabels){tel=f('<div style="position:absolute;" class="jqplot-bubble-label"></div>');if(this.escapeHtml){tel.text(v)}else{tel.html(v)}this.canvas._elem.append(tel);var G=f(tel).outerHeight();var u=f(tel).outerWidth();var A=I[1]-0.5*G;var o=I[0]-0.5*u;tel.css({top:A,left:o});this.labels[B]=f(tel)}}};f.jqplot.DivCanvas=function(){f.jqplot.ElemContainer.call(this);this._ctx};f.jqplot.DivCanvas.prototype=new f.jqplot.ElemContainer();f.jqplot.DivCanvas.prototype.constructor=f.jqplot.DivCanvas;f.jqplot.DivCanvas.prototype.createElement=function(s,p,n){this._offsets=s;var m="jqplot-DivCanvas";if(p!=undefined){m=p}var r;if(this._elem){r=this._elem.get(0)}else{r=document.createElement("div")}if(n!=undefined){this._plotDimensions=n}var o=this._plotDimensions.width-this._offsets.left-this._offsets.right+"px";var q=this._plotDimensions.height-this._offsets.top-this._offsets.bottom+"px";this._elem=f(r);this._elem.css({position:"absolute",width:o,height:q,left:this._offsets.left,top:this._offsets.top});this._elem.addClass(m);return this._elem};f.jqplot.DivCanvas.prototype.setContext=function(){this._ctx={canvas:{width:0,height:0},clearRect:function(){return null}};return this._ctx};f.jqplot.BubbleCanvas=function(){f.jqplot.ElemContainer.call(this);this._ctx};f.jqplot.BubbleCanvas.prototype=new f.jqplot.ElemContainer();f.jqplot.BubbleCanvas.prototype.constructor=f.jqplot.BubbleCanvas;f.jqplot.BubbleCanvas.prototype.createElement=function(n,u,s){var m="jqplot-bubble-point";var q;if(this._elem){q=this._elem.get(0)}else{q=document.createElement("canvas")}q.width=(s!=null)?2*s:q.width;q.height=(s!=null)?2*s:q.height;this._elem=f(q);var o=(n!=null&&s!=null)?n-s:this._elem.css("left");var p=(u!=null&&s!=null)?u-s:this._elem.css("top");this._elem.css({position:"absolute",left:o,top:p});this._elem.addClass(m);if(f.browser.msie){window.G_vmlCanvasManager.init_(document);q=window.G_vmlCanvasManager.initElement(q)}return this._elem};f.jqplot.BubbleCanvas.prototype.draw=function(m,s,v,p){var D=this._ctx;var B=D.canvas.width/2;var z=D.canvas.height/2;D.save();if(v&&!f.browser.msie){m=m*1.04;var o=f.jqplot.getColorComponents(s);var u="rgba("+Math.round(o[0]+0.8*(255-o[0]))+", "+Math.round(o[1]+0.8*(255-o[1]))+", "+Math.round(o[2]+0.8*(255-o[2]))+", "+o[3]+")";var t="rgba("+o[0]+", "+o[1]+", "+o[2]+", 0)";var C=0.35*m;var A=B-Math.cos(p)*0.33*m;var n=z-Math.sin(p)*0.33*m;var w=D.createRadialGradient(A,n,C,B,z,m);w.addColorStop(0,u);w.addColorStop(0.93,s);w.addColorStop(0.96,t);w.addColorStop(1,t);D.fillStyle=w;D.fillRect(0,0,D.canvas.width,D.canvas.height)}else{D.fillStyle=s;D.strokeStyle=s;D.lineWidth=1;D.beginPath();var q=2*Math.PI;D.arc(B,z,m,0,q,0);D.closePath();D.fill()}D.restore()};f.jqplot.BubbleCanvas.prototype.setContext=function(){this._ctx=this._elem.get(0).getContext("2d");return this._ctx};f.jqplot.BubbleAxisRenderer=function(){f.jqplot.LinearAxisRenderer.call(this)};f.jqplot.BubbleAxisRenderer.prototype=new f.jqplot.LinearAxisRenderer();f.jqplot.BubbleAxisRenderer.prototype.constructor=f.jqplot.BubbleAxisRenderer;f.jqplot.BubbleAxisRenderer.prototype.init=function(z){f.extend(true,this,z);var x=this._dataBounds;var t=minpidx=maxsids=maxpidx=maxr=minr=minMaxRadius=maxMaxRadius=maxMult=minMult=0;for(var o=0;o<this._series.length;o++){var y=this._series[o];var u=y._plotData;for(var n=0;n<u.length;n++){if(this.name=="xaxis"||this.name=="x2axis"){if(u[n][0]<x.min||x.min==null){x.min=u[n][0];t=o;minpidx=n;minr=u[n][2];minMaxRadius=y.maxRadius;minMult=y.autoscaleMultiplier}if(u[n][0]>x.max||x.max==null){x.max=u[n][0];maxsidx=o;maxpidx=n;maxr=u[n][2];maxMaxRadius=y.maxRadius;maxMult=y.autoscaleMultiplier}}else{if(u[n][1]<x.min||x.min==null){x.min=u[n][1];t=o;minpidx=n;minr=u[n][2];minMaxRadius=y.maxRadius;minMult=y.autoscaleMultiplier}if(u[n][1]>x.max||x.max==null){x.max=u[n][1];maxsidx=o;maxpidx=n;maxr=u[n][2];maxMaxRadius=y.maxRadius;maxMult=y.autoscaleMultiplier}}}}var r=minr/minMaxRadius;var m=maxr/maxMaxRadius;var w=x.max-x.min;var q=Math.min(this._plotDimensions.width,this._plotDimensions.height);var v=r*minMult/3*w;var p=m*maxMult/3*w;x.max+=p;x.min-=v};function e(p,v,q){p.plugins.bubbleRenderer.highlightLabelCanvas.empty();var z=p.series[v];var n=p.plugins.bubbleRenderer.highlightCanvas;var w=n._ctx;w.clearRect(0,0,w.canvas.width,w.canvas.height);z._highlightedPoint=q;p.plugins.bubbleRenderer.highlightedSeriesIndex=v;var o=z.highlightColorGenerator.get(q);var u=z.gridData[q][0],t=z.gridData[q][1],m=z.gridData[q][2];w.save();w.fillStyle=o;w.strokeStyle=o;w.lineWidth=1;w.beginPath();w.arc(u,t,m,0,2*Math.PI,0);w.closePath();w.fill();w.restore();if(z.labels[q]){p.plugins.bubbleRenderer.highlightLabel=z.labels[q].clone();p.plugins.bubbleRenderer.highlightLabel.appendTo(p.plugins.bubbleRenderer.highlightLabelCanvas);p.plugins.bubbleRenderer.highlightLabel.addClass("jqplot-bubble-label-highlight")}}function i(p){var m=p.plugins.bubbleRenderer.highlightCanvas;var o=p.plugins.bubbleRenderer.highlightedSeriesIndex;p.plugins.bubbleRenderer.highlightLabelCanvas.empty();m._ctx.clearRect(0,0,m._ctx.canvas.width,m._ctx.canvas.height);for(var n=0;n<p.series.length;n++){p.series[n]._highlightedPoint=null}p.plugins.bubbleRenderer.highlightedSeriesIndex=null;p.target.trigger("jqplotDataUnhighlight")}function a(s,p,m,v,r){if(v){var n=v.seriesIndex;var o=v.pointIndex;var q=[n,o,v.data,r.series[n].gridData[o][2]];var t=jQuery.Event("jqplotDataMouseOver");t.pageX=s.pageX;t.pageY=s.pageY;r.target.trigger(t,q);if(r.series[q[0]].highlightMouseOver&&!(q[0]==r.plugins.bubbleRenderer.highlightedSeriesIndex&&q[1]==r.series[q[0]]._highlightedPoint)){var u=jQuery.Event("jqplotDataHighlight");u.pageX=s.pageX;u.pageY=s.pageY;r.target.trigger(u,q);e(r,q[0],q[1])}}else{if(v==null){i(r)}}}function b(s,p,m,u,r){if(u){var n=u.seriesIndex;var o=u.pointIndex;var q=[n,o,u.data,r.series[n].gridData[o][2]];if(r.series[q[0]].highlightMouseDown&&!(q[0]==r.plugins.bubbleRenderer.highlightedSeriesIndex&&q[1]==r.series[q[0]]._highlightedPoint)){var t=jQuery.Event("jqplotDataHighlight");t.pageX=s.pageX;t.pageY=s.pageY;r.target.trigger(t,q);e(r,q[0],q[1])}}else{if(u==null){i(r)}}}function k(o,n,r,q,p){var m=p.plugins.bubbleRenderer.highlightedSeriesIndex;if(m!=null&&p.series[m].highlightMouseDown){i(p)}}function g(s,p,m,u,r){if(u){var n=u.seriesIndex;var o=u.pointIndex;var q=[n,o,u.data,r.series[n].gridData[o][2]];var t=jQuery.Event("jqplotDataClick");t.pageX=s.pageX;t.pageY=s.pageY;r.target.trigger(t,q)}}function l(s,p,m,v,r){if(v){var n=v.seriesIndex;var o=v.pointIndex;var q=[n,o,v.data,r.series[n].gridData[o][2]];var t=r.plugins.bubbleRenderer.highlightedSeriesIndex;if(t!=null&&r.series[t].highlightMouseDown){i(r)}var u=jQuery.Event("jqplotDataRightClick");u.pageX=s.pageX;u.pageY=s.pageY;r.target.trigger(u,q)}}function h(){this.plugins.bubbleRenderer={highlightedSeriesIndex:null};this.plugins.bubbleRenderer.highlightCanvas=new f.jqplot.GenericCanvas();this.plugins.bubbleRenderer.highlightLabel=null;this.plugins.bubbleRenderer.highlightLabelCanvas=f('<div style="position:absolute;"></div>');var q=this._gridPadding.top;var p=this._gridPadding.left;var n=this._plotDimensions.width-this._gridPadding.left-this._gridPadding.right;var m=this._plotDimensions.height-this._gridPadding.top-this._gridPadding.bottom;this.plugins.bubbleRenderer.highlightLabelCanvas.css({top:q,left:p,width:n+"px",height:m+"px"});this.eventCanvas._elem.before(this.plugins.bubbleRenderer.highlightCanvas.createElement(this._gridPadding,"jqplot-bubbleRenderer-highlight-canvas",this._plotDimensions));this.eventCanvas._elem.before(this.plugins.bubbleRenderer.highlightLabelCanvas);var o=this.plugins.bubbleRenderer.highlightCanvas.setContext()}function c(q,p,n){n=n||{};n.axesDefaults=n.axesDefaults||{};n.seriesDefaults=n.seriesDefaults||{};var m=false;if(n.seriesDefaults.renderer==f.jqplot.BubbleRenderer){m=true}else{if(n.series){for(var o=0;o<n.series.length;o++){if(n.series[o].renderer==f.jqplot.BubbleRenderer){m=true}}}}if(m){n.axesDefaults.renderer=f.jqplot.BubbleAxisRenderer;n.sortData=false}}f.jqplot.preInitHooks.push(c)})(jQuery);
|
@@ -0,0 +1,187 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) 2009 - 2010 Chris Leonello
|
3
|
+
* jqPlot is currently available for use in all personal or commercial projects
|
4
|
+
* under both the MIT and GPL version 2.0 licenses. This means that you can
|
5
|
+
* choose the license that best suits your project and use it accordingly.
|
6
|
+
*
|
7
|
+
* The author would appreciate an email letting him know of any substantial
|
8
|
+
* use of jqPlot. You can reach the author at: chris at jqplot dot com
|
9
|
+
* or see http://www.jqplot.com/info.php . This is, of course,
|
10
|
+
* not required.
|
11
|
+
*
|
12
|
+
* If you are feeling kind and generous, consider supporting the project by
|
13
|
+
* making a donation at: http://www.jqplot.com/donate.php .
|
14
|
+
*
|
15
|
+
* Thanks for using jqPlot!
|
16
|
+
*
|
17
|
+
*/
|
18
|
+
(function($) {
|
19
|
+
/**
|
20
|
+
* Class: $.jqplot.CanvasAxisLabelRenderer
|
21
|
+
* Renderer to draw axis labels with a canvas element to support advanced
|
22
|
+
* featrues such as rotated text. This renderer uses a separate rendering engine
|
23
|
+
* to draw the text on the canvas. Two modes of rendering the text are available.
|
24
|
+
* If the browser has native font support for canvas fonts (currently Mozila 3.5
|
25
|
+
* and Safari 4), you can enable text rendering with the canvas fillText method.
|
26
|
+
* You do so by setting the "enableFontSupport" option to true.
|
27
|
+
*
|
28
|
+
* Browsers lacking native font support will have the text drawn on the canvas
|
29
|
+
* using the Hershey font metrics. Even if the "enableFontSupport" option is true
|
30
|
+
* non-supporting browsers will still render with the Hershey font.
|
31
|
+
*
|
32
|
+
*/
|
33
|
+
$.jqplot.CanvasAxisLabelRenderer = function(options) {
|
34
|
+
// Group: Properties
|
35
|
+
|
36
|
+
// prop: angle
|
37
|
+
// angle of text, measured clockwise from x axis.
|
38
|
+
this.angle = 0;
|
39
|
+
// name of the axis associated with this tick
|
40
|
+
this.axis;
|
41
|
+
// prop: show
|
42
|
+
// wether or not to show the tick (mark and label).
|
43
|
+
this.show = true;
|
44
|
+
// prop: showLabel
|
45
|
+
// wether or not to show the label.
|
46
|
+
this.showLabel = true;
|
47
|
+
// prop: label
|
48
|
+
// label for the axis.
|
49
|
+
this.label = '';
|
50
|
+
// prop: fontFamily
|
51
|
+
// CSS spec for the font-family css attribute.
|
52
|
+
// Applies only to browsers supporting native font rendering in the
|
53
|
+
// canvas tag. Currently Mozilla 3.5 and Safari 4.
|
54
|
+
this.fontFamily = '"Trebuchet MS", Arial, Helvetica, sans-serif';
|
55
|
+
// prop: fontSize
|
56
|
+
// CSS spec for font size.
|
57
|
+
this.fontSize = '11pt';
|
58
|
+
// prop: fontWeight
|
59
|
+
// CSS spec for fontWeight: normal, bold, bolder, lighter or a number 100 - 900
|
60
|
+
this.fontWeight = 'normal';
|
61
|
+
// prop: fontStretch
|
62
|
+
// Multiplier to condense or expand font width.
|
63
|
+
// Applies only to browsers which don't support canvas native font rendering.
|
64
|
+
this.fontStretch = 1.0;
|
65
|
+
// prop: textColor
|
66
|
+
// css spec for the color attribute.
|
67
|
+
this.textColor = '#666666';
|
68
|
+
// prop: enableFontSupport
|
69
|
+
// true to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.
|
70
|
+
// If true, label will be drawn with canvas tag native support for fonts.
|
71
|
+
// If false, label will be drawn with Hershey font metrics.
|
72
|
+
this.enableFontSupport = true;
|
73
|
+
// prop: pt2px
|
74
|
+
// Point to pixel scaling factor, used for computing height of bounding box
|
75
|
+
// around a label. The labels text renderer has a default setting of 1.4, which
|
76
|
+
// should be suitable for most fonts. Leave as null to use default. If tops of
|
77
|
+
// letters appear clipped, increase this. If bounding box seems too big, decrease.
|
78
|
+
// This is an issue only with the native font renderering capabilities of Mozilla
|
79
|
+
// 3.5 and Safari 4 since they do not provide a method to determine the font height.
|
80
|
+
this.pt2px = null;
|
81
|
+
|
82
|
+
this._elem;
|
83
|
+
this._ctx;
|
84
|
+
this._plotWidth;
|
85
|
+
this._plotHeight;
|
86
|
+
this._plotDimensions = {height:null, width:null};
|
87
|
+
|
88
|
+
$.extend(true, this, options);
|
89
|
+
|
90
|
+
if (options.angle == null && this.axis != 'xaxis' && this.axis != 'x2axis') {
|
91
|
+
this.angle = -90;
|
92
|
+
}
|
93
|
+
|
94
|
+
var ropts = {fontSize:this.fontSize, fontWeight:this.fontWeight, fontStretch:this.fontStretch, fillStyle:this.textColor, angle:this.getAngleRad(), fontFamily:this.fontFamily};
|
95
|
+
if (this.pt2px) {
|
96
|
+
ropts.pt2px = this.pt2px;
|
97
|
+
}
|
98
|
+
|
99
|
+
if (this.enableFontSupport) {
|
100
|
+
|
101
|
+
function support_canvas_text() {
|
102
|
+
return !!(document.createElement('canvas').getContext && typeof document.createElement('canvas').getContext('2d').fillText == 'function');
|
103
|
+
}
|
104
|
+
|
105
|
+
if (support_canvas_text()) {
|
106
|
+
this._textRenderer = new $.jqplot.CanvasFontRenderer(ropts);
|
107
|
+
}
|
108
|
+
|
109
|
+
else {
|
110
|
+
this._textRenderer = new $.jqplot.CanvasTextRenderer(ropts);
|
111
|
+
}
|
112
|
+
}
|
113
|
+
else {
|
114
|
+
this._textRenderer = new $.jqplot.CanvasTextRenderer(ropts);
|
115
|
+
}
|
116
|
+
};
|
117
|
+
|
118
|
+
$.jqplot.CanvasAxisLabelRenderer.prototype.init = function(options) {
|
119
|
+
$.extend(true, this, options);
|
120
|
+
this._textRenderer.init({fontSize:this.fontSize, fontWeight:this.fontWeight, fontStretch:this.fontStretch, fillStyle:this.textColor, angle:this.getAngleRad(), fontFamily:this.fontFamily});
|
121
|
+
};
|
122
|
+
|
123
|
+
// return width along the x axis
|
124
|
+
// will check first to see if an element exists.
|
125
|
+
// if not, will return the computed text box width.
|
126
|
+
$.jqplot.CanvasAxisLabelRenderer.prototype.getWidth = function(ctx) {
|
127
|
+
if (this._elem) {
|
128
|
+
return this._elem.outerWidth(true);
|
129
|
+
}
|
130
|
+
else {
|
131
|
+
var tr = this._textRenderer;
|
132
|
+
var l = tr.getWidth(ctx);
|
133
|
+
var h = tr.getHeight(ctx);
|
134
|
+
var w = Math.abs(Math.sin(tr.angle)*h) + Math.abs(Math.cos(tr.angle)*l);
|
135
|
+
return w;
|
136
|
+
}
|
137
|
+
};
|
138
|
+
|
139
|
+
// return height along the y axis.
|
140
|
+
$.jqplot.CanvasAxisLabelRenderer.prototype.getHeight = function(ctx) {
|
141
|
+
if (this._elem) {
|
142
|
+
return this._elem.outerHeight(true);
|
143
|
+
}
|
144
|
+
else {
|
145
|
+
var tr = this._textRenderer;
|
146
|
+
var l = tr.getWidth(ctx);
|
147
|
+
var h = tr.getHeight(ctx);
|
148
|
+
var w = Math.abs(Math.cos(tr.angle)*h) + Math.abs(Math.sin(tr.angle)*l);
|
149
|
+
return w;
|
150
|
+
}
|
151
|
+
};
|
152
|
+
|
153
|
+
$.jqplot.CanvasAxisLabelRenderer.prototype.getAngleRad = function() {
|
154
|
+
var a = this.angle * Math.PI/180;
|
155
|
+
return a;
|
156
|
+
};
|
157
|
+
|
158
|
+
$.jqplot.CanvasAxisLabelRenderer.prototype.draw = function(ctx) {
|
159
|
+
// create a canvas here, but can't draw on it untill it is appended
|
160
|
+
// to dom for IE compatability.
|
161
|
+
var domelem = document.createElement('canvas');
|
162
|
+
this._textRenderer.setText(this.label, ctx);
|
163
|
+
var w = this.getWidth(ctx);
|
164
|
+
var h = this.getHeight(ctx);
|
165
|
+
domelem.width = w;
|
166
|
+
domelem.height = h;
|
167
|
+
domelem.style.width = w;
|
168
|
+
domelem.style.height = h;
|
169
|
+
// domelem.style.textAlign = 'center';
|
170
|
+
domelem.style.position = 'absolute';
|
171
|
+
this._domelem = domelem;
|
172
|
+
this._elem = $(domelem);
|
173
|
+
this._elem.addClass('jqplot-'+this.axis+'-label');
|
174
|
+
|
175
|
+
return this._elem;
|
176
|
+
};
|
177
|
+
|
178
|
+
$.jqplot.CanvasAxisLabelRenderer.prototype.pack = function() {
|
179
|
+
if ($.browser.msie) {
|
180
|
+
window.G_vmlCanvasManager.init_(document);
|
181
|
+
this._domelem = window.G_vmlCanvasManager.initElement(this._domelem);
|
182
|
+
}
|
183
|
+
var ctx = this._elem.get(0).getContext("2d");
|
184
|
+
this._textRenderer.draw(ctx, this.label);
|
185
|
+
};
|
186
|
+
|
187
|
+
})(jQuery);
|
@@ -0,0 +1,34 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) 2009 - 2010 Chris Leonello
|
3
|
+
* jqPlot is currently available for use in all personal or commercial projects
|
4
|
+
* under both the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL
|
5
|
+
* version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html) licenses. This means that you can
|
6
|
+
* choose the license that best suits your project and use it accordingly.
|
7
|
+
*
|
8
|
+
* Although not required, the author would appreciate an email letting him
|
9
|
+
* know of any substantial use of jqPlot. You can reach the author at:
|
10
|
+
* chris at jqplot or see http://www.jqplot.com/info.php .
|
11
|
+
*
|
12
|
+
* If you are feeling kind and generous, consider supporting the project by
|
13
|
+
* making a donation at: http://www.jqplot.com/donate.php .
|
14
|
+
*
|
15
|
+
* jqPlot includes date instance methods and printf/sprintf functions by other authors:
|
16
|
+
*
|
17
|
+
* Date instance methods contained in jqplot.dateMethods.js:
|
18
|
+
*
|
19
|
+
* author Ken Snyder (ken d snyder at gmail dot com)
|
20
|
+
* date 2008-09-10
|
21
|
+
* version 2.0.2 (http://kendsnyder.com/sandbox/date/)
|
22
|
+
* license Creative Commons Attribution License 3.0 (http://creativecommons.org/licenses/by/3.0/)
|
23
|
+
*
|
24
|
+
* JavaScript printf/sprintf functions contained in jqplot.sprintf.js:
|
25
|
+
*
|
26
|
+
* version 2007.04.27
|
27
|
+
* author Ash Searle
|
28
|
+
* http://hexmen.com/blog/2007/03/printf-sprintf/
|
29
|
+
* http://hexmen.com/js/sprintf.js
|
30
|
+
* The author (Ash Searle) has placed this code in the public domain:
|
31
|
+
* "This code is unrestricted: you are free to use it however you like."
|
32
|
+
*
|
33
|
+
*/
|
34
|
+
(function(a){a.jqplot.CanvasAxisLabelRenderer=function(b){this.angle=0;this.axis;this.show=true;this.showLabel=true;this.label="";this.fontFamily='"Trebuchet MS", Arial, Helvetica, sans-serif';this.fontSize="11pt";this.fontWeight="normal";this.fontStretch=1;this.textColor="#666666";this.enableFontSupport=true;this.pt2px=null;this._elem;this._ctx;this._plotWidth;this._plotHeight;this._plotDimensions={height:null,width:null};a.extend(true,this,b);if(b.angle==null&&this.axis!="xaxis"&&this.axis!="x2axis"){this.angle=-90}var c={fontSize:this.fontSize,fontWeight:this.fontWeight,fontStretch:this.fontStretch,fillStyle:this.textColor,angle:this.getAngleRad(),fontFamily:this.fontFamily};if(this.pt2px){c.pt2px=this.pt2px}if(this.enableFontSupport){function d(){return !!(document.createElement("canvas").getContext&&typeof document.createElement("canvas").getContext("2d").fillText=="function")}if(d()){this._textRenderer=new a.jqplot.CanvasFontRenderer(c)}else{this._textRenderer=new a.jqplot.CanvasTextRenderer(c)}}else{this._textRenderer=new a.jqplot.CanvasTextRenderer(c)}};a.jqplot.CanvasAxisLabelRenderer.prototype.init=function(b){a.extend(true,this,b);this._textRenderer.init({fontSize:this.fontSize,fontWeight:this.fontWeight,fontStretch:this.fontStretch,fillStyle:this.textColor,angle:this.getAngleRad(),fontFamily:this.fontFamily})};a.jqplot.CanvasAxisLabelRenderer.prototype.getWidth=function(d){if(this._elem){return this._elem.outerWidth(true)}else{var f=this._textRenderer;var c=f.getWidth(d);var e=f.getHeight(d);var b=Math.abs(Math.sin(f.angle)*e)+Math.abs(Math.cos(f.angle)*c);return b}};a.jqplot.CanvasAxisLabelRenderer.prototype.getHeight=function(d){if(this._elem){return this._elem.outerHeight(true)}else{var f=this._textRenderer;var c=f.getWidth(d);var e=f.getHeight(d);var b=Math.abs(Math.cos(f.angle)*e)+Math.abs(Math.sin(f.angle)*c);return b}};a.jqplot.CanvasAxisLabelRenderer.prototype.getAngleRad=function(){var b=this.angle*Math.PI/180;return b};a.jqplot.CanvasAxisLabelRenderer.prototype.draw=function(c){var e=document.createElement("canvas");this._textRenderer.setText(this.label,c);var b=this.getWidth(c);var d=this.getHeight(c);e.width=b;e.height=d;e.style.width=b;e.style.height=d;e.style.position="absolute";this._domelem=e;this._elem=a(e);this._elem.addClass("jqplot-"+this.axis+"-label");return this._elem};a.jqplot.CanvasAxisLabelRenderer.prototype.pack=function(){if(a.browser.msie){window.G_vmlCanvasManager.init_(document);this._domelem=window.G_vmlCanvasManager.initElement(this._domelem)}var b=this._elem.get(0).getContext("2d");this._textRenderer.draw(b,this.label)}})(jQuery);
|
@@ -0,0 +1,226 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) 2009 - 2010 Chris Leonello
|
3
|
+
* jqPlot is currently available for use in all personal or commercial projects
|
4
|
+
* under both the MIT and GPL version 2.0 licenses. This means that you can
|
5
|
+
* choose the license that best suits your project and use it accordingly.
|
6
|
+
*
|
7
|
+
* The author would appreciate an email letting him know of any substantial
|
8
|
+
* use of jqPlot. You can reach the author at: chris at jqplot dot com
|
9
|
+
* or see http://www.jqplot.com/info.php . This is, of course,
|
10
|
+
* not required.
|
11
|
+
*
|
12
|
+
* If you are feeling kind and generous, consider supporting the project by
|
13
|
+
* making a donation at: http://www.jqplot.com/donate.php .
|
14
|
+
*
|
15
|
+
* Thanks for using jqPlot!
|
16
|
+
*
|
17
|
+
*/
|
18
|
+
(function($) {
|
19
|
+
/**
|
20
|
+
* Class: $.jqplot.CanvasAxisTickRenderer
|
21
|
+
* Renderer to draw axis ticks with a canvas element to support advanced
|
22
|
+
* featrues such as rotated text. This renderer uses a separate rendering engine
|
23
|
+
* to draw the text on the canvas. Two modes of rendering the text are available.
|
24
|
+
* If the browser has native font support for canvas fonts (currently Mozila 3.5
|
25
|
+
* and Safari 4), you can enable text rendering with the canvas fillText method.
|
26
|
+
* You do so by setting the "enableFontSupport" option to true.
|
27
|
+
*
|
28
|
+
* Browsers lacking native font support will have the text drawn on the canvas
|
29
|
+
* using the Hershey font metrics. Even if the "enableFontSupport" option is true
|
30
|
+
* non-supporting browsers will still render with the Hershey font.
|
31
|
+
*/
|
32
|
+
$.jqplot.CanvasAxisTickRenderer = function(options) {
|
33
|
+
// Group: Properties
|
34
|
+
|
35
|
+
// prop: mark
|
36
|
+
// tick mark on the axis. One of 'inside', 'outside', 'cross', '' or null.
|
37
|
+
this.mark = 'outside';
|
38
|
+
// prop: showMark
|
39
|
+
// wether or not to show the mark on the axis.
|
40
|
+
this.showMark = true;
|
41
|
+
// prop: showGridline
|
42
|
+
// wether or not to draw the gridline on the grid at this tick.
|
43
|
+
this.showGridline = true;
|
44
|
+
// prop: isMinorTick
|
45
|
+
// if this is a minor tick.
|
46
|
+
this.isMinorTick = false;
|
47
|
+
// prop: angle
|
48
|
+
// angle of text, measured clockwise from x axis.
|
49
|
+
this.angle = 0;
|
50
|
+
// prop: markSize
|
51
|
+
// Length of the tick marks in pixels. For 'cross' style, length
|
52
|
+
// will be stoked above and below axis, so total length will be twice this.
|
53
|
+
this.markSize = 4;
|
54
|
+
// prop: show
|
55
|
+
// wether or not to show the tick (mark and label).
|
56
|
+
this.show = true;
|
57
|
+
// prop: showLabel
|
58
|
+
// wether or not to show the label.
|
59
|
+
this.showLabel = true;
|
60
|
+
// prop: labelPosition
|
61
|
+
// 'auto', 'start', 'middle' or 'end'.
|
62
|
+
// Whether tick label should be positioned so the start, middle, or end
|
63
|
+
// of the tick mark.
|
64
|
+
this.labelPosition = 'auto';
|
65
|
+
this.label = '';
|
66
|
+
this.value = null;
|
67
|
+
this._styles = {};
|
68
|
+
// prop: formatter
|
69
|
+
// A class of a formatter for the tick text.
|
70
|
+
// The default $.jqplot.DefaultTickFormatter uses sprintf.
|
71
|
+
this.formatter = $.jqplot.DefaultTickFormatter;
|
72
|
+
// prop: formatString
|
73
|
+
// string passed to the formatter.
|
74
|
+
this.formatString = '';
|
75
|
+
// prop: prefix
|
76
|
+
// string appended to the tick label if no formatString is specified.
|
77
|
+
this.prefix = '';
|
78
|
+
// prop: fontFamily
|
79
|
+
// css spec for the font-family css attribute.
|
80
|
+
this.fontFamily = '"Trebuchet MS", Arial, Helvetica, sans-serif';
|
81
|
+
// prop: fontSize
|
82
|
+
// CSS spec for font size.
|
83
|
+
this.fontSize = '10pt';
|
84
|
+
// prop: fontWeight
|
85
|
+
// CSS spec for fontWeight
|
86
|
+
this.fontWeight = 'normal';
|
87
|
+
// prop: fontStretch
|
88
|
+
// Multiplier to condense or expand font width.
|
89
|
+
// Applies only to browsers which don't support canvas native font rendering.
|
90
|
+
this.fontStretch = 1.0;
|
91
|
+
// prop: textColor
|
92
|
+
// css spec for the color attribute.
|
93
|
+
this.textColor = '#666666';
|
94
|
+
// prop: enableFontSupport
|
95
|
+
// true to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.
|
96
|
+
// If true, tick label will be drawn with canvas tag native support for fonts.
|
97
|
+
// If false, tick label will be drawn with Hershey font metrics.
|
98
|
+
this.enableFontSupport = true;
|
99
|
+
// prop: pt2px
|
100
|
+
// Point to pixel scaling factor, used for computing height of bounding box
|
101
|
+
// around a label. The labels text renderer has a default setting of 1.4, which
|
102
|
+
// should be suitable for most fonts. Leave as null to use default. If tops of
|
103
|
+
// letters appear clipped, increase this. If bounding box seems too big, decrease.
|
104
|
+
// This is an issue only with the native font renderering capabilities of Mozilla
|
105
|
+
// 3.5 and Safari 4 since they do not provide a method to determine the font height.
|
106
|
+
this.pt2px = null;
|
107
|
+
|
108
|
+
this._elem;
|
109
|
+
this._ctx;
|
110
|
+
this._plotWidth;
|
111
|
+
this._plotHeight;
|
112
|
+
this._plotDimensions = {height:null, width:null};
|
113
|
+
|
114
|
+
$.extend(true, this, options);
|
115
|
+
|
116
|
+
var ropts = {fontSize:this.fontSize, fontWeight:this.fontWeight, fontStretch:this.fontStretch, fillStyle:this.textColor, angle:this.getAngleRad(), fontFamily:this.fontFamily};
|
117
|
+
if (this.pt2px) {
|
118
|
+
ropts.pt2px = this.pt2px;
|
119
|
+
}
|
120
|
+
|
121
|
+
if (this.enableFontSupport) {
|
122
|
+
|
123
|
+
function support_canvas_text() {
|
124
|
+
return !!(document.createElement('canvas').getContext && typeof document.createElement('canvas').getContext('2d').fillText == 'function');
|
125
|
+
}
|
126
|
+
|
127
|
+
if (support_canvas_text()) {
|
128
|
+
this._textRenderer = new $.jqplot.CanvasFontRenderer(ropts);
|
129
|
+
}
|
130
|
+
|
131
|
+
else {
|
132
|
+
this._textRenderer = new $.jqplot.CanvasTextRenderer(ropts);
|
133
|
+
}
|
134
|
+
}
|
135
|
+
else {
|
136
|
+
this._textRenderer = new $.jqplot.CanvasTextRenderer(ropts);
|
137
|
+
}
|
138
|
+
};
|
139
|
+
|
140
|
+
$.jqplot.CanvasAxisTickRenderer.prototype.init = function(options) {
|
141
|
+
$.extend(true, this, options);
|
142
|
+
this._textRenderer.init({fontSize:this.fontSize, fontWeight:this.fontWeight, fontStretch:this.fontStretch, fillStyle:this.textColor, angle:this.getAngleRad(), fontFamily:this.fontFamily});
|
143
|
+
};
|
144
|
+
|
145
|
+
// return width along the x axis
|
146
|
+
// will check first to see if an element exists.
|
147
|
+
// if not, will return the computed text box width.
|
148
|
+
$.jqplot.CanvasAxisTickRenderer.prototype.getWidth = function(ctx) {
|
149
|
+
if (this._elem) {
|
150
|
+
return this._elem.outerWidth(true);
|
151
|
+
}
|
152
|
+
else {
|
153
|
+
var tr = this._textRenderer;
|
154
|
+
var l = tr.getWidth(ctx);
|
155
|
+
var h = tr.getHeight(ctx);
|
156
|
+
var w = Math.abs(Math.sin(tr.angle)*h) + Math.abs(Math.cos(tr.angle)*l);
|
157
|
+
return w;
|
158
|
+
}
|
159
|
+
};
|
160
|
+
|
161
|
+
// return height along the y axis.
|
162
|
+
$.jqplot.CanvasAxisTickRenderer.prototype.getHeight = function(ctx) {
|
163
|
+
if (this._elem) {
|
164
|
+
return this._elem.outerHeight(true);
|
165
|
+
}
|
166
|
+
else {
|
167
|
+
var tr = this._textRenderer;
|
168
|
+
var l = tr.getWidth(ctx);
|
169
|
+
var h = tr.getHeight(ctx);
|
170
|
+
var w = Math.abs(Math.cos(tr.angle)*h) + Math.abs(Math.sin(tr.angle)*l);
|
171
|
+
return w;
|
172
|
+
}
|
173
|
+
};
|
174
|
+
|
175
|
+
$.jqplot.CanvasAxisTickRenderer.prototype.getAngleRad = function() {
|
176
|
+
var a = this.angle * Math.PI/180;
|
177
|
+
return a;
|
178
|
+
};
|
179
|
+
|
180
|
+
|
181
|
+
$.jqplot.CanvasAxisTickRenderer.prototype.setTick = function(value, axisName, isMinor) {
|
182
|
+
this.value = value;
|
183
|
+
if (isMinor) {
|
184
|
+
this.isMinorTick = true;
|
185
|
+
}
|
186
|
+
return this;
|
187
|
+
};
|
188
|
+
|
189
|
+
$.jqplot.CanvasAxisTickRenderer.prototype.draw = function(ctx) {
|
190
|
+
if (!this.label) {
|
191
|
+
this.label = this.formatter(this.formatString, this.value);
|
192
|
+
}
|
193
|
+
// add prefix if needed
|
194
|
+
if (this.prefix && !this.formatString) {
|
195
|
+
this.label = this.prefix + this.label;
|
196
|
+
}
|
197
|
+
// create a canvas here, but can't draw on it untill it is appended
|
198
|
+
// to dom for IE compatability.
|
199
|
+
var domelem = document.createElement('canvas');
|
200
|
+
this._textRenderer.setText(this.label, ctx);
|
201
|
+
var w = this.getWidth(ctx);
|
202
|
+
var h = this.getHeight(ctx);
|
203
|
+
domelem.width = w;
|
204
|
+
domelem.height = h;
|
205
|
+
domelem.style.width = w;
|
206
|
+
domelem.style.height = h;
|
207
|
+
domelem.style.textAlign = 'left';
|
208
|
+
domelem.style.position = 'absolute';
|
209
|
+
this._domelem = domelem;
|
210
|
+
this._elem = $(domelem);
|
211
|
+
this._elem.css(this._styles);
|
212
|
+
this._elem.addClass('jqplot-'+this.axis+'-tick');
|
213
|
+
|
214
|
+
return this._elem;
|
215
|
+
};
|
216
|
+
|
217
|
+
$.jqplot.CanvasAxisTickRenderer.prototype.pack = function() {
|
218
|
+
if ($.browser.msie) {
|
219
|
+
window.G_vmlCanvasManager.init_(document);
|
220
|
+
this._domelem = window.G_vmlCanvasManager.initElement(this._domelem);
|
221
|
+
}
|
222
|
+
var ctx = this._elem.get(0).getContext("2d");
|
223
|
+
this._textRenderer.draw(ctx, this.label);
|
224
|
+
};
|
225
|
+
|
226
|
+
})(jQuery);
|