Ejemplo n.º 1
0
        protected virtual void BuildDataSourceTreeView(TreeNode dataSourceNode, ViewDataSource dataSource, string path)
        {
            foreach (ViewDataMember field in dataSource.Fields)
            {
                var fieldNode = new TreeNode(field.Caption);

                field.DataFeed = dataSource.Name;
                field.Path     = $"{path}{field.Name}";
                var mapItem = new DataFormatMapItem()
                {
                    DataMember = field,
                };

                fieldNode.Tag = mapItem;

                dataSourceNode.Nodes.Add(fieldNode);
            }

            foreach (ViewDataSource dataList in dataSource.Lists)
            {
                var dataListPath = $"{path}{dataList.Caption}[]\\";
                var listNode     = new TreeNode(dataList.Caption + "[]")
                {
                    Tag = dataList
                };

                BuildDataSourceTreeView(listNode, dataList, dataListPath);

                dataSourceNode.Nodes.Add(listNode);
            }

            foreach (ViewDataSource dataList in dataSource.NestedClasses)
            {
                var dataListPath = $"{path}{dataList.Caption}\\";
                var listNode     = new TreeNode(dataList.Caption)
                {
                    Tag = dataList
                };

                BuildDataSourceTreeView(listNode, dataList, dataListPath);

                dataSourceNode.Nodes.Add(listNode);
            }
        }
Ejemplo n.º 2
0
        protected virtual void BuildDataSourceTreeView(TreeNode dataSourceNode, ViewDataSource dataSource)
        {
            bool mapAdded = false;

            foreach (ViewDataMember viewDataMember in dataSource.Fields)
            {
                var dataFormatMapItem = new DataFormatMapItem()
                {
                    DataMember = viewDataMember
                };

                var fieldNode = new TreeNode(viewDataMember.Caption);

                if (!MapService.Map.ContainsKey(viewDataMember) || MapService.Map[viewDataMember].Name == "Default")
                {
                    var displayFormat = MapService.DisplayFormats.FirstOrDefault(f => f.Name == viewDataMember.Name);

                    if (displayFormat != null)
                    {
                        MapService.Map[viewDataMember] = displayFormat;
                    }
                    else
                    {
                        var newViewDisplayFormat = new ViewDisplayFormat()
                        {
                            Name = viewDataMember.Name
                        };

                        if (viewDataMember.Type.Name.ToString() == "String")
                        {
                            newViewDisplayFormat.Sample = "Abcdefg Hijklmnop";
                        }
                        else if (viewDataMember.Type.Name.ToString() == "Int32")
                        {
                            newViewDisplayFormat.Sample = "12345";
                            newViewDisplayFormat.Format = "###";
                        }
                        else if (viewDataMember.Type.Name.ToString() == "Decimal" || viewDataMember.Type.Name.ToString() == "Double")
                        {
                            newViewDisplayFormat.Sample = "123.456";
                            newViewDisplayFormat.Format = "###.##0";
                        }
                        else if (viewDataMember.Type.Name.ToString() == "TimeSpan")
                        {
                            newViewDisplayFormat.Sample = "12:34:56.78";
                            newViewDisplayFormat.Format = "hh\\:mm\\:ss.fff";
                        }
                        else if (viewDataMember.Type.Name.ToString() == "Boolean")
                        {
                            newViewDisplayFormat.Sample = "True";
                        }
                        else if (viewDataMember.Type.Name.ToString() == "Boolean")
                        {
                            newViewDisplayFormat.Sample = "True";
                        }
                        else if (viewDataMember.Type.Name.ToString() == "TrackState")
                        {
                            newViewDisplayFormat.Sample = "Caution";
                        }
                        else if (viewDataMember.Type.Name.ToString() == "SeriesType")
                        {
                            newViewDisplayFormat.Sample = "XFinity";
                        }
                        else if (viewDataMember.Type.Name.ToString() == "RunType")
                        {
                            newViewDisplayFormat.Sample = "Practice";
                        }
                        else if (viewDataMember.Type.Name.ToString() == "VehicleStatus")
                        {
                            newViewDisplayFormat.Sample = "OnTrack";
                        }
                        else
                        {
                            Console.WriteLine($"Unrecognized field type: {viewDataMember.Type.Name.ToString()}, field: {viewDataMember.Name}");
                        }

                        MapService.AddNewFormatToMap(viewDataMember, newViewDisplayFormat);

                        mapAdded = true;
                    }
                }

                var viewDisplayFormat = MapService.Map[viewDataMember];

                dataFormatMapItem.DisplayFormat = viewDisplayFormat;

                fieldNode.Tag = dataFormatMapItem;

                UpdateNodeState(fieldNode, viewDisplayFormat);

                dataSourceNode.Nodes.Add(fieldNode);
            }

            if (mapAdded)
            {
                MapService.Save();
            }

            foreach (ViewDataSource dataList in dataSource.Lists)
            {
                var listNode = new TreeNode(dataList.Caption + "[]")
                {
                    Tag                = dataList,
                    ImageIndex         = ClosedFolderImageIndex,
                    SelectedImageIndex = ClosedFolderImageIndex,
                };

                BuildDataSourceTreeView(listNode, dataList);

                dataSourceNode.Nodes.Add(listNode);
            }

            foreach (ViewDataSource dataList in dataSource.NestedClasses)
            {
                var listNode = new TreeNode(dataList.Caption)
                {
                    Tag                = dataList,
                    ImageIndex         = ClosedFolderImageIndex,
                    SelectedImageIndex = ClosedFolderImageIndex,
                };

                BuildDataSourceTreeView(listNode, dataList);

                dataSourceNode.Nodes.Add(listNode);
            }
        }