using GeoSigma.SigmaDrawerStyle; using GeoSigma.SigmaDrawerStyle.Converter; using SigmaDrawerElement; using SigmaDrawerStyle; using SqlSugar; using System.ComponentModel; using System.Drawing; using System.Drawing.Design; using System.Xml.Serialization; namespace GeoSigma.SigmaDrawerElement { #pragma warning disable SA1402 // File may only contain a single type #pragma warning disable SA1600 // Elements should be documented #pragma warning disable SA1649 // File name should match first type name [XmlRoot("Pcg")] [TypeConverter(typeof(PropertySorter))] public class WellSymbolTrack { private const string WellTrackCategory = "\t\t\t符号道"; private const string datasourceCategory = "\t数据源设置"; [XmlIgnore] [Category(WellTrackCategory)] [DisplayName("标题")] public string Title { get => WellTrack.Title.Font.Text; set => WellTrack.Title.Font.Text = value; } [XmlIgnore] [Category(WellTrackCategory)] [DisplayName("宽度")] public double Width { get => WellTrack.Width; set => WellTrack.Width = value; } [XmlIgnore] [Category(WellTrackCategory)] [DisplayName("填充")] [TypeConverter(typeof(YesNoConverter))] public bool IsFill { get => WellTrack.BackFill != 0; set => WellTrack.BackFill = value ? 1 : 0; } [XmlIgnore] [Category(WellTrackCategory)] [DisplayName("背景颜色")] [Editor(typeof(PropertyEditorColor), typeof(UITypeEditor))] public Color BackgroundColor { get => ColorTranslator2.FromHtml(WellTrack.BackColor); set => WellTrack.BackColor = ColorTranslator2.ToHtml(value); } [XmlIgnore] [Category(WellTrackCategory)] [DisplayName("道头字体")] [Editor(typeof(PropertyEditorWellFontEx), typeof(UITypeEditor))] public WellFontEx HeaderFont { get => WellTrack.Title.Font; set => WellTrack.Title.Font = value; } [XmlIgnore] [Category(datasourceCategory)] [DisplayName("数据表"), PropertyOrder(20)] [TypeConverter(typeof(dataSourceTableSymbolTrackConverter))] public string tableId { get { return tableInfoQuery.tableChsName(WellTrack.Data.RefTableId); } set { WellTrack.Data.RefTableId = tableInfoQuery.tableEngName(value); WellTrack.bRefreshWorkAreaData = true; WellTrack.Data.RefColId = ""; } } [XmlIgnore] [Category(datasourceCategory)] [DisplayName("数据字段"), PropertyOrder(21)] [TypeConverter(typeof(dataFieldSymbolTrackConverter))] public string columnId { get { return tableInfoQuery.getColumnChsNameFromEngName(WellTrack.Data.RefTableId, WellTrack.Data.RefColId); } set { WellTrack.Data.RefColId = tableInfoQuery.getColumnNameFromChsName(WellTrack.Data.RefTableId, value); WellTrack.bRefreshWorkAreaData = true; } } [Browsable(false)] [XmlAttribute("Version")] public string Version { get; set; } [Browsable(false)] [XmlElement("WellTrack")] public WellTrackWellTrack WellTrack { get; set; } } public static class DataServiceSybmolTrackTableFieldNames { public static string[] GetAvailableOptions(Object param1) { //string[] names = new string[0]; List namesList = new List(); if (param1 is WellSymbolTrack settings) { List collist = tableInfoQuery.getListTableColumn(settings.WellTrack.Data.RefTableId); foreach (EntityColumnInfo var in collist) { if (var.DbColumnName == null) continue; if (var.DbColumnName == "") continue; if (var.DbColumnName == "ID" || var.DbColumnName == "XHID") continue; if (var.UnderType.Name != "String") continue; namesList.Add(var.ColumnDescription); } } return namesList.ToArray(); //return names; } } public class dataFieldSymbolTrackConverter : GenericWellOptionsConverter { public dataFieldSymbolTrackConverter() : base(settings => DataServiceSybmolTrackTableFieldNames.GetAvailableOptions(settings)) { } } public class dataSourceTableSymbolTrackConverter : GenericWellOptionsConverter { public dataSourceTableSymbolTrackConverter() : base(settings => DataServiceDataSourceTableNames.GetAvailableOptions(settings)) { } } #pragma warning restore SA1649 // File name should match first type name #pragma warning restore SA1600 // Elements should be documented #pragma warning restore SA1402 // File may only contain a single type }