NCCOOS Trac Projects: Top | Web | Platforms | Processing | Viz | Sprints | Sandbox | (Wind)

root/Chameleon/trunk/Chameleon/RulerNM/RulerNM.widget.php

Revision 13 (checked in by jcleary, 17 years ago)

Latest Chameleon code checkout from previous repository

Line 
1 <?php
2 /**
3  * RulerNM Widget class
4  *
5  * @project     CWC2
6  * @revision    $Id: RulerNM.widget.php,v 1.1 2005/10/24 10:22:20 jjansen Exp $
7  * @purpose     RulerNM Widget class
8  * @author      DM Solutions Group (assefa@dmsolutions.ca)
9  * @copyright
10  * <b>Copyright (c) 2002, DM Solutions Group Inc.</b>
11  * Permission is hereby granted, free of charge, to any person obtaining a
12  * copy of this software and associated documentation files (the "Software"),
13  * to deal in the Software without restriction, including without limitation
14  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
15  * and/or sell copies of the Software, and to permit persons to whom the
16  * Software is furnished to do so, subject to the following conditions:
17  *
18  * The above copyright notice and this permission notice shall be included
19  * in all copies or substantial portions of the Software.
20  *
21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
24  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27  * DEALINGS IN THE SOFTWARE.
28  */
29
30
31 include_once(dirname(__FILE__)."/../NavTool.php");
32
33
34 /**
35  * RulerNM
36  *
37  * @desc A widget to measure distances
38  */
39 class RulerNM extends NavTool
40 {
41     var $mnNumberOfPoints = 100;
42     var $mnSpaceBetweenPoints = 15;
43
44     /**
45      * construct a new RulerNM widget
46      */
47     function RulerNM()
48     {
49         // invoke constructor of parent
50         parent::NavTool();
51
52         $this->SetNavCommand("RULER");
53         $this->maAttributes["UNITS"] = new StringAttribute( "UNITS", true,
54             array( "INCHES", "FEET", "MILES", "METERS", "KILOMETERS", "DEGREES", "PIXELS", "NAUTICAL MILES" ) );
55         $this->maAttributes["NUMBEROFPOINTS"] = new IntegerAttribute( "NUMBEROFPOINTS", false, 0 );        $this->maAttributes["SPACEBETWEENPOINTS"] = new IntegerAttribute( "SPACEBETWEENPOINTS", false, 0 );
56
57         // set the description for this widget
58         $this->szWidgetDescription = <<<EOT
59 The RulerNM widget is a tool that allows the user to interactively draw line segments on the map
60 and display the cumulative distance of the segments in ground units.
61 EOT;
62
63         $this->mnMaturityLevel = MATURITY_BETA;
64         $this->mbNavSubmit = false;
65     }
66
67     /**
68      * validate a unit of measurement
69      */
70     function IsUnitValid($szUnit)
71     {
72         $aValidUnits = array(trim($this->moMLT->get("6", "Inches")),
73                              trim($this->moMLT->get("7", "Feet")),
74                              trim($this->moMLT->get("8", "Miles")),
75                              trim($this->moMLT->get("9", "Meters")),
76                              trim($this->moMLT->get("10", "Kilometers")),
77                              trim($this->moMLT->get("11", "Degrees")),
78                              trim($this->moMLT->get("12", "Pixels")),
79                              trim($this->moMLT->get("24", "Nautical Miles")));
80
81         $nCount = count($aValidUnits);
82         $bFound = false;
83
84         for ($i=0; $i<$nCount; $i++)
85         {
86             if(strcasecmp($aValidUnits[$i], trim($szUnit)) == 0)
87             {
88                 $bFound = true;
89                 break;
90             }
91         }
92         return $bFound;
93     }
94
95     /**
96      * return an abbreviation for a unit of measurement
97      */
98     function GetUnitAbbbreviation($szUnit)
99     {
100         //assuming the unit is valid
101         //if ($this->IsUnitValid($szInUnit))
102         $szUnit = trim(strtoupper($szUnit));
103
104         $szResult = "";
105         switch ($szUnit)
106         {
107             case "INCHES":
108               $szResult = trim($this->moMLT->get("13", "in."));
109               break;
110
111             case "FEET":
112               $szResult = trim($this->moMLT->get("14", "ft"));
113               break;
114
115             case "MILES":
116               $szResult = trim($this->moMLT->get("15", "mi"));
117               break;
118
119             case "METERS":
120               $szResult = trim($this->moMLT->get("16", "m"));
121               break;
122
123             case "KILOMETERS":
124               $szResult = trim($this->moMLT->get("17", "km"));
125               break;
126
127             case "DEGREES":
128               $szResult = trim($this->moMLT->get("18", "dd"));
129               break;
130
131             case "PIXELS":
132               $szResult = trim($this->moMLT->get("19", "px"));
133               break;
134
135             case "NAUTICAL MILES":
136               $szResult = trim($this->moMLT->get("25", "nm"));
137               break;
138
139             default:
140               break;
141         }
142
143         return $szResult;
144     }
145
146     /**
147      * convert a measurement from a unit to meters
148      */
149     function ConvertToMeter($szInUnit, $dfValue)
150     {
151         //assuming the unit is valid
152         //if ($this->IsUnitValid($szInUnit))
153         $dfResult = -1.0;
154
155         $aMeterPerUnit = array(); //how many meters are there in the unit
156         $aMeterPerUnit[0] =  0.0254; //inches
157         $aMeterPerUnit[1] =  0.3048; //feet
158         $aMeterPerUnit[2] =  1609.3445; //Miles
159         $aMeterPerUnit[3] =  1.0; //Meters
160         $aMeterPerUnit[4] =  1000.0; //Kilometers
161         $aMeterPerUnit[5] =  110570; //using value a 0 latitude 1degree = 110.57km
162         $aMeterPerUnit[6] =  1852; //NauticalMiles
163
164
165         $szInUnit = trim(strtoupper($szInUnit));
166         switch ($szInUnit)
167         {
168             case "INCHES":
169               $dfResult = $dfValue * $aMeterPerUnit[0];
170               break;
171
172             case "FEET":
173                $dfResult = $dfValue * $aMeterPerUnit[1];
174               break;
175
176             case "MILES":
177               $dfResult = $dfValue * $aMeterPerUnit[2];
178               break;
179
180             case "METERS":
181               $dfResult = $dfValue * $aMeterPerUnit[3];
182               break;
183
184             case "KILOMETERS":
185               $dfResult = $dfValue * $aMeterPerUnit[4];
186               break;
187
188             case "DEGREES":
189               $dfResult = $dfValue * $aMeterPerUnit[5];
190               break;
191
192             case "NAUTICAL MILES":
193               $dfResult = $dfValue * $aMeterPerUnit[6];
194               break;
195
196             default:
197               break;
198         }
199
200         return $dfResult;
201
202     }
203
204     /**
205      * convert a measurement from meters to a unit
206      */
207     function ConvertFromMeter($szInUnit, $dfValue)
208     {
209         //assuming the unit is valid
210         //if ($this->IsUnitValid($szInUnit))
211         $dfResult = -1.0;
212
213         $aUnitPerMeter = array(); //how many units in one meters
214         $aUnitPerMeter[0] =  39.37; //inches
215         $aUnitPerMeter[1] =  3.2808; //feet
216         $aUnitPerMeter[2] =  0.00062137; //Miles
217         $aUnitPerMeter[3] =  1.0; //Meters
218         $aUnitPerMeter[4] =  0.001; //Kilometers
219         $aUnitPerMeter[5] =  0.000009044; //using value a 0 latitude 1degree = 110.57km
220         $aUnitPerMeter[6] =  0.000539957; //NauticalMiles
221
222         $szInUnit = trim(strtoupper($szInUnit));
223         switch ($szInUnit)
224         {
225             case "INCHES":
226               $dfResult = $dfValue * $aUnitPerMeter[0];
227               break;
228
229             case "FEET":
230                $dfResult = $dfValue * $aUnitPerMeter[1];
231               break;
232
233             case "MILES":
234               $dfResult = $dfValue * $aUnitPerMeter[2];
235               break;
236
237             case "METERS":
238               $dfResult = $dfValue * $aUnitPerMeter[3];
239               break;
240
241             case "KILOMETERS":
242               $dfResult = $dfValue * $aUnitPerMeter[4];
243               break;
244
245             case "DEGREES":
246               $dfResult = $dfValue * $aUnitPerMeter[5];
247               break;
248
249             case "NAUTICAL MILES":
250               $dfResult = $dfValue * $aUnitPerMeter[6];
251               break;
252
253             default:
254               break;
255         }
256
257         return $dfResult;
258
259     }
260
261     /**
262      * arbitrarily convert a measurement from one unit to another
263      */
264     function ConvertUnit($szInUnit, $szOutUnit, $dfValue)
265     {
266         $bInFound = $this->IsUnitValid($szInUnit);
267         $bOutFound = $this->IsUnitValid($szOutUnit);
268
269
270         if (!$bInFound || !$bOutFound)
271         {
272             //echo "units invalid <br>";
273             return -1.0;
274         }
275
276         $dfValue = $this->ConvertToMeter($szInUnit, $dfValue);
277         //echo "after convert to meter = $dfValue <br>";
278         $dfValue = $this->ConvertFromMeter($szOutUnit, $dfValue);
279         //echo "after convert from meter = $dfValue <br>";
280
281         return $dfValue;
282     }
283
284     /**
285      * the javascript functions to be called as the page loads
286      */
287     function GetJavascriptInitFunctions()
288     {
289         $aReturn = array();
290
291         $aReturn = parent::GetJavascriptInitFunctions();
292
293         $szJsFunctionName = "RulerNMInit";
294         $szFunction = "$szJsFunctionName();\n";
295         $aReturn[$szJsFunctionName] = $szFunction;
296
297
298         return $aReturn;
299     }
300
301     /**
302      * javascript include files
303      */
304     function GetJavascriptIncludeFunctions()
305     {
306         $aReturn = array();
307         
308         $aReturn = parent::GetJavascriptIncludeFunctions();
309
310         $szJsIncludeName = "cwc_dhtml.js";
311         $szInclude = "<script language=\"JavaScript\" src=\"".$_SESSION["gszCoreWebPath"]."/widgets/js/cwc_dhtml.js\" type=\"text/javascript\"></script>";
312         $aReturn[$szJsIncludeName] = $szInclude;
313
314         $szJsIncludeName = "dhtmlapi.js";
315         $szInclude = "<script language=\"JavaScript\" src=\"".$_SESSION["gszCoreWebPath"]."/widgets/js/dhtmlapi.js\" type=\"text/javascript\"></script>";
316         $aReturn[$szJsIncludeName] = $szInclude;
317
318         $szJsIncludeName = "toolsobj.js";
319         $szInclude = "<script language=\"JavaScript\" src=\"".$_SESSION["gszCoreWebPath"]."/widgets/js/toolsobj.js\" type=\"text/javascript\"></script>";
320         $aReturn[$szJsIncludeName] = $szInclude;
321
322         $szJsIncludeName = "eventslib.js";
323         $szInclude = "<script language=\"JavaScript\" src=\"".$_SESSION["gszCoreWebPath"]."/widgets/js/eventslib.js\" type=\"text/javascript\"></script>";
324         $aReturn[$szJsIncludeName] = $szInclude;
325         return $aReturn;
326     }
327
328     /**
329      * @desc javascript mousemove functions
330      */
331     function GetJavascriptOnMouseMoveFunctions()
332     {
333         $aReturn = array();
334
335         $aReturn = parent::GetJavascriptOnMouseMoveFunctions();
336
337         $szJsFunctionName = "RulerNMWMouseMove";
338         $szFunction = "$szJsFunctionName(e);\n";
339         $aReturn[$szJsFunctionName] = $szFunction;
340
341         return $aReturn;
342     }
343
344     /**
345      * @desc general javascript functions
346      */
347     function GetJavascriptFunctions()
348     {
349         $oApp = GetChameleonApplication();
350         $aReturn = array();
351
352         if (isset($this->maSharedResourceWidgets["CWCJSAPI"]))
353           $bCWCJSAPI = 1;
354         else
355           $bCWCJSAPI = 0;
356
357         $aReturn = parent::GetJavascriptFunctions();
358         
359         $szRulerNMPix = $oApp->findFile( "images/ruler_pix.gif" );
360         $szRulerNMPix = $oApp->fileSystemToURL( $szRulerNMPix );
361         $szRulerNMNode = $oApp->findFile( "images/ruler_node.gif" );
362         $szRulerNMNode = $oApp->fileSystemToURL( $szRulerNMNode );
363         
364         $szJsFunctionName = "RulerNMInit";
365         $szFunction = <<<EOT
366 /**
367  * {$szJsFunctionName}
368  * called to initialize the ruler widget.
369  */
370 function {$szJsFunctionName}()
371 {
372     // draw all distance points
373     //drawDistPt();
374     var sId = "";
375     var content = "<IMG  SRC='{$szRulerNMPix}'><BR>";
376     var content2 = "<IMG  SRC='{$szRulerNMNode}'><BR>";
377     for (var i=1; i<= gRulerNbPoints; i++)
378     {
379         sId = "pix"+i;
380         CWCDHTML_CreateLayer(sId, -10, -10, 10, 10, false, content);
381         CWCDHTML_SetLayerZOrder( sId, 20 );
382         
383         sId = "pInf"+i;
384         CWCDHTML_CreateLayer(sId, -10, -10, 10, 10, false, content2);
385         CWCDHTML_SetLayerZOrder( sId, 20 );
386         
387     }
388     // instantiate the distancetool object
389     //MapLayerDiv is created in MapDHTMLWidget.php.
390     //gMapWhspc and gMapWvspc are created in MapDHTMLWidget and are
391     //the TL position of the map.
392     DistTool = new distancetool(getObject("MapLayerDiv"), gRulerNbPoints,
393                                 gMapWhspc, gMapWvspc);
394
395     // initialize mouse event for the layer named 'MapLayerDiv'
396     //setMapDraggable("MapLayerDiv");
397 }
398 EOT;
399
400     $aReturn[$szJsFunctionName] = $szFunction;
401
402     $szJsFunctionName = "RulerNMWMouseMove";
403     $szFunction = <<<EOT
404 /**
405  * {$szJsFunctionName}
406  * called when the mouse moves for the RulerNM widget.
407  */
408 function {$szJsFunctionName}(e)
409 {
410
411     //make sure that the forms varaibales are initialized.
412     //It seems like that in IE, the mouse move may be called before.
413     if ({$this->mszHTMLForm} == null ||
414       {$this->mszHTMLForm}.NAV_CMD == null)
415       return true;
416
417     if({$this->mszHTMLForm}.NAV_CMD.value != "RULER")
418     {
419         //if ruler result is present rest the text field.
420         if ({$this->mszHTMLForm}.RULER_RESULT != null)
421         {
422             {$this->mszHTMLForm}.RULER_RESULT.value = "";
423         }
424
425         //reset the first click.
426         gRulerfirstClickDist = true;
427
428         if (gRulerHideLayers)
429         {
430             for(var i=1; i<=gRulerNbPoints; i++)
431             {
432                 hide("pix" + i);
433             }
434             for(var i=1; i<=gRulerNbPoints; i++)
435             {
436                 hide("pInf" + i);
437             }
438             //lets only do this once :)
439             gRulerHideLayers = false;
440         }
441         
442         //remove handlers if they were ours
443         if (document.onDblClick==stopDist)
444             document.onDblClick = null;
445         if (document.onKeyPress==stopDist)
446             document.onKeyPress= null;
447
448         return true;
449     }
450     
451     //ruler tool is active
452     var obj = "MapLayerDiv";
453     if (isNav4 || isNav6)
454     {
455         document.captureEvents(Event.MOUSEDOWN);
456         document.captureEvents(Event.MOUSEMOVE);
457         document.captureEvents(Event.DBLCLICK);
458         document.captureEvents(Event.RESIZE);
459     }
460     if(isNav4)
461     {
462         getObject(obj).onmouseout= mouseOutMap;
463         document.onmousedown=startDist;
464         document.onDblClick=stopDist ;
465         document.onKeyPress=stopDist;
466     }
467     else if (isIE4 || isNav6)
468     {
469         var layer  = document.getElementById("MapLayerDiv");
470         document.onmousedown=startDist;
471         document.ondblclick=stopDist;
472         document.onkeypress=stopDist;
473         //layer.onmouseout=outIE;
474         if (isNav6)
475         {
476           document.addEventListener("dblclick",stopDist,true);
477           document.addEventListener("keypress",stopDist,true);
478         }
479
480     }
481     distIt(e);
482 }
483 EOT;
484     $aReturn[$szJsFunctionName] = $szFunction;
485
486     if ($bCWCJSAPI)
487     {
488
489         $szJsFunctionName = "RulerNMWRegisterForEvent";
490         $szFunction = <<<EOT
491 /**
492  * {$szJsFunctionName}
493  * called to register and even when the map extents chnages (JSAPI)
494  */
495 function {$szJsFunctionName}()
496 {
497     goCWCJSAPI.RegisterEvent(MAP_EXTENT_CHANGED, "RulerNMWMapExtentsChanged");
498 }
499 EOT;
500     
501        $aReturn[$szJsFunctionName] = $szFunction;
502
503        $szJsFunctionName = "RulerNMWMapExtentsChanged";
504        $szFunction = <<<EOT
505 /**
506  * {$szJsFunctionName}
507  * called when the mapextents are changed to update the ruler global variables(JSAPI)
508  */
509 function {$szJsFunctionName}()
510 {
511     gRulercMapWidth = goCWCJSAPI.oMap.width;
512     gRulercMapHeight = goCWCJSAPI.oMap.height;
513     gRulermapMinX = goCWCJSAPI.oMap.minx;
514     gRulermapMaxY = goCWCJSAPI.oMap.maxx;
515
516     dfPixelSize = (goCWCJSAPI.oMap.maxx - goCWCJSAPI.oMap.minx)/goCWCJSAPI.oMap.width;
517
518     szMapUnit = goCWCJSAPI.oMap.GetUnitString(goCWCJSAPI.oMap.units);
519
520     gRulergblPixelSize = goCWCJSAPI.oMap.ConvertUnit(szMapUnit, gRulerUserUnit, dfPixelSize);
521
522 }
523 EOT;
524     
525     $aReturn[$szJsFunctionName] = $szFunction;
526     }//if jsapi
527  
528     return $aReturn;
529     }
530
531
532     /**
533      * javascript variables
534      */
535     function GetJavascriptVariables()
536     {
537         if (isset($this->moMapObject))
538         {
539             $poMap = $this->moMapObject->oMap;
540
541             $dfPixelSize = ($poMap->extent->maxx - $poMap->extent->minx)/
542                           $poMap->width;
543             $nUnits = $this->moMapObject->oMap->units;
544         }
545         else
546         {
547             if (!defined( "MS_INCHES" ))
548             {
549                 define( "MS_INCHES", 0 );
550                 define( "MS_FEET", 1 );
551                 define( "MS_MILES", 2 );
552                 define( "MS_METERS", 3 );
553                 define( "MS_KILOMETERS", 4 );
554                 define( "MS_DEGREES", 5 );
555                 define( "MS_PIXELS", 6 );
556                 define( "MS_DD", 7 );
557                 define( "MS_NAUTICALMILES", 8 );
558             }
559             $nUnits = 3;
560             $dfPixelSize = 1;
561         }
562         //echo "orig pix value = $dfPixelSize <br>";
563         $szUserUnit = "";
564         if (isset($this->maParams["UNITS"]))
565             $szUserUnit = strtoupper($this->maParams["UNITS"]);
566
567         $szMapUnits = "";
568         switch ($nUnits)
569         {
570             case MS_INCHES:
571               $szMapUnits = trim($this->moMLT->get("6", "Inches"));
572               break;
573
574             case MS_FEET:
575                $szMapUnits = trim($this->moMLT->get("7", "Feet"));
576               break;
577
578             case MS_MILES:
579               $szMapUnits = trim($this->moMLT->get("8", "Miles"));
580               break;
581
582             case MS_METERS:
583               $szMapUnits = trim($this->moMLT->get("9", "Meters"));
584               break;
585
586             case MS_KILOMETERS:
587               $szMapUnits = trim($this->moMLT->get("10", "Kilometers"));
588               break;
589
590             case MS_DD:
591               $szMapUnits = trim($this->moMLT->get("11", "Degrees"));
592               break;
593
594             case MS_PIXELS:
595               $szMapUnits = trim($this->moMLT->get("12", "Pixels"));
596               break;
597
598             case MS_NAUTICALMILES:
599               $szMapUnits = trim($this->moMLT->get("24", "Nautical Miles"));
600               break;
601         }
602
603 /* -------------------------------------------------------------------- */
604 /*      if the user given units are different from the map units,       */
605 /*      convert the pixel size.                                         */
606 /* -------------------------------------------------------------------- */
607         if ($szMapUnits != "" && $szUserUnit != "" &&
608             $szUserUnit != $szMapUnits)
609         {
610             //echo "convert from $szMapUnits to $szUserUnit <br>";
611             $dfPixelSize =
612               $this->ConvertUnit($szMapUnits, $szUserUnit$dfPixelSize);
613
614             //echo "converted pix value = $dfPixelSize <br>";
615
616             if ($dfPixelSize > 0)
617               $szUnits = $szUserUnit;
618             else
619             {
620                 $_SESSION['gErrorManager']->setError(ERR_WARNING,
621                   trim($this->moMLT->get("22", "ERROR: Unit value could not be used in RulerNM.widget.php.")));
622                 $szUnits = trim($this->moMLT->get("12", "Pixels"));
623                 $dfPixelSize = 1.0;
624             }
625         }
626         else
627         {
628             $szUnits = $szMapUnits;
629         }
630
631         $szUserUnit = $szUnits;
632         $szUnits = $this->GetUnitAbbbreviation($szUnits);
633
634         $aReturn = array();
635         $aReturn = parent::GetJavascriptVariables();
636
637         $szVariable = "gRulergblPixelSize";
638         $szValue = " var $szVariable = $dfPixelSize;\n";
639         $aReturn[$szVariable] = $szValue;
640
641         $szVariable = "gRulermapMinX";
642         if (is_object($this->moMapObject))
643         {
644             $nMinX = $poMap->extent->minx;
645         }
646         else
647             $nMinX = 0;
648         $szValue = " var $szVariable = ".$nMinX.";\n";
649         $aReturn[$szVariable] = $szValue;
650
651         $szVariable = "gRulermapMaxY";
652         if (is_object($this->moMapObject))
653         {
654             $nMaxX = $poMap->extent->maxx;
655         }
656         else
657             $nMaxX = 0;
658         $szValue = " var $szVariable = ".$nMaxX.";\n";
659         $aReturn[$szVariable] = $szValue;
660
661         $szVariable = "gRulerMapImgOX";
662         $szValue = " var $szVariable = gMapWhspc;\n";
663         $aReturn[$szVariable] = $szValue;
664
665         $szVariable = "gRulerMapImgOY";
666         $szValue = " var $szVariable = gMapWvspc;\n";
667         $aReturn[$szVariable] = $szValue;
668
669         $szVariable = "gRulerCurrentTool";
670         $szValue = " var $szVariable = \"distance\";\n";
671         $aReturn[$szVariable] = $szValue;
672
673         $szVariable = "gRulerfirstClickDist";
674         $szValue = " var $szVariable = \"true\";\n";
675         $aReturn[$szVariable] = $szValue;
676
677         $szVariable = "gRulercMapWidth";
678         if (is_object($this->moMapObject))
679         {
680             $nWidth = $poMap->width;
681         }
682         else
683             $nWidth = 1;
684         $szValue = " var $szVariable = ".$nWidth.";\n";
685         $aReturn[$szVariable] = $szValue;
686
687         $szVariable = "gRulercMapHeight";
688         if (is_object($this->moMapObject))
689         {
690             $nHeight = $poMap->height;
691         }
692         else
693             $nHeight = 1;
694         $szValue = " var $szVariable = ".$nHeight.";\n";
695         $aReturn[$szVariable] = $szValue;
696
697         $szVariable = "gRulerg_digitTool";
698         $szValue = " var $szVariable = \"true\";\n";
699         $aReturn[$szVariable] = $szValue;
700
701         $szVariable = "gRulerg_end_digit";
702         $szValue = " var $szVariable = \"false\";\n";
703         $aReturn[$szVariable] = $szValue;
704
705         $szVariable = "gRulerareaMode";
706         $szValue = " var $szVariable = \"false\";\n";
707         $aReturn[$szVariable] = $szValue;
708
709         $szVariable = "gRulerareaString";
710         $szValue = " var $szVariable = \"\";\n";
711         $aReturn[$szVariable] = $szValue;
712
713         $szVariable = "gRulersUnits";
714         $szValue = " var $szVariable = \"$szUnits\";\n";
715         $aReturn[$szVariable] = $szValue;
716
717         $szVariable = "gRulerHideLayers";
718         $szValue = " var $szVariable = 0;\n";
719         $aReturn[$szVariable] = $szValue;
720
721         $szVariable = "gRulerFirstUse";
722         $szValue = " var $szVariable = true;\n";
723         $aReturn[$szVariable] = $szValue;
724
725         $nPoints = $this->mnNumberOfPoints;
726         if (isset($this->maParams["NUMBEROFPOINTS"]))
727           $nPoints = intval($this->maParams["NUMBEROFPOINTS"]);
728
729         $szVariable = "gRulerNbPoints";
730         $szValue = " var $szVariable = $nPoints;\n";
731         $aReturn[$szVariable] = $szValue;
732
733         $szVariable = "gRulerUserUnit";
734         $szValue = " var $szVariable = \"$szUserUnit\";\n";
735         $aReturn[$szVariable] = $szValue;
736         
737         $nSpaceBetween = $this->mnSpaceBetweenPoints;
738         if (isset($this->maParams["SPACEBETWEENPOINTS"]))
739           $nSpaceBetween = intval($this->maParams["SPACEBETWEENPOINTS"]);
740         if ($nSpaceBetween <=0)
741           $nSpaceBetween = $this->mnSpaceBetweenPoints;
742
743         $szVariable = "gRulerSpaceBetweenPoints";
744         $szValue = " var $szVariable = $nSpaceBetween;\n";
745         $aReturn[$szVariable] = $szValue;
746
747         return $aReturn;
748     }
749     
750     /**
751      * return an array of javascript functions needed by the RulerNM widget
752      * and called when the page is loaded.
753      * @return array of name = function values
754      */
755     function GetJavascriptOnLoadFunctions()
756     {
757         $aReturn = array();
758         
759         $aReturn = parent::GetJavascriptOnLoadFunctions();
760
761         if (isset($this->maSharedResourceWidgets["CWCJSAPI"]))
762         {
763              $szJsFunctionName = "RulerNMWRegisterForEvent";
764              $szFunction = "$szJsFunctionName();\n";
765              $aReturn[$szJsFunctionName] = $szFunction;
766         }
767
768         return $aReturn;
769     }
770     
771 }
772 ?>
773
Note: See TracBrowser for help on using the browser.