private void EditColumnClick(object sender, RoutedEventArgs e) { AddNewCsvColumnViewModel columnViewModel = sender.GetDataContext <AddNewCsvColumnViewModel>(); if (columnViewModel != null) { var columnTyps = viewModel.GetAvailableCsvColumnType(); if (!columnTyps.Contains(columnViewModel.SelectedCsvColumnType)) { columnTyps.Add(columnViewModel.SelectedCsvColumnType); } AddNewCsvColumnWindow addNewCsvColumnWindow = new AddNewCsvColumnWindow(columnTyps); addNewCsvColumnWindow.ViewModel.ColumnName = columnViewModel.ColumnName; addNewCsvColumnWindow.ViewModel.AliasName = columnViewModel.AliasName; addNewCsvColumnWindow.ViewModel.SelectedCsvColumnType = columnViewModel.SelectedCsvColumnType; if (addNewCsvColumnWindow.ShowDialog().GetValueOrDefault()) { int index = ViewModel.CsvColumns.IndexOf(columnViewModel); ViewModel.CsvColumns.Insert(index, addNewCsvColumnWindow.ViewModel); ViewModel.CsvColumns.RemoveAt(index + 1); addNewCsvColumnWindow.ViewModel.ChangedStatus = FeatureSourceColumnChangedStatus.Updated; if (!string.IsNullOrEmpty(columnViewModel.OriginalColumnName)) { addNewCsvColumnWindow.ViewModel.OriginalColumnName = columnViewModel.OriginalColumnName; } else { addNewCsvColumnWindow.ViewModel.OriginalColumnName = columnViewModel.ColumnName; } } } }
private void DeleteColumnClick(object sender, RoutedEventArgs e) { AddNewCsvColumnViewModel columnViewModel = sender.GetDataContext <AddNewCsvColumnViewModel>(); if (columnViewModel != null) { columnViewModel.ChangedStatus = FeatureSourceColumnChangedStatus.Deleted; } }
public AddNewCsvColumnWindow(Collection <CsvColumnType> columnTypes) { InitializeComponent(); if (!EditorUIPlugin.IsRelateAndAliasEnabled) { mainGrid.RowDefinitions[2].Height = new GridLength(0); } DataContext = new AddNewCsvColumnViewModel(columnTypes); txtColumnName.Focus(); }
private void LoadFromLayer(CsvFeatureLayer delimitedFeatureLayer) { bool iswkt = !string.IsNullOrEmpty(delimitedFeatureLayer.WellKnownTextColumnName); Collection <CsvColumnType> csvColumnTypes = new Collection <CsvColumnType>(); csvColumnTypes.Add(CsvColumnType.String); if (iswkt) { csvColumnTypes.Add(CsvColumnType.WKT); } else { csvColumnTypes.Add(CsvColumnType.Longitude); csvColumnTypes.Add(CsvColumnType.Latitude); } FileName = delimitedFeatureLayer.Name; OutputFolder = Path.GetDirectoryName(delimitedFeatureLayer.DelimitedPathFilename); delimitedFeatureLayer.SafeProcess(() => { foreach (FeatureSourceColumn item in delimitedFeatureLayer.QueryTools.GetColumns()) { AddNewCsvColumnViewModel addNewCsvColumnViewModel = new AddNewCsvColumnViewModel(csvColumnTypes); addNewCsvColumnViewModel.ColumnName = item.ColumnName; if (item.ColumnName == delimitedFeatureLayer.WellKnownTextColumnName) { addNewCsvColumnViewModel.SelectedCsvColumnType = CsvColumnType.WKT; } else if (item.ColumnName == delimitedFeatureLayer.XColumnName) { addNewCsvColumnViewModel.SelectedCsvColumnType = CsvColumnType.Longitude; } else if (item.ColumnName == delimitedFeatureLayer.YColumnName) { addNewCsvColumnViewModel.SelectedCsvColumnType = CsvColumnType.Latitude; } else { addNewCsvColumnViewModel.SelectedCsvColumnType = CsvColumnType.String; } allCsvColumns.Add(addNewCsvColumnViewModel); } }); DelimiterDictionary delimiterDictionary = new DelimiterDictionary(); if (delimiterDictionary.ContainsValue(delimitedFeatureLayer.Delimiter)) { SelectedDelimiter = delimiterDictionary.FirstOrDefault(item => item.Value == delimitedFeatureLayer.Delimiter); } else { SelectedDelimiter = delimiterDictionary.FirstOrDefault(item => item.Key == "Custom"); Delimiter = delimitedFeatureLayer.Delimiter; IsCustomDelimiterEnabled = false; } if (!iswkt) { SelectedShapeType = GeneralShapeFileType.Point; } else { delimitedFeatureLayer.SafeProcess(() => { Feature firstFeature = delimitedFeatureLayer.QueryTools.GetFeatureById("1", ReturningColumnsType.NoColumns); if (firstFeature != null) { BaseShape baseShape = firstFeature.GetShape(); if (baseShape is AreaBaseShape) { SelectedShapeType = GeneralShapeFileType.Area; } else if (baseShape is LineBaseShape) { SelectedShapeType = GeneralShapeFileType.Line; } else if (baseShape is PointBaseShape) { SelectedShapeType = GeneralShapeFileType.Point; } } else { SelectedShapeType = GeneralShapeFileType.Point; } }); } }
private static string GetSpecificColumnName(IEnumerable <AddNewCsvColumnViewModel> columns, CsvColumnType csvColumnType) { AddNewCsvColumnViewModel resultColumn = columns.FirstOrDefault(c => c.SelectedCsvColumnType == csvColumnType); return(resultColumn == null ? string.Empty : resultColumn.ColumnName); }