private void DoDownload(object sender, EventArgs args) { var hasPointsToDownload = false; foreach (var layer in App.Map.MapFrame.GetAllLayers()) { if (!layer.Checked || !SearchLayerModifier.IsSearchLayer(layer)) { continue; } var featureLayer = (IFeatureLayer)layer; if (featureLayer.Selection.Count == 0) { continue; } hasPointsToDownload = true; StartDownloading(featureLayer, featureLayer.Selection.ToFeatureList()); break; } if (!hasPointsToDownload) { MessageBox.Show("No sites are selected. Please select sites for downloading data in the map.", "No selected sites", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void DoSeriesControlUpdateValues(object sender, EventArgs e) { var selectedSeriesID = SeriesControl.SelectedSeriesID; if (selectedSeriesID == 0) { return; } // Find by selectedSeriesID layer and feature to update. // We can do it, because value of SeriesID column is unique for all features in the map. foreach (var layer in App.Map.MapFrame.GetAllLayers()) { if (!SearchLayerModifier.IsSearchLayer(layer)) { continue; } var featureLayer = (IFeatureLayer)layer; if (featureLayer.DataSet.GetColumn("SeriesID") == null) { continue; } var featureToDownload = featureLayer.DataSet.Features .FirstOrDefault(feature => feature.DataRow["SeriesID"] != DBNull.Value && feature.DataRow["SeriesID"].ToString() == selectedSeriesID.ToString(CultureInfo.InvariantCulture)); if (featureToDownload != null) { StartDownloading(featureLayer, new[] { featureToDownload }); } } }
private void Update_Click(object sender, EventArgs e) { if (ShowIfBusy()) { return; } var dataSitesGroup = App.Map.GetDataSitesLayer(); if (dataSitesGroup == null) { return; } _layersToUpdate.Clear(); foreach (var layer in dataSitesGroup.Layers) { var featureLayer = layer as IFeatureLayer; if (!layer.Checked || !SearchLayerModifier.IsSearchLayer(layer)) { continue; } _layersToUpdate.Add(featureLayer); } DownloadManager.Completed += OnDownloadManagerOnCompleted; ProcessUpdate(); }
private void DownloadManager_Completed(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e) { if (e.Cancelled) { return; } var dManager = DownloadManager; var themeName = dManager.Information.StartArgs.DataTheme.Name; var _themeManager = new ThemeManager(); IFeatureSet featureSet; try { featureSet = _themeManager.GetFeatureSet(themeName); } catch (ArgumentException) { // No such theme in the database featureSet = null; } if (featureSet == null) { // in theory this condition always will be false if (dManager.Information.WithError != dManager.Information.TotalSeries) { MessageBox.Show("Theme not found, but some series was saved!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return; } featureSet.FillAttributes(); var sourceLayer = (IFeatureLayer)dManager.Information.StartArgs.Tag; var lm = SearchLayerModifier.Create(sourceLayer, (Map)App.Map, this); Debug.Assert(lm != null); lm.UpdateDataTable(featureSet, DownloadManager); lm.UpdateSymbolizing(); lm.UpdateContextMenu(); // Check for DataAggregation var aggPlugin = App.GetExtension <IDataAggregationPlugin>(); if (aggPlugin != null) { aggPlugin.AttachLayerToPlugin(sourceLayer); } // Refresh list of the time series in the table and graph in the main form SeriesControl.RefreshSelection(); }
void _map_MouseMove(object sender, MouseEventArgs e) { if (!_parentPlugin.ShowPopups) { return; } var visibleLayers = _map.GetAllLayers().OfType <IFeatureLayer>() .Where(layer => layer.IsVisible && SearchLayerModifier.IsSearchLayer(layer)) .ToList(); if (visibleLayers.Count == 0) { HideToolTip(); return; } var rtol = new Rectangle(e.X - 8, e.Y - 8, 0x10, 0x10); var tolerant = _map.PixelToProj(rtol); var pInfos = visibleLayers.Select(layer => Identify(layer, tolerant)) .Where(pInfo => !pInfo.IsEmpty).ToList(); if (pInfos.Count == 0) { HideToolTip(); return; } // If already visible same tooltip, not show again var control = (CustomToolTipControl)toolTip.Content; if (toolTip.Visible && control.IsInfoAlreadySetted(pInfos)) { return; } HideToolTip(); control.SetInfo(pInfos); Point adjustedLocation = adjustPopupLocation(e.Location); toolTip.Show(_map, toolTip.Parent.PointToClient(adjustedLocation)); }
private void AttachLayerToPlugin(ILayer layer, bool isDeserializing = false) { if (SearchLayerModifier.IsSearchLayer(layer)) { if (_searchLayerInformer == null) { // Create popup-informer var extractor = new HISCentralInfoExtractor(new Lazy <Dictionary <string, string> >(() => HisCentralServices.Services)); _searchLayerInformer = new SearchLayerInformer(extractor, (Map)App.Map); } var lm = SearchLayerModifier.Create(layer, (Map)App.Map, this); Debug.Assert(lm != null); if (!isDeserializing) { lm.UpdateLabeling(); lm.UpdateSymbolizing(); } lm.UpdateContextMenu(); btnDownload1.Enabled = true; btnDownload2.Enabled = true; } var group = layer as IGroup; if (group != null) { group.LayerAdded += Map_LayerAdded; group.LayerRemoved += Layers_LayerRemoved; foreach (var child in group.GetLayers()) { AttachLayerToPlugin(child, isDeserializing); } } }
private void AttachLayerToPlugin(ILayer layer, bool isDeserializing = false) { if (SearchLayerModifier.IsSearchLayer(layer)) { if (_searchLayerInformer == null) { // Create popup-informer var extractor = new HISCentralInfoExtractor(new Lazy <Dictionary <string, string> >(() => new HisCentralServices(App).Services)); _searchLayerInformer = new SearchLayerInformer(this, extractor, (Map)App.Map); } var lm = SearchLayerModifier.Create(layer, (Map)App.Map, this); Debug.Assert(lm != null); if (!isDeserializing) { lm.UpdateLabeling(); lm.UpdateSymbolizing(); } lm.UpdateContextMenu(); if (_btnDownloadInSearch != null) { _btnDownloadInSearch.Enabled = true; } if (_btnSearchOptions != null) { _btnSearchOptions.Enabled = true; } //if (_btnSearchOptions != null) //{ // _btnSearchOptions.Enabled = true; //} if (_btnSearchResults != null) { _btnSearchResults.Enabled = true; } if (_btnShowPopups != null) { if (!_btnShowPopups.Enabled) { _btnShowPopups.Enabled = true; } if (!ShowPopups) { _btnShowPopups.Toggle(); } } //_btnDownload.Enabled = true; //_btnUpdate.Enabled = true; //_btnShowPopups.Enabled = true; } var group = layer as IGroup; if (group != null) { group.LayerAdded += Map_LayerAdded; group.LayerRemoved += Layers_LayerRemoved; foreach (var child in group.GetLayers()) { AttachLayerToPlugin(child, isDeserializing); } } }