예제 #1
0
        /// <summary>
        /// Generates the parameters for particular driver.
        /// </summary>
        public static IEnumerable<BaseParameter> GenerateCreationOptions(this DatasourceDriver driver)
        {
            string options = driver.get_Metadata(GdalDriverMetadata.CreationOptionList);
            if (string.IsNullOrWhiteSpace(options))
            {
                return new List<BaseParameter>();
            }

            var list = DriverMetadata.ParseOptionList(options).ToList();

            var result = new List<BaseParameter>();

            var exclude = new[] { "boolean", "string-select" };

            result.AddRange(Generate(list.Where(o => o.Type.ToLower() == "boolean")));

            result.AddRange(Generate(list.Where(o => !exclude.Contains(o.Type.ToLower()))));

            result.AddRange(Generate(list.Where(o => o.Type.ToLower() == "string-select")));

            foreach (var p in result)
            {
                p.Name = p.DisplayName;
            }

            return result;
        }
예제 #2
0
        private void ShowOptions(DatasourceDriver driver, GdalDriverMetadata metadata,
                                 StronglyTypedGrid <DriverOption> grid, TabPageAdv tabPage)
        {
            string options    = driver.get_Metadata(metadata);
            bool   hasOptions = !string.IsNullOrWhiteSpace(options);

            if (hasOptions)
            {
                var list = DriverMetadata.ParseOptionList(options).OrderBy(o => o.Name).ToList();
                hasOptions      = list.Any();
                grid.DataSource = list;

                var cmn = grid.Adapter.GetColumn(item => item.UserDescription);
                if (cmn != null)
                {
                    cmn.Width = 0;      // to make it shrink
                }

                grid.AdjustColumnWidths();

                if (cmn != null && cmn.Width > DescriptionColumnWidth)
                {
                    cmn.Width = DescriptionColumnWidth;
                }

                grid.AdjustRowHeights();
            }

            tabPage.TabVisible = hasOptions;
        }
예제 #3
0
        /// <summary>
        /// Gets list of data types supported by driver according to metadata.
        /// </summary>
        public static IEnumerable<string> GetCreationDataTypes(this DatasourceDriver driver)
        {
            string s = driver.get_Metadata(GdalDriverMetadata.CreationDataTypes);

            IList<string> result;

            if (string.IsNullOrWhiteSpace(s))
            {
                result = GdalHelper.GetRasterDataTypes();
            }
            else
            {
                result = s.Split(new[] { ' ' }).ToList();
            }

            result.Insert(0, SameAsInputDataType);

            return result;
        }