Example #1
0
        public static FrameworkElement GetHelpButton(string resourceKey, HelpButtonMode helpButtonMode, Uri iconSource, RelayCommand clickCommand)
        {
            string helpUri = GisEditor.LanguageManager.GetStringResource(resourceKey);

            return(HelpButtonHelper.GetHelpButton(helpUri, helpButtonMode, iconSource, clickCommand));
        }
        private void UserControl_Loaded(object sender, System.Windows.RoutedEventArgs e)
        {
            featureLayers = new Collection <FeatureLayer>(featureLayers.Where(l =>
            {
                var plugin = GisEditor.LayerManager.GetLayerPlugins(l.GetType()).FirstOrDefault() as FeatureLayerPlugin;
                return(plugin != null);
            }).ToList());
            if (isEditable)
            {
                string helpUri = GisEditor.LanguageManager.GetStringResource("EditDataHelp");
                HelpContainer.Content = HelpButtonHelper.GetHelpButton(helpUri, HelpButtonMode.IconOnly);
            }
            else
            {
                string helpUri = GisEditor.LanguageManager.GetStringResource("ViewDataHelp");
                HelpContainer.Content = HelpButtonHelper.GetHelpButton(helpUri, HelpButtonMode.IconOnly);
            }

            LoadingUriColumnsDataViewerUserControlEventArgs args = new LoadingUriColumnsDataViewerUserControlEventArgs();

            foreach (var item in linkColumnNames)
            {
                args.UriColumnNames.Add(item.Key, item.Value);
            }
            OnLoadingUriColumns(args);
            if (args.UriColumnNames.Count > 0)
            {
                foreach (var item in args.UriColumnNames)
                {
                    linkColumnNames[item.Key] = item.Value;
                }
            }

            viewModel = new DataViewerViewModel(map, featureLayers, selectedFeatureLayer, isHighlightFeatureOnly, isEditable, linkColumnNames);
            this.deleteColumn.Visibility = viewModel.EditVisible;
            this.DataContext             = viewModel;
            viewModel.EditDataChanges.CollectionChanged += EditDataChanges_CollectionChanged;

            scrollBar = GetVisualChild <ScrollBar>(dg);
            scrollBar.LostMouseCapture += new MouseEventHandler(scrollBar_LostMouseCapture);
            Window parentWindow = Parent as Window;

            ContextMenu contextMenu = new ContextMenu();

            MenuItem exportItem = new MenuItem();

            exportItem.Header = GisEditor.LanguageManager.GetStringResource("ViewDataExportButton");

            exportItem.Icon = new Image {
                Source = new BitmapImage(new Uri("/GisEditorInfrastructure;component/Images/exporttoexcel.png", UriKind.RelativeOrAbsolute)), Width = 16, Height = 16
            };
            exportItem.Click += new RoutedEventHandler(ExportItem_Click);

            MenuItem menuItem = new MenuItem()
            {
                Header = GisEditor.LanguageManager.GetStringResource("DataViewerUserControlExportSelectedData")
            };

            menuItem.Icon = new Image {
                Source = new BitmapImage(new Uri("/GisEditorInfrastructure;component/Images/exporttoexcel.png", UriKind.RelativeOrAbsolute)), Width = 16, Height = 16
            };
            menuItem.Click += new RoutedEventHandler(MenuItem_Click);

            MenuItem copyRowMenuItem = new MenuItem()
            {
                Header = GisEditor.LanguageManager.GetStringResource("DataViewerUserControlCopySelectedRowLabel")
            };

            copyRowMenuItem.Icon = new Image {
                Source = new BitmapImage(new Uri("/GisEditorInfrastructure;component/Images/copytoexcel.png", UriKind.RelativeOrAbsolute)), Width = 16, Height = 16
            };
            copyRowMenuItem.Click += new RoutedEventHandler(CopyRowMenuItem_Click);

            MenuItem copyCellMenuItem = new MenuItem()
            {
                Header = GisEditor.LanguageManager.GetStringResource("DataViewerUserControlCopySelectedCellLabel")
            };

            copyCellMenuItem.Icon = new Image {
                Source = new BitmapImage(new Uri("/GisEditorInfrastructure;component/Images/copytoexcel.png", UriKind.RelativeOrAbsolute)), Width = 16, Height = 16
            };
            copyCellMenuItem.Click += new RoutedEventHandler(CopyCellMenuItem_Click);

            contextMenu.Items.Add(exportItem);
            contextMenu.Items.Add(menuItem);
            contextMenu.Items.Add(copyRowMenuItem);
            contextMenu.Items.Add(copyCellMenuItem);
            dg.ContextMenu = contextMenu;

            if (parentWindow != null)
            {
                parentWindow.Closing += ParentWindow_Closing;
            }
        }
Example #3
0
        public static void OpenQuery()
        {
            if (!isOpen)
            {
                if (featureLayersDataSource == null)
                {
                    featureLayersDataSource = new ObservableCollection <CheckableItemViewModel <FeatureLayer> >();
                }

                var quickFindUserControl = new SimpleQueryUserControl {
                    Margin = new Thickness(5)
                };
                var advancedQueryUserControl = new AdvancedQueryUserControl();

                foreach (var item in SavedConditions)
                {
                    if (!advancedQueryUserControl.ViewModel.Conditions.Contains(item))
                    {
                        advancedQueryUserControl.ViewModel.Conditions.Add(item);
                    }
                }

                if (!advancedQueryUserControl.ViewModel.IsQueryMatchModeEnabled)
                {
                    advancedQueryUserControl.ViewModel.SelectedQueryMatchMode = QueryMatchMode.Any;
                }

                var quickFindViewModel = quickFindUserControl.DataContext as SimpleQueryViewModel;
                if (quickFindViewModel != null)
                {
                    quickFindViewModel.AddressToSearch = addressToSearch;
                    foreach (var item in featureLayersDataSource)
                    {
                        var result = quickFindViewModel.AvailableFeatureLayers.FirstOrDefault(checkableItem => checkableItem.Value == item.Value);
                        if (result != null)
                        {
                            result.IsChecked = item.IsChecked;
                        }
                    }
                }

                TabControl tabControl = new TabControl()
                {
                    Width = 400, Height = 385
                };
                tabControl.Items.Add(new TabItem()
                {
                    Content = quickFindUserControl, Header = GisEditor.LanguageManager.GetStringResource("FindFeaturesWindowQuickFindTab")
                });
                tabControl.Items.Add(new TabItem()
                {
                    Content = advancedQueryUserControl, Header = GisEditor.LanguageManager.GetStringResource("FindFeaturesWindowAdvancedQueryTab")
                });
                tabControl.Margin = new Thickness(5);

                string           helpUri    = GisEditor.LanguageManager.GetStringResource("FindFeaturesHelp");
                FrameworkElement helpButton = HelpButtonHelper.GetHelpButton(helpUri, HelpButtonMode.IconOnly);
                helpButton.HorizontalAlignment = HorizontalAlignment.Right;
                helpButton.VerticalAlignment   = VerticalAlignment.Top;
                helpButton.Margin = new Thickness(0, 5, 5, 0);

                Grid tabControlContainer = new Grid();
                tabControlContainer.Children.Add(tabControl);
                tabControlContainer.Children.Add(helpButton);

                instance = new QueryFeatureLayerWindow()
                {
                    Title         = GisEditor.LanguageManager.GetStringResource("FindFeaturesWindowTitle"),
                    Content       = tabControlContainer,
                    ResizeMode    = System.Windows.ResizeMode.NoResize,
                    Style         = Application.Current.FindResource("WindowStyle") as System.Windows.Style,
                    SizeToContent = SizeToContent.WidthAndHeight,
                    Tag           = GisEditor.ActiveMap
                };

                instance.Closing += (s, e) =>
                {
                    isOpen = false;
                    SavedConditions.Clear();
                    foreach (var item in advancedQueryUserControl.ViewModel.Conditions)
                    {
                        SavedConditions.Add(item);
                    }
                    addressToSearch = quickFindViewModel.AddressToSearch;
                    featureLayersDataSource.Clear();
                    foreach (var item in quickFindViewModel.AvailableFeatureLayers)
                    {
                        featureLayersDataSource.Add(item);
                    }
                };

                instance.Show();
                isOpen = true;
            }
        }