[mapguide-commits] r7793 - in trunk/MgDev/Doc/samples/ol2samples: assets tiled

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Wed Aug 21 07:22:33 PDT 2013


Author: jng
Date: 2013-08-21 07:22:33 -0700 (Wed, 21 Aug 2013)
New Revision: 7793

Modified:
   trunk/MgDev/Doc/samples/ol2samples/assets/legend.js
   trunk/MgDev/Doc/samples/ol2samples/tiled/index.html
Log:
#2344: Update legend.js to also show tiled layers/groups. Update tiled example to use our legend component

Modified: trunk/MgDev/Doc/samples/ol2samples/assets/legend.js
===================================================================
--- trunk/MgDev/Doc/samples/ol2samples/assets/legend.js	2013-08-21 14:00:54 UTC (rev 7792)
+++ trunk/MgDev/Doc/samples/ol2samples/assets/legend.js	2013-08-21 14:22:33 UTC (rev 7793)
@@ -10,6 +10,7 @@
     var legendSelector = options.legendSelector;
     this.map = options.map;
     this.mgLayer = options.mgLayerOL;
+    this.mgTiledLayers = options.mgTiledLayers || {};
     this.debug = false;
     
     this.stdIconRoot = options.stdIconRoot || "../../stdicons";
@@ -75,14 +76,23 @@
     }
     
     $("input.group-checkbox", this.rootEl).change(function() {
-        var bShow = $(this).is(":checked");
-        var objId = $(this).val();
-        _self.showGroup(objId, bShow);
+        var el = $(this);
+        var bShow = el.is(":checked");
+        if (el.attr("data-is-tiled") == "true") {
+            var name = el.attr("data-group-name");
+            if (typeof(_self.mgTiledLayers[name]) != 'undefined') {
+                _self.mgTiledLayers[name].setVisibility(bShow);
+            }
+        } else {
+            var objId = el.val();
+            _self.showGroup(objId, bShow);
+        }
     });
     
     $("input.layer-checkbox", this.rootEl).change(function() {
-        var bShow = $(this).is(":checked");
-        var objId = $(this).val();
+        var el = $(this);
+        var bShow = el.is(":checked");
+        var objId = el.val();
         _self.showLayer(objId, bShow);
     });
     
@@ -137,7 +147,7 @@
 };
 
 Legend.prototype.createGroupElement = function(group) {
-    return $("<li><input type='checkbox' class='group-checkbox' value='" + group.ObjectId[0] + "' " + ((group.Visible[0] == "true") ? "checked='checked'" : "") + " /><img src='" + this.stdIconRoot + "/lc_group.gif' /> " + group.LegendLabel[0] + "<ul class='groupChildren'></ul></li>");
+    return $("<li><input type='checkbox' class='group-checkbox' data-is-tiled='" + (group.Type[0] == 2) + "' data-group-name='" + group.Name[0] + "' value='" + group.ObjectId[0] + "' " + ((group.Visible[0] == "true") ? "checked='checked'" : "") + " /><img src='" + this.stdIconRoot + "/lc_group.gif' /> " + group.LegendLabel[0] + "<ul class='groupChildren'></ul></li>");
 };
 
 Legend.prototype.getIconUri = function(iconBase64) {
@@ -183,7 +193,10 @@
                 } else {
                     icon = this.getIconUri(fts.Rule[0].Icon[0]);
                 }
-                els.push($("<li class='layer-node' data-layer-min-scale='" + scaleRange.MinScale[0] + "' data-layer-max-scale='" + scaleRange.MaxScale[0] + "'><input type='checkbox' class='layer-checkbox' value='" + layer.ObjectId[0] + "' " + ((layer.Visible[0] == "true") ? "checked='checked'" : "") + " /><img src='" + icon + "' /> " + text + childHtml + "</li>"));
+                var chkBoxHtml = "";
+                if (layer.Type[0] == 1) //Dynamic
+                    chkBoxHtml = "<input type='checkbox' class='layer-checkbox' value='" + layer.ObjectId[0] + "' " + ((layer.Visible[0] == "true") ? "checked='checked'" : "") + " />";
+                els.push($("<li class='layer-node' data-layer-min-scale='" + scaleRange.MinScale[0] + "' data-layer-max-scale='" + scaleRange.MaxScale[0] + "'>" + chkBoxHtml + "<img src='" + icon + "' /> " + text + childHtml + "</li>"));
             }
         }
     }

Modified: trunk/MgDev/Doc/samples/ol2samples/tiled/index.html
===================================================================
--- trunk/MgDev/Doc/samples/ol2samples/tiled/index.html	2013-08-21 14:00:54 UTC (rev 7792)
+++ trunk/MgDev/Doc/samples/ol2samples/tiled/index.html	2013-08-21 14:22:33 UTC (rev 7793)
@@ -12,11 +12,12 @@
             #rootList li { list-style-type: none; }
             .olControlMousePosition { background: #ffff66; font-size: 0.6em !important; padding: 2px; }
             
-            #layers { background: #6699FF; color: white; }
-            #layers .baseLayersDiv { font-size: 0.7em; }
+            #baseLayerSwitcher { background: #6699FF; color: white; padding: 5px; }
+            #baseLayerSwitcher .baseLayersDiv { font-size: 0.7em; }
         </style>
         <script type="text/javascript" src="../assets/jquery-1.10.2.min.js"></script>
         <script type="text/javascript" src="../assets/OpenLayers.js"></script>
+        <script type="text/javascript" src="../assets/legend.js"></script>
         <script type="text/javascript">
         
         //This sample is assumed to be hosted at http://servername/mapguide/ol2samples/tiled/index.html
@@ -35,9 +36,9 @@
             OpenLayers.Control.DragPan.prototype.enableKinetic = false;
             //Have a play with the bitmask values to see the differences in JSON payload size
             //and to see how our legend control gracefully handles such situations
-            createMap(REQ_NONE);
+            //createMap(REQ_NONE);
             //createMap(REQ_LAYER_STRUCTURE);
-            //createMap(REQ_LAYER_STRUCTURE | REQ_LAYER_FEATURE_SOURCE | REQ_LAYER_ICONS);
+            createMap(REQ_LAYER_STRUCTURE | REQ_LAYER_FEATURE_SOURCE | REQ_LAYER_ICONS);
         });
         
         function createMap(reqFeatures) {
@@ -119,7 +120,7 @@
                     new OpenLayers.Control.Zoom(),
                     new OpenLayers.Control.ScaleLine(),
                     new OpenLayers.Control.MousePosition(),
-                    new OpenLayers.Control.LayerSwitcher({ div: $("#layers")[0] }),
+                    new OpenLayers.Control.LayerSwitcher({ div: $("#baseLayerSwitcher")[0] }),
                     new OpenLayers.Control.CustomNavToolbar({alwaysZoom:true})
                 ]
             };
@@ -138,6 +139,7 @@
             };
 
             map = new OpenLayers.Map('map', mapOptions );
+            var tiledLayers = {};
             for (var i = 0; i < rtMapInfo.RuntimeMap.Group.length; i++) {
                 var group = rtMapInfo.RuntimeMap.Group[i];
                 if (group.Type[0] == "2") { //MgLayerGroupType.BaseMap
@@ -148,9 +150,19 @@
                         singleTile: false
                     });
                     map.addLayer(layer);
+                    tiledLayers[group.Name[0]] = layer;
                 }
             }
             map.zoomToMaxExtent();
+            
+            var legend = new Legend({
+                legendSelector: "#rootList",
+                stdIconRoot: "../../stdicons",
+                runtimeMap: rtMapInfo,
+                map: map,
+                mgTiledLayers: tiledLayers
+            });
+            legend.update();
         }
         </script>
     </head>
@@ -162,7 +174,13 @@
         </div>
         <div id="wrap">
             <div id="layers">
-                
+                <div id="baseLayerSwitcher">
+                </div>
+                <div id="legend">
+                    <strong>Layer and Groups</strong>
+                    <ul id="rootList">
+                    </ul>
+                </div>
             </div>
             <div id="map">
             </div>



More information about the mapguide-commits mailing list