private UserControl GetDataRepositoryContentUserControl()
        {
            DataRepositoryContentUserControl userControl = new DataRepositoryContentUserControl();

            string header1 = GisEditor.LanguageManager.GetStringResource("FolderDataRepositoryUserControlTypeText");
            DataRepositoryGridColumn column1 = new DataRepositoryGridColumn(header1, 70, di => di.Category);

            string header2 = "Url";
            DataRepositoryGridColumn column2 = new DataRepositoryGridColumn(header2, 100);

            column2.CellContentConvertHandler = di =>
            {
                WmsDataRepositoryItem wmsDataRepositoryItem = di as WmsDataRepositoryItem;
                if (wmsDataRepositoryItem != null)
                {
                    return(wmsDataRepositoryItem.Url);
                }
                else
                {
                    return(Binding.DoNothing);
                }
            };

            userControl.Columns.Add(column1);
            userControl.Columns.Add(column2);

            return(userControl);
        }
        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);
        }
        protected override void ApplySettingsCore(StorableSettings settings)
        {
            base.ApplySettingsCore(settings);
            var allWms = settings.GlobalSettings.Where(s => s.Key.Contains("Wms")).ToArray();

            if (allWms.Length > 0)
            {
                RootDataRepositoryItem.Children.Clear();
                foreach (var item in allWms)
                {
                    WmsDataRepositoryItem wmsDataItem = new WmsDataRepositoryItem();
                    var tmpSettings = new StorableSettings();
                    tmpSettings.GlobalSettings["Wms"] = item.Value;
                    wmsDataItem.ApplySettings(tmpSettings);
                    RootDataRepositoryItem.Children.Add(wmsDataItem);
                }
            }
        }
Beispiel #4
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);
            }
        }