protected override RasterLayer GetRasterLayer(Uri uri, WorldFileInfo wInfo) { WmsRasterLayer layer = null; WmsRasterLayerConfigWindow wmsWindow = new WmsRasterLayerConfigWindow(); wmsWindow.ViewModel.AddToDataRepositoryVisibility = Visibility.Visible; if (wmsWindow.ShowDialog().GetValueOrDefault()) { WmsRasterLayer wmsRasterlayer = wmsWindow.ViewModel.WmsRasterLayer; wmsRasterlayer.InitializeProj4Projection(GisEditor.ActiveMap.DisplayProjectionParameters); if (wmsRasterlayer != null && wmsRasterlayer.ActiveLayerNames.Count > 0) { layer = wmsRasterlayer; } if (wmsWindow.ViewModel.DoesAddToDataRepository) { var wmsDataPlugin = GisEditor.DataRepositoryManager.GetPlugins().OfType <WmsDataRepositoryPlugin>().FirstOrDefault(); if (wmsDataPlugin != null) { wmsDataPlugin.RootDataRepositoryItem.Children.Add(new WmsDataRepositoryItem( wmsWindow.ViewModel.Name, new ObservableCollection <string>(wmsWindow.ViewModel.AvailableLayers.Select(l => l.Name)), wmsWindow.ViewModel.WmsServerUrl, wmsWindow.ViewModel.UserName, wmsWindow.ViewModel.Password, wmsWindow.ViewModel.Parameters, wmsWindow.ViewModel.Formats, wmsWindow.ViewModel.Styles, wmsWindow.ViewModel.SelectedFormat, wmsWindow.ViewModel.SelectedStyle)); } } } return(layer); }
protected override DataRepositoryItem CreateDataRepositoryItemCore() { WmsDataRepositoryItem wmsDataItem = null; WmsRasterLayerConfigWindow wmsWindow = new WmsRasterLayerConfigWindow(); wmsWindow.ViewModel.AddToDataRepositoryVisibility = Visibility.Collapsed; if (wmsWindow.ShowDialog().GetValueOrDefault()) { var names = RootDataRepositoryItem.Children.Select(c => c.Name).ToList(); if (names.Contains(wmsWindow.ViewModel.Name)) { MessageBox.Show(string.Format(CultureInfo.InvariantCulture, GisEditor.LanguageManager.GetStringResource("WmsDataRepositeryPluginWmsAddedText"), wmsWindow.ViewModel.Name), GisEditor.LanguageManager.GetStringResource("GeneralMessageBoxAlertCaption")); } else { wmsDataItem = new WmsDataRepositoryItem( wmsWindow.ViewModel.Name, new ObservableCollection <string>(wmsWindow.ViewModel.AvailableLayers.Select(l => l.Name)), wmsWindow.ViewModel.WmsServerUrl, wmsWindow.ViewModel.UserName, wmsWindow.ViewModel.Password, wmsWindow.ViewModel.Parameters, wmsWindow.ViewModel.Formats, wmsWindow.ViewModel.Styles, wmsWindow.ViewModel.SelectedFormat, wmsWindow.ViewModel.SelectedStyle); } } return(wmsDataItem); }
private void AddMenuItems() { if (isRoot) { ContextMenu = new ContextMenu(); MenuItem editSettingItem = new MenuItem(); editSettingItem.Header = GisEditor.LanguageManager.GetStringResource("WmsDataRepositoryItemEditWmsHeader"); editSettingItem.Icon = new Image { Source = new BitmapImage(new Uri("/GisEditorPluginCore;component/Images/dr_edit.png", UriKind.RelativeOrAbsolute)) }; editSettingItem.Command = new RelayCommand(() => { WmsRasterLayerConfigWindow wmsWindow = new WmsRasterLayerConfigWindow(); wmsWindow.Title = GisEditor.LanguageManager.GetStringResource("WmsDataRepositoryItemEditWMSRasterLayerHeader"); wmsWindow.ViewModel.AddToDataRepositoryVisibility = Visibility.Collapsed; wmsWindow.ViewModel.Name = Name; wmsWindow.ViewModel.WmsServerUrl = Url; if (wmsWindow.ShowDialog().GetValueOrDefault()) { WmsDataRepositoryItem newItem = new WmsDataRepositoryItem( wmsWindow.ViewModel.Name, new ObservableCollection <string>(wmsWindow.ViewModel.AvailableLayers.Select(l => l.Name)), wmsWindow.ViewModel.WmsServerUrl, wmsWindow.ViewModel.UserName, wmsWindow.ViewModel.Password, wmsWindow.ViewModel.Parameters, wmsWindow.ViewModel.Formats, wmsWindow.ViewModel.Styles, wmsWindow.ViewModel.SelectedFormat, wmsWindow.ViewModel.SelectedStyle); WmsDataRepositoryPlugin wmsDataRepositoryPlugin = GisEditor.DataRepositoryManager.GetActiveDataRepositoryPlugins <WmsDataRepositoryPlugin>().FirstOrDefault(); if (wmsDataRepositoryPlugin != null && wmsDataRepositoryPlugin.RootDataRepositoryItem.Children.Contains(this)) { int index = wmsDataRepositoryPlugin.RootDataRepositoryItem.Children.IndexOf(this); wmsDataRepositoryPlugin.RootDataRepositoryItem.Children.Insert(index, newItem); wmsDataRepositoryPlugin.RootDataRepositoryItem.Children.RemoveAt(index + 1); GisEditor.UIManager.RefreshPlugins(new DataRepositoryUIRefreshArgs(new DataRepositoryPlugin[] { wmsDataRepositoryPlugin })); } } }); MenuItem removeItem = new MenuItem(); removeItem.Header = GisEditor.LanguageManager.GetStringResource("WmsDataRepositoryItemRemoveRepositoryHeader"); removeItem.Icon = new Image { Source = new BitmapImage(new Uri("/GisEditorPluginCore;component/Images/dr_remove_item.png", UriKind.RelativeOrAbsolute)) }; removeItem.Command = new RelayCommand(() => { WmsDataRepositoryPlugin wmsDataRepositoryPlugin = GisEditor.DataRepositoryManager.GetActiveDataRepositoryPlugins <WmsDataRepositoryPlugin>().FirstOrDefault(); if (wmsDataRepositoryPlugin != null && wmsDataRepositoryPlugin.RootDataRepositoryItem.Children.Contains(this)) { wmsDataRepositoryPlugin.RootDataRepositoryItem.Children.Remove(this); GisEditor.UIManager.RefreshPlugins(new DataRepositoryUIRefreshArgs(new DataRepositoryPlugin[] { wmsDataRepositoryPlugin })); } }); ContextMenu.Items.Add(editSettingItem); ContextMenu.Items.Add(removeItem); } }