/// <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; }
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; }
/// <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; }