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();
        }
Exemple #4
0
        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);
        }