コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
            }
        }