[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