[mapguide-commits] r9062 - in branches/2.6/MgDev: . Common/MapGuideCommon/Controller Web/src/viewerfiles

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Thu Oct 6 11:15:46 PDT 2016


Author: jng
Date: 2016-10-06 11:15:46 -0700 (Thu, 06 Oct 2016)
New Revision: 9062

Modified:
   branches/2.6/MgDev/
   branches/2.6/MgDev/Common/MapGuideCommon/Controller/HtmlController.cpp
   branches/2.6/MgDev/Web/src/viewerfiles/
   branches/2.6/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: branches/2.6/MgDev
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/2.4/MgDev:6749-6756,6777-6783,6785-6787,6789,6791-6794,6796-6801,6954-6962,6986-7006
/branches/3.0/MgDev:8658,8958-8959
/branches/3.1/MgDev:9026
/sandbox/adsk/2.6l:8727
/sandbox/adsk/3.0m:8563,8584,8607,8625
/sandbox/adsk/3.1n:8871,8912,8921-8922,8942,9019-9020
/sandbox/jng/createruntimemap:7486-7555
/sandbox/jng/php56x:8975-8985
/sandbox/jng/rfc155:8874-8884
/sandbox/rfc94:5099-5163
/trunk/MgDev:8209-8210,8230,8313,8333,8359,8388,8392,8423,8433,8439,8443-8444,8518-8519,8567-8568,8571,8588-8589,8595,8616-8618,8626,8682,8728,8844,8956,8980,8996,9000,9004-9006,9021,9028,9034,9038,9042
   + /branches/2.4/MgDev:6749-6756,6777-6783,6785-6787,6789,6791-6794,6796-6801,6954-6962,6986-7006
/branches/3.0/MgDev:8658,8958-8959
/branches/3.1/MgDev:9026,9058-9059
/sandbox/adsk/2.6l:8727
/sandbox/adsk/3.0m:8563,8584,8607,8625
/sandbox/adsk/3.1n:8871,8912,8921-8922,8942,9019-9020
/sandbox/jng/createruntimemap:7486-7555
/sandbox/jng/php56x:8975-8985
/sandbox/jng/rfc155:8874-8884
/sandbox/rfc94:5099-5163
/trunk/MgDev:8209-8210,8230,8313,8333,8359,8388,8392,8423,8433,8439,8443-8444,8518-8519,8567-8568,8571,8588-8589,8595,8616-8618,8626,8682,8728,8844,8956,8980,8996,9000,9004-9006,9021,9028,9034,9038,9042

Modified: branches/2.6/MgDev/Common/MapGuideCommon/Controller/HtmlController.cpp
===================================================================
--- branches/2.6/MgDev/Common/MapGuideCommon/Controller/HtmlController.cpp	2016-10-06 18:12:56 UTC (rev 9061)
+++ branches/2.6/MgDev/Common/MapGuideCommon/Controller/HtmlController.cpp	2016-10-06 18:15:46 UTC (rev 9062)
@@ -483,22 +483,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)
@@ -512,13 +512,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: branches/2.6/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
/sandbox/adsk/2.2gp/Web/src/viewerfiles:5392
/sandbox/adsk/3.0m/Web/src/viewerfiles:8607
/sandbox/jng/createruntimemap/Web/src/viewerfiles:7486-7555
/trunk/MgDev/Web/src/viewerfiles:8313,8616-8618,9034
   + /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/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
/trunk/MgDev/Web/src/viewerfiles:8313,8616-8618,9034

Modified: branches/2.6/MgDev/Web/src/viewerfiles/ajaxmappane.templ
===================================================================
--- branches/2.6/MgDev/Web/src/viewerfiles/ajaxmappane.templ	2016-10-06 18:12:56 UTC (rev 9061)
+++ branches/2.6/MgDev/Web/src/viewerfiles/ajaxmappane.templ	2016-10-06 18:15:46 UTC (rev 9062)
@@ -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