[fusion-commits] r1945 - in trunk/layers: . MapGuide MapServer MapServer/php

svn_fusion at osgeo.org svn_fusion at osgeo.org
Thu Oct 15 16:33:16 EDT 2009


Author: pdeschamps
Date: 2009-10-15 16:33:15 -0400 (Thu, 15 Oct 2009)
New Revision: 1945

Added:
   trunk/layers/MapServer/php/updateSessionMapFile.php
Modified:
   trunk/layers/Layers.js
   trunk/layers/MapGuide/MapGuide.js
   trunk/layers/MapServer/MapServer.js
Log:
modified widget LayerManager to respond to layer map changes throught the event handler LAYER_PROPERTY_CHANGED this event was registered with the Fusion.Layer.Layer class and needed to be moved to 
MapServer.js


Modified: trunk/layers/Layers.js
===================================================================
--- trunk/layers/Layers.js	2009-10-15 07:30:18 UTC (rev 1944)
+++ trunk/layers/Layers.js	2009-10-15 20:33:15 UTC (rev 1945)
@@ -484,7 +484,8 @@
             this.scaleRanges.push(scaleRange);
           }
         }
-        this.registerEventID(Fusion.Event.LAYER_PROPERTY_CHANGED);
+
+        //this.registerEventID(Fusion.Event.LAYER_PROPERTY_CHANGED);
     },
 
     supportsType: function(type) {
@@ -535,7 +536,7 @@
 
     set: function(property, value) {
         this[property] = value;
-        this.triggerEvent(Fusion.Event.LAYER_PROPERTY_CHANGED, this);
+        this.oMap.triggerEvent(Fusion.Event.LAYER_PROPERTY_CHANGED, this);
     }
 
 });

Modified: trunk/layers/MapGuide/MapGuide.js
===================================================================
--- trunk/layers/MapGuide/MapGuide.js	2009-10-15 07:30:18 UTC (rev 1944)
+++ trunk/layers/MapGuide/MapGuide.js	2009-10-15 20:33:15 UTC (rev 1945)
@@ -57,6 +57,7 @@
         }
 
         this.registerEventID(Fusion.Event.MAP_SESSION_CREATED);
+        this.registerEventID(Fusion.Event.LAYER_PROPERTY_CHANGED);
 
         this.mapInfo = mapTag.mapInfo;
         this.imageFormat = mapTag.extension.ImageFormat ? mapTag.extension.ImageFormat[0] : this.defaultFormat;

Modified: trunk/layers/MapServer/MapServer.js
===================================================================
--- trunk/layers/MapServer/MapServer.js	2009-10-15 07:30:18 UTC (rev 1944)
+++ trunk/layers/MapServer/MapServer.js	2009-10-15 20:33:15 UTC (rev 1945)
@@ -50,6 +50,7 @@
         //console.log('Fusion.Layers.MapServer.initialize');
         Fusion.Layers.prototype.initialize.apply(this, arguments);
         this.registerEventID(Fusion.Event.MAP_SESSION_CREATED);
+        this.registerEventID(Fusion.Event.LAYER_PROPERTY_CHANGED);
         //this.selectionType = extension.SelectionType ? extension.SelectionType[0] : 'INTERSECTS';
 
         this.sMapFile = mapTag.extension.MapFile ? mapTag.extension.MapFile[0] : '';

Added: trunk/layers/MapServer/php/updateSessionMapFile.php
===================================================================
--- trunk/layers/MapServer/php/updateSessionMapFile.php	                        (rev 0)
+++ trunk/layers/MapServer/php/updateSessionMapFile.php	2009-10-15 20:33:15 UTC (rev 1945)
@@ -0,0 +1,51 @@
+<?php
+include 'Common.php';
+
+if (isset($_SESSION['maps']) && isset($_SESSION['maps'][$mapName])) {
+    $oMap = ms_newMapObj($_SESSION['maps'][$mapName]);
+    // set visible layers
+    setVisibleLayers(split(",",$_REQUEST["visLayers"]));
+    // update the layers list that is in use
+    //updateActiveLayers(split(",",$_REQUEST["layers"]));
+    
+    // save the mapfile
+    $oMap->save($_SESSION['maps'][$mapName]);
+    for ($i=0;$i<$oMap->numlayers;$i++){
+        $oLayer=&$oMap->GetLayer($i);
+        }
+} else {
+  exit;
+}
+    function setVisibleLayers($aLayers){
+    global $oMap;
+        for ($i=0;$i<$oMap->numlayers;$i++){
+            $oLayer=$oMap->GetLayer($i);
+            // turn off layer
+            $oLayer->set("status", MS_OFF);
+            for($j=0;$j<count($aLayers);$j++){
+                if($aLayers[$j] == $oLayer->name ){
+                    $oLayer->set("status", MS_ON);
+                }
+            }
+        }
+    }
+
+    function updateActiveLayers ($aLayers){
+    global $oMap;
+        for ($i=0;$i<$oMap->numlayers;$i++){
+            $oLayer=&$oMap->GetLayer($i);
+            
+            $bFoundLayer = false;
+            for($j=0;$j<count($aLayers);$j++){
+                if($aLayers[$j] == $oLayer->name ){
+                    $bFoundLayer = true;
+                }
+            }
+            // layer not found in list delete it
+            if($bFoundLayer == false){
+                $oLayer->set('status', MS_DELETE); 
+            }
+        }
+    }    
+    
+?>
\ No newline at end of file



More information about the fusion-commits mailing list