private void featuresList_SelectionChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { FeatureViewModel entity = featuresList.SelectedValue as FeatureViewModel; if (entity != null) { e.Handled = true; ViewModel.SelectedEntity = entity; var overlay = GisEditor.SelectionManager.GetSelectionOverlay(); if (overlay != null) { overlay.StandOutHighlightFeatureLayer.InternalFeatures.Clear(); if (ViewModel.FeatureEntities.SelectMany(l => l.FoundFeatures).Any(en => en == entity)) { overlay.StandOutHighlightFeatureLayer.InternalFeatures.Add(entity.Feature); } GisEditor.ActiveMap.Refresh(overlay); } } else { FeatureLayerViewModel layerEntity = featuresList.SelectedValue as FeatureLayerViewModel; if (layerEntity != null) { var featureEntity = layerEntity.FoundFeatures.FirstOrDefault(); if (featureEntity != null) { featureEntity.IsSelected = true; ViewModel.SelectedEntity = featureEntity; } } } }
public FeatureAttributeWindow(Dictionary <FeatureLayer, Collection <Feature> > features, bool alwaysPrompt) { InitializeComponent(); Closing += FeatureAttributeWindow_Closing; chbPrompt.IsChecked = alwaysPrompt; Collection <FeatureLayerViewModel> layerEntities = new Collection <FeatureLayerViewModel>(); foreach (var item in features) { FeatureLayerViewModel featureLayerModel = new FeatureLayerViewModel(); featureLayerModel.LayerName = item.Key.Name; foreach (var feature in item.Value) { featureLayerModel.FoundFeatures.Add(new FeatureViewModel(feature, item.Key)); } layerEntities.Add(featureLayerModel); } featuresList.ItemsSource = layerEntities; if (layerEntities.Count > 0) { layerEntities[0].FoundFeatures.FirstOrDefault().IsSelected = true; } DataGridCellEditEndingDelegate = GridCellEditing; }
public void RefreshFeatureEntities(Dictionary <FeatureLayer, Collection <Feature> > selectedFeatureEntities) { FeatureEntities.Clear(); SelectedEntity = null; Application.Current.Dispatcher.BeginInvoke(() => { FeatureEntities.Clear(); foreach (var item in selectedFeatureEntities) { FeatureLayerViewModel entity = new FeatureLayerViewModel { LayerName = item.Key.Name }; foreach (var tmpFeature in item.Value) { entity.FoundFeatures.Add(new FeatureViewModel(tmpFeature, item.Key)); } FeatureEntities.Add(entity); } if (FeatureEntities.Count > 0 && FeatureEntities[0].FoundFeatures.Count > 0) { selectedEntity = FeatureEntities[0].FoundFeatures[0]; RaisePropertyChanged(() => SelectedDataView); } }, System.Windows.Threading.DispatcherPriority.ApplicationIdle); }
private void FindFeatures(IEnumerable <FeatureLayer> selectedLayers) { IsBusy = true; foreach (var layer in selectedLayers) { Task.Factory.StartNew(() => { Collection <Feature> features = new Collection <Feature>(); layer.SafeProcess(() => { Collection <Feature> allFeatures = new Collection <Feature>(); allFeatures = layer.QueryTools.GetAllFeatures(layer.GetDistinctColumnNames()); var queriedFeatures = allFeatures.Where(f => { bool hasValue = f.ColumnValues.Values .Any(value => value.ToUpperInvariant().Contains(FindValue.ToUpperInvariant())); return(hasValue); }); foreach (var item in queriedFeatures) { features.Add(item); } }); FeatureLayerViewModel entity = new FeatureLayerViewModel { LayerName = layer.Name }; foreach (var tmpFeature in features) { entity.FoundFeatures.Add(new FeatureViewModel(tmpFeature, layer)); } Application.Current.Dispatcher.BeginInvoke(() => { if (!FeatureEntities.Any(f => f.LayerName == entity.LayerName) && entity.FoundFeatures.Count > 0) { FeatureEntities.Add(entity); if (FeatureEntities.Count > 0 && FeatureEntities[0].FoundFeatures.Count > 0) { selectedEntity = FeatureEntities[0].FoundFeatures[0]; RaisePropertyChanged(() => SelectedDataView); } } IsBusy = false; }, DispatcherPriority.ApplicationIdle); }); } }
private void featuresList_SelectionChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { FeatureViewModel entity = featuresList.SelectedValue as FeatureViewModel; if (entity != null) { e.Handled = true; } else { FeatureLayerViewModel layerEntity = featuresList.SelectedValue as FeatureLayerViewModel; if (layerEntity != null) { layerEntity.FoundFeatures.FirstOrDefault().IsSelected = true; } } OnSelectionFeatureChanged(e); }
private void MenuItem_Click(object sender, RoutedEventArgs e) { FeatureViewModel entity = featuresList.SelectedValue as FeatureViewModel; if (entity == null) { FeatureLayerViewModel layerEntity = featuresList.SelectedValue as FeatureLayerViewModel; if (layerEntity != null) { entity = layerEntity.FoundFeatures.FirstOrDefault(); } } FeatureWktWindow window = new FeatureWktWindow(entity) { WindowStyle = WindowStyle.ToolWindow }; window.ShowDialog(); }