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

root/Chameleon/trunk/Chameleon/ZoomVisibleLayers/ZoomVisibleLayers.widget.php

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

Latest Chameleon code checkout from previous repository

Line 
1 <?php
2 /**
3  * ZoomVisibleLayers Widget class
4  *
5  * @project     CWC2
6  * @revision    $Id: ZoomVisibleLayers.widget.php,v 1.4 2004/10/14 18:19:25 pspencer Exp $
7  * @purpose     Zoom Selected Layers Widget class
8  * @author      DM Solutions Group (spencer@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 include_once(dirname(__FILE__)."/../Widget.php");
31 include_once(dirname(__FILE__)."/../Button.php");
32
33
34 /**
35  * ZoomVisibleLayersWidget
36  *
37  * @desc ZoomVisibleLayers widget.
38  */
39 class ZoomVisibleLayers extends CWCWidget
40 {
41     var $moButton;
42     var $moMapNavigator;
43
44     /**
45      *  ZoomVisibleLayersWidget
46      *  Constructor. Set the default values.
47      */
48     function ZoomVisibleLayers()
49     {
50         // invoke constructor of parent
51         parent::CWCWidget();
52
53         // set the description for this widget
54         $this->szWidgetDescription = "No description available.  Please set ".
55                         "this description in the constructor of this class.";
56
57         $this->moButton = new CWCButton( $this );
58         $this->mnMaturityLevel = MATURITY_BETA;
59     }
60
61     function InitDefaults()
62     {
63         parent::InitDefaults();
64         $this->moButton->InitDefaults();
65         $this->moButton->SetOnClick( "clickZoomVisibleLayers()" );
66     }
67
68     /**
69      * SetMap
70      *
71      * Set the map session and create a navigation tool
72      *
73      * @param oMapSession
74      */
75     function SetMap($oMapSession)
76     {
77         $this->moMapObject = $oMapSession;
78
79         $this->moMapNavigator = new MapNavigator( $oMapSession );
80     }
81
82     /**
83      * GetHTMLHiddenVariables
84      *
85      * Return the NAV_CMD varaiable.
86      *
87      * @return the NAV_CMD varaiable.
88      */
89     function GetHTMLHiddenVariables()
90     {
91         $szCmd="";
92         if ($this->isVarSet( "NAV_ZOOM" ))
93           $szCmd = $this->getVar( "NAV_ZOOM" );
94
95         $szVariable = "NAV_ZOOM";
96         $szValue = " <INPUT TYPE=HIDDEN NAME=$szVariable VALUE=\"\">\n";
97         $aReturn[$szVariable] = $szValue;
98
99         return $aReturn;
100     }
101
102     /**
103      * GetJavascriptFunctions
104      *
105      * Return the Javacriptfunctions needed by the widget.
106      *
107      * @return Javacriptfunctions needed by the widget.
108      */
109     function GetJavascriptFunctions()
110     {
111         $aReturn = $this->moButton->GetJavascriptFunctions();
112         $szJsFunctionName = "clickZoomVisibleLayers";
113         $szFunction = <<<EOT
114 /**
115  * {$szJsFunctionName}
116  * called when the user clicks a pan arrow
117  */
118 function {$szJsFunctionName}(sTool)
119 {
120     {$this->mszHTMLForm}.NAV_ZOOM.value=sTool;
121     {$this->mszHTMLForm}.submit();
122     return;
123 }
124 EOT;
125         $aReturn[$szJsFunctionName] = $szFunction;
126
127         return $aReturn;
128     }
129
130     function GetJavascriptVariables()
131     {
132         return $this->moButton->GetJavascriptVariables();
133     }
134
135     function GetJavascriptOnLoadFunctions()
136     {
137         return $this->moButton->GetJavascriptOnLoadFunctions();
138     }
139
140     /**
141      * ParseURL
142      *
143      * Look for the ZOOM_IN command and if found do the zooming
144      * according to the other NAV paramaters.
145      */
146     function  ParseURL()
147     {
148         $szCmd = "";
149         if ($this->isVarSet( "NAV_ZOOM" ))
150           $szCmd = trim($this->getVar( "NAV_ZOOM" ));
151
152         if ($szCmd == "ZOOMVISIBLE")
153         {
154             //handle ZoomVisibleLayers here.
155
156         }
157         
158         // return success
159         return true;
160     }
161
162     /**
163      * DrawPublish
164      *
165      * Return the HTML code using the name in the map file and the
166      * parameters of the CWC tag.
167      *
168      * @return HTML code
169      */
170     function DrawPublish()
171     {
172         return $this->moButton->DrawPublish();
173     }
174
175 }
176
177 if ((function_exists( "RegisterWidget" )))
178     RegisterWidget( "ZoomVisibleLayers", "ZoomVisibleLayers" );
179 ?>
180
Note: See TracBrowser for help on using the browser.