Index: Riskeer/DuneErosion/src/Riskeer.DuneErosion.Forms/Views/DuneErosionLocationsMapLayer.cs =================================================================== diff -u -rc359d9601ddf4e94f2380a0f49759a6f8324aa5c -r760568953588fac81da1a432efe126d76e40b272 --- Riskeer/DuneErosion/src/Riskeer.DuneErosion.Forms/Views/DuneErosionLocationsMapLayer.cs (.../DuneErosionLocationsMapLayer.cs) (revision c359d9601ddf4e94f2380a0f49759a6f8324aa5c) +++ Riskeer/DuneErosion/src/Riskeer.DuneErosion.Forms/Views/DuneErosionLocationsMapLayer.cs (.../DuneErosionLocationsMapLayer.cs) (revision 760568953588fac81da1a432efe126d76e40b272) @@ -171,6 +171,37 @@ private void UpdateMetaData(IEnumerable calculationsForTargetProbabilities) { + Dictionary newMetaDataItemsLookups = GetNewMetaDataItemsLookups(calculationsForTargetProbabilities); + + string currentSelectedMetaDataAttribute = MapData.SelectedMetaDataAttribute; + foreach (KeyValuePair currentMetaDataItemLookup in currentMetaDataItemsLookups) + { + MetaDataItemsLookup currentMetaDataItem = currentMetaDataItemLookup.Value; + if (IsMetaDataAttributeMetaDataItemProperty(currentSelectedMetaDataAttribute, currentMetaDataItem)) + { + DuneLocationCalculationsForTargetProbability calculationsForTargetProbability = currentMetaDataItemLookup.Key; + if (!newMetaDataItemsLookups.ContainsKey(calculationsForTargetProbability)) + { + MapData.SelectedMetaDataAttribute = RiskeerCommonUtilResources.MetaData_Name; + } + else + { + MetaDataItemsLookup newMetaDataItem = newMetaDataItemsLookups[calculationsForTargetProbability]; + SetSelectedMetaDataAttribute(currentSelectedMetaDataAttribute, currentMetaDataItem.WaterLevelMetaDataItem, newMetaDataItem.WaterLevelMetaDataItem); + SetSelectedMetaDataAttribute(currentSelectedMetaDataAttribute, currentMetaDataItem.WaveHeightMetaDataItem, newMetaDataItem.WaveHeightMetaDataItem); + SetSelectedMetaDataAttribute(currentSelectedMetaDataAttribute, currentMetaDataItem.WavePeriodMetaDataItem, newMetaDataItem.WavePeriodMetaDataItem); + SetSelectedMetaDataAttribute(currentSelectedMetaDataAttribute, currentMetaDataItem.MeanTidalAmplitudeMetaDataItem, newMetaDataItem.MeanTidalAmplitudeMetaDataItem); + SetSelectedMetaDataAttribute(currentSelectedMetaDataAttribute, currentMetaDataItem.WaveDirectionalSpreadMetaDataItem, newMetaDataItem.WaveDirectionalSpreadMetaDataItem); + SetSelectedMetaDataAttribute(currentSelectedMetaDataAttribute, currentMetaDataItem.TideSurgePhaseDifferenceMetaDataItem, newMetaDataItem.TideSurgePhaseDifferenceMetaDataItem); + } + } + } + + currentMetaDataItemsLookups = newMetaDataItemsLookups; + } + + private Dictionary GetNewMetaDataItemsLookups(IEnumerable calculationsForTargetProbabilities) + { var newMetaDataItemsLookups = new Dictionary(); var waterLevelMetaDataItemsCounter = 0; @@ -219,36 +250,17 @@ } } - string currentSelectedMetaDataAttribute = MapData.SelectedMetaDataAttribute; - foreach (KeyValuePair currentMetaDataItemLookup in currentMetaDataItemsLookups) - { - MetaDataItemsLookup currentMetaDataItem = currentMetaDataItemLookup.Value; - if (currentSelectedMetaDataAttribute == currentMetaDataItem.WaterLevelMetaDataItem - || currentSelectedMetaDataAttribute == currentMetaDataItem.WaveHeightMetaDataItem - || currentSelectedMetaDataAttribute == currentMetaDataItem.WavePeriodMetaDataItem - || currentSelectedMetaDataAttribute == currentMetaDataItem.MeanTidalAmplitudeMetaDataItem - || currentSelectedMetaDataAttribute == currentMetaDataItem.WaveDirectionalSpreadMetaDataItem - || currentSelectedMetaDataAttribute == currentMetaDataItem.TideSurgePhaseDifferenceMetaDataItem) - { - DuneLocationCalculationsForTargetProbability calculationsForTargetProbability = currentMetaDataItemLookup.Key; - if (!newMetaDataItemsLookups.ContainsKey(calculationsForTargetProbability)) - { - MapData.SelectedMetaDataAttribute = RiskeerCommonUtilResources.MetaData_Name; - } - else - { - MetaDataItemsLookup newMetaDataItem = newMetaDataItemsLookups[calculationsForTargetProbability]; - SetSelectedMetaDataAttribute(currentSelectedMetaDataAttribute, currentMetaDataItem.WaterLevelMetaDataItem, newMetaDataItem.WaterLevelMetaDataItem); - SetSelectedMetaDataAttribute(currentSelectedMetaDataAttribute, currentMetaDataItem.WaveHeightMetaDataItem, newMetaDataItem.WaveHeightMetaDataItem); - SetSelectedMetaDataAttribute(currentSelectedMetaDataAttribute, currentMetaDataItem.WavePeriodMetaDataItem, newMetaDataItem.WavePeriodMetaDataItem); - SetSelectedMetaDataAttribute(currentSelectedMetaDataAttribute, currentMetaDataItem.MeanTidalAmplitudeMetaDataItem, newMetaDataItem.MeanTidalAmplitudeMetaDataItem); - SetSelectedMetaDataAttribute(currentSelectedMetaDataAttribute, currentMetaDataItem.WaveDirectionalSpreadMetaDataItem, newMetaDataItem.WaveDirectionalSpreadMetaDataItem); - SetSelectedMetaDataAttribute(currentSelectedMetaDataAttribute, currentMetaDataItem.TideSurgePhaseDifferenceMetaDataItem, newMetaDataItem.TideSurgePhaseDifferenceMetaDataItem); - } - } - } + return newMetaDataItemsLookups; + } - currentMetaDataItemsLookups = newMetaDataItemsLookups; + private static bool IsMetaDataAttributeMetaDataItemProperty(string metaDataAttribute, MetaDataItemsLookup currentMetaDataItem) + { + return metaDataAttribute == currentMetaDataItem.WaterLevelMetaDataItem + || metaDataAttribute == currentMetaDataItem.WaveHeightMetaDataItem + || metaDataAttribute == currentMetaDataItem.WavePeriodMetaDataItem + || metaDataAttribute == currentMetaDataItem.MeanTidalAmplitudeMetaDataItem + || metaDataAttribute == currentMetaDataItem.WaveDirectionalSpreadMetaDataItem + || metaDataAttribute == currentMetaDataItem.TideSurgePhaseDifferenceMetaDataItem; } private static void AddMetaDataItemToLookup(IDictionary lookup,