private void deleteSelectedBaseMap(object sender, MessageBoxClosedArgs e) { if (e.Result != MessageBoxResult.OK) { return; } BaseMapInfo currentSelectedBaseMap = BaseMapsList.SelectedItem as BaseMapInfo; if (currentSelectedBaseMap == null) { return; } int currIndex = BaseMaps.IndexOf(currentSelectedBaseMap); BaseMaps.Remove(currentSelectedBaseMap); if (currIndex > BaseMaps.Count - 1) // if last item is being deleted { currIndex = BaseMaps.Count - 1; } if (currIndex > -1) // select the next item in the list { BaseMapsList.SelectedIndex = currIndex; } }
private void onAddNewBaseMapCommand(object parameter) { if (BaseMaps == null || BaseMapsList == null) { return; } BaseMapInfo newBaseMap = null; // Clone current selected base map BaseMapInfo currentSelectedBaseMap = BaseMapsList.SelectedItem as BaseMapInfo; if (currentSelectedBaseMap == null) { currentSelectedBaseMap = BaseMaps.FirstOrDefault(); } if (currentSelectedBaseMap != null) { newBaseMap = new BaseMapInfo() { BaseMapType = currentSelectedBaseMap.BaseMapType, DisplayName = ESRI.ArcGIS.Mapping.Controls.Resources.Strings.NewBasemap, ThumbnailImage = currentSelectedBaseMap.ThumbnailImage, BingMapsAppID = BingMapsAppID }; if (currentSelectedBaseMap.BaseMapType == BaseMapType.BingMaps || currentSelectedBaseMap.BaseMapType == BaseMapType.OpenStreetMap) { // Keep same name (needed) newBaseMap.Name = currentSelectedBaseMap.Name; newBaseMap.Url = "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"; } else { newBaseMap.Name = Guid.NewGuid().ToString("N"); // needs to be unique for AGS newBaseMap.Url = currentSelectedBaseMap.Url; } } else { newBaseMap = new BaseMapInfo() { BaseMapType = BaseMapType.ArcGISServer, Name = Guid.NewGuid().ToString("N"), // needs to be unique for AGS DisplayName = ESRI.ArcGIS.Mapping.Controls.Resources.Strings.NewBasemap, ThumbnailImage = "Images/basemaps/agol_imagery.png", Url = "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer", }; } BaseMaps.Add(newBaseMap); BaseMapsList.SelectedItem = newBaseMap; }
private void onMoveBaseMapDownCommand(object parameter) { BaseMapInfo currentSelectedBaseMap = BaseMapsList.SelectedItem as BaseMapInfo; if (currentSelectedBaseMap == null) { return; } int pos = BaseMaps.IndexOf(currentSelectedBaseMap); if (pos < 0 || pos >= BaseMaps.Count) { return; } BaseMaps.RemoveAt(pos); BaseMaps.Insert(pos + 1, currentSelectedBaseMap); // Preserve selection BaseMapsList.SelectedIndex = pos + 1; refreshMoveCommands(); }