[mapguide-commits] r9060 - in trunk/MgDev: . Common/MapGuideCommon/Controller Web/src/viewerfiles

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Thu Oct 6 11:08:16 PDT 2016


Author: jng
Date: 2016-10-06 11:08:16 -0700 (Thu, 06 Oct 2016)
New Revision: 9060

Modified:
   trunk/MgDev/
   trunk/MgDev/Common/MapGuideCommon/Controller/HtmlController.cpp
   trunk/MgDev/Web/src/viewerfiles/
   trunk/MgDev/Web/src/viewerfiles/ajaxmappane.templ
Log:
Merged revision(s) 9058-9059 from branches/3.1/MgDev:
#2746: Use iteration of PropertyMapping elements to control the order in which property names are written out. Thus the LayerMetadata element of a QUERYMAPFEATURES response is the source of truth with regards to display order of feature attributes.

The AJAX and Fusion viewers will be updated in future commits to display attributes in the order specified by the LayerMetadata element.
........
#2748: Update AJAX viewer property palette to respect display order (as controlled by the LayerMetadata element of the QUERYMAPFEATURES response)
........



Property changes on: trunk/MgDev
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/2.4/MgDev:6749-6756,6777-6783,6785-6787,6789,6791-6794,6796-6801,6954-6962,6986-7006
/branches/2.6/MgDev:8276-8286,8288-8292,8297,8299,8301,8303,8314-8315,8318,8335,8340,8354-8355,8365,8373
/branches/3.0/MgDev:8658,8705,8710
/branches/3.1/MgDev:9026
/sandbox/VC140:8684-8759
/sandbox/adsk/2.6l:8727
/sandbox/adsk/3.0m:8563,8584,8607,8625,8694-8695
/sandbox/adsk/3.1n:8871,8895,8901,8912-8913,8921-8922,8942,9019-9020
/sandbox/jng/convenience_apis:8262-8268,8271-8363
/sandbox/jng/createruntimemap:7486-7555
/sandbox/jng/dwftk:8321-8324,8328-8329,8331,8352
/sandbox/jng/geos34x:8256-8259
/sandbox/jng/php56x:8975-8985
/sandbox/jng/rfc155:8872-8884
/sandbox/jng/tiling:8174-8208
/sandbox/jng/v30:8212-8227
/sandbox/rfc94:5099-5163
/trunk/MgDev:8869-8871
   + /branches/2.4/MgDev:6749-6756,6777-6783,6785-6787,6789,6791-6794,6796-6801,6954-6962,6986-7006
/branches/2.6/MgDev:8276-8286,8288-8292,8297,8299,8301,8303,8314-8315,8318,8335,8340,8354-8355,8365,8373
/branches/3.0/MgDev:8658,8705,8710
/branches/3.1/MgDev:9026,9058-9059
/sandbox/VC140:8684-8759
/sandbox/adsk/2.6l:8727
/sandbox/adsk/3.0m:8563,8584,8607,8625,8694-8695
/sandbox/adsk/3.1n:8871,8895,8901,8912-8913,8921-8922,8942,9019-9020
/sandbox/jng/convenience_apis:8262-8268,8271-8363
/sandbox/jng/createruntimemap:7486-7555
/sandbox/jng/dwftk:8321-8324,8328-8329,8331,8352
/sandbox/jng/geos34x:8256-8259
/sandbox/jng/php56x:8975-8985
/sandbox/jng/rfc155:8872-8884
/sandbox/jng/tiling:8174-8208
/sandbox/jng/v30:8212-8227
/sandbox/rfc94:5099-5163
/trunk/MgDev:8869-8871

Modified: trunk/MgDev/Common/MapGuideCommon/Controller/HtmlController.cpp
===================================================================
--- trunk/MgDev/Common/MapGuideCommon/Controller/HtmlController.cpp	2016-10-06 18:01:25 UTC (rev 9059)
+++ trunk/MgDev/Common/MapGuideCommon/Controller/HtmlController.cpp	2016-10-06 18:08:16 UTC (rev 9060)
@@ -492,22 +492,22 @@
                 MdfModel::VectorLayerDefinition* vl = dynamic_cast<MdfModel::VectorLayerDefinition*>(ldf.get());
                 if(vl != NULL)
                 {
+                    STRING pTypeStr;
                     MdfModel::NameStringPairCollection* pmappings = vl->GetPropertyMappings();
                     for (int j=0; j<pmappings->GetCount(); j++)
                     {
                         MdfModel::NameStringPair* m = pmappings->GetAt(j);
-                        propNames->Add(m->GetName());
-                        displayNameMap.insert(std::make_pair(m->GetName(), m->GetValue()));
-                    }
-                    STRING pTypeStr;
-                    for (int k = 0; k < clsProps->GetCount(); k++)
-                    {
-                        Ptr<MgPropertyDefinition> propDef = clsProps->GetItem(k);
-                        STRING propName = propDef->GetName();
-                        DisplayNameMap::iterator it = displayNameMap.find(propName);
-                        //Skip properties without display mappings
-                        if (it == displayNameMap.end())
+                        const MdfModel::MdfString& name = m->GetName();
+                        const MdfModel::MdfString& dispName = m->GetValue();
+                        propNames->Add(name);
+                        displayNameMap.insert(std::make_pair(name, dispName));
+
+                        INT32 propIndex = clsProps->IndexOf(name);
+                        if (propIndex < 0) {
                             continue;
+                        }
+
+                        Ptr<MgPropertyDefinition> propDef = clsProps->GetItem(propIndex);
                         INT32 pdType = propDef->GetPropertyType();
                         INT32 pType = MgPropertyType::Null;
                         if (pdType == MgFeaturePropertyType::DataProperty)
@@ -521,13 +521,13 @@
                         MgUtil::Int32ToString(pType, pTypeStr);
                         xmlOut.append(L"<Property>\n");
                         xmlOut.append(L"<Name>");
-                        xmlOut.append(it->first);
+                        xmlOut.append(name);
                         xmlOut.append(L"</Name>\n");
                         xmlOut.append(L"<Type>");
                         xmlOut.append(pTypeStr);
                         xmlOut.append(L"</Type>\n");
                         xmlOut.append(L"<DisplayName>");
-                        xmlOut.append(it->second);
+                        xmlOut.append(dispName);
                         xmlOut.append(L"</DisplayName>\n");
                         xmlOut.append(L"</Property>\n");
                     }


Property changes on: trunk/MgDev/Web/src/viewerfiles
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/2.4/MgDev/Web/src/viewerfiles:6738-6741,6749-6756,6777-6783,6785-6787,6789,6791-6794,6796-6801,6954-6962,6986-7006
/branches/2.6/MgDev/Web/src/viewerfiles:8288-8292,8297
/sandbox/adsk/2.2gp/Web/src/viewerfiles:5392
/sandbox/adsk/3.0m/Web/src/viewerfiles:8607
/sandbox/jng/createruntimemap/Web/src/viewerfiles:7486-7555
/sandbox/jng/v30/Web/src/viewerfiles:8226-8227
   + /branches/2.4/MgDev/Web/src/viewerfiles:6738-6741,6749-6756,6777-6783,6785-6787,6789,6791-6794,6796-6801,6954-6962,6986-7006
/branches/2.6/MgDev/Web/src/viewerfiles:8288-8292,8297
/branches/3.1/MgDev/Web/src/viewerfiles:9058-9059
/sandbox/adsk/2.2gp/Web/src/viewerfiles:5392
/sandbox/adsk/3.0m/Web/src/viewerfiles:8607
/sandbox/jng/createruntimemap/Web/src/viewerfiles:7486-7555
/sandbox/jng/v30/Web/src/viewerfiles:8226-8227

Modified: trunk/MgDev/Web/src/viewerfiles/ajaxmappane.templ
===================================================================
--- trunk/MgDev/Web/src/viewerfiles/ajaxmappane.templ	2016-10-06 18:01:25 UTC (rev 9059)
+++ trunk/MgDev/Web/src/viewerfiles/ajaxmappane.templ	2016-10-06 18:08:16 UTC (rev 9060)
@@ -4238,6 +4238,7 @@
             var bbox = ((msie && !msie10plus) ? bounds.text : bounds.textContent).split(" ");
             feat.zoom = { minx: parseFloat(bbox[0]), miny: parseFloat(bbox[1]), maxx: parseFloat(bbox[2]), maxy: parseFloat(bbox[3]) };
             
+            var featVals = [];
             var propEls = featEl.getElementsByTagName("Property");
             for (var k = 0; k < propEls.length; k++)
             {
@@ -4248,8 +4249,29 @@
                 var value = null;
                 if (valueEl.length == 1)
                     value = (msie && !msie10plus) ? valueEl[0].text : valueEl[0].textContent;
-                feat.values.push({ name: name, value: value });
+                featVals.push({ name: name, value: value });
             }
+            
+            var layerMeta = layerEl.getElementsByTagName("LayerMetadata")[0];
+            var layerPropDisplayNames = layerMeta.getElementsByTagName("DisplayName");
+            
+            var sortedFeatVals = [];
+            //Sort them according to property display order
+            for (var k = 0; k < layerPropDisplayNames.length; k++) {
+                var displayName = ((msie && !msie10plus) ? layerPropDisplayNames[k].text : layerPropDisplayNames[k].textContent);
+                for (var fp = 0; fp < featVals.length; fp++) {
+                    var featPropVal = featVals[fp];
+                    if (featPropVal.name == displayName) {
+                        sortedFeatVals.push(featPropVal);
+                        break;
+                    }
+                }
+            }
+            //Then load into feature
+            for (var k = 0; k < sortedFeatVals.length; k++) {
+                feat.values.push(sortedFeatVals[k]);
+            }
+            
             featuresByLayer[layerName].push(feat);
         }
     }



More information about the mapguide-commits mailing list