private static void OnPortalChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { ArcGISPortalServiceSearchProvider provider = (ArcGISPortalServiceSearchProvider)d; ArcGISPortal oldPortal = e.OldValue as ArcGISPortal; ArcGISPortal newPortal = e.NewValue as ArcGISPortal; // Unhook from old portal if (oldPortal != null) { oldPortal.PropertyChanged -= provider.Portal_PropertyChanged; } if (newPortal != null) { // Initialize display name if portal is initialized. Otherwise, listen for property changes // and wait for portal initialization. if (newPortal.IsInitialized && !provider.isDisplayNameInitialized()) { provider.initDisplayName(); } else if (!newPortal.IsInitialized) { newPortal.PropertyChanged += provider.Portal_PropertyChanged; } } provider.OnPropertyChanged("Portal"); }
// Creates a default set of searches and adds them to the selected set private void initializeDefaultProviders() { // Add provider for place search ArcGISLocatorPlaceSearchProvider placeSearch = new ArcGISLocatorPlaceSearchProvider(_map, "http://geocode.arcgis.com/ArcGIS/rest/services/World/GeocodeServer"); Properties.SetDescription(placeSearch, placeSearch.GetDescription()); SelectedSearchProviders.Add(placeSearch); // Add provider for ArcGIS Portal search ArcGISPortalServiceSearchProvider portalSearch = new ArcGISPortalServiceSearchProvider(); Binding b = new Binding("Portal") { Source = MapApplication.Current }; BindingOperations.SetBinding(portalSearch, ArcGISPortalServiceSearchProvider.PortalProperty, b); Properties.SetDescription(portalSearch, portalSearch.GetDescription()); SelectedSearchProviders.Add(portalSearch); // Add provider for web search GoogleServiceSearchProvider webSearch = new GoogleServiceSearchProvider(); Properties.SetDescription(webSearch, webSearch.GetDescription()); SelectedSearchProviders.Add(webSearch); }
// Creates a default set of searches and adds them to the selected set private void initializeDefaultProviders() { // Add provider for place search ArcGISLocatorPlaceSearchProvider placeSearch = new ArcGISLocatorPlaceSearchProvider(_map, "http://geocode.arcgis.com/ArcGIS/rest/services/World/GeocodeServer"); Properties.SetDescription(placeSearch, placeSearch.GetDescription()); SelectedSearchProviders.Add(placeSearch); // Add provider for ArcGIS Portal search ArcGISPortalServiceSearchProvider portalSearch = new ArcGISPortalServiceSearchProvider(); Binding b = new Binding("Portal") { Source = MapApplication.Current }; BindingOperations.SetBinding(portalSearch, ArcGISPortalServiceSearchProvider.PortalProperty, b); Properties.SetDescription(portalSearch, portalSearch.GetDescription()); SelectedSearchProviders.Add(portalSearch); // Add provider for web search GoogleServiceSearchProvider webSearch = new GoogleServiceSearchProvider(); Properties.SetDescription(webSearch, webSearch.GetDescription()); SelectedSearchProviders.Add(webSearch); }
private void ViewerApplicationControl_ViewLoaded(object sender, EventArgs e) { if (View.Instance != null && BuilderApplication.Instance != null) BuilderApplication.Instance.LoadingOverlay = View.Instance.FindObjectInLayout("LoadingOverlay") as UIElement; SearchViewModel searchViewModel = BuilderSearchView.DataContext as SearchViewModel; if (searchViewModel.SearchProviders.Count > 0) return; ArcGISPortalServiceSearchProvider arcgisSearchProvider = new ArcGISPortalServiceSearchProvider() { Portal = MapApplication.Current.Portal }; ServiceSearchResultsView resultsView = arcgisSearchProvider.ResultsView as ServiceSearchResultsView; Style resultDetailsContainerStyle = Application.Current.Resources["PopupContentControl"] as Style; Style resultDetailsLeaderStyle = Application.Current.Resources["PopupLeader"] as Style; if (resultsView != null) { resultsView.ResultDetailsContainerStyle = resultDetailsContainerStyle; resultsView.ResultDetailsLeaderStyle = resultDetailsLeaderStyle; } searchViewModel.SearchProviders.Add(arcgisSearchProvider); GoogleServiceSearchProvider webSearchProvider = new GoogleServiceSearchProvider(); resultsView = webSearchProvider.ResultsView as ServiceSearchResultsView; if (resultsView != null) { resultsView.ResultDetailsContainerStyle = resultDetailsContainerStyle; resultsView.ResultDetailsLeaderStyle = resultDetailsLeaderStyle; } searchViewModel.SearchProviders.Add(webSearchProvider); BuilderSearchView.DataContext = searchViewModel; }