using System.ComponentModel; using System.Drawing; using System.Drawing.Design; using System.Xml.Serialization; using GeoSigma.SigmaDrawerStyle; using GeoSigma.SigmaDrawerStyle.Converter; using SigmaDrawerStyle; 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 WellLithologyTrack { private const string LithologyTrackCategory = "\t\t岩性道"; private const string TrackObjectSettingsCategory = "\t道内对象设置"; // --- 岩性道 --- [XmlIgnore] [Category(LithologyTrackCategory)] [DisplayName("标题")] [PropertyOrder(0)] public string Title { get => LithologyTrack.Title.Font.Text; set => LithologyTrack.Title.Font.Text = value; } [XmlIgnore] [Category(LithologyTrackCategory)] [DisplayName("宽度")] [PropertyOrder(1)] public double Width { get => LithologyTrack.Width; set => LithologyTrack.Width = value; } [XmlIgnore] [Category(LithologyTrackCategory)] [DisplayName("填充")] [PropertyOrder(2)] [TypeConverter(typeof(YesNoConverter))] public bool IsFill { get => LithologyTrack.BackFill != 0; set => LithologyTrack.BackFill = (value ? 1 : 0); } [XmlIgnore] [Category(LithologyTrackCategory)] [DisplayName("背景颜色")] [PropertyOrder(3)] [Editor(typeof(PropertyEditorColor), typeof(UITypeEditor))] public Color BackgroundColor { get => ColorTranslator2.FromHtml(LithologyTrack.BackColor); set => LithologyTrack.BackColor = ColorTranslator2.ToHtml(value); } [XmlIgnore] [Category(LithologyTrackCategory)] [DisplayName("道头字体")] [PropertyOrder(4)] [Editor(typeof(PropertyEditorWellFontEx), typeof(UITypeEditor))] public WellFontEx HeaderFont { get => LithologyTrack.Title.Font; set => LithologyTrack.Title.Font = value; } // --- 道内对象设置 --- [XmlIgnore] [Category(TrackObjectSettingsCategory)] [DisplayName("油气性宽度百分比")] [PropertyOrder(5)] public double OilGasWidthRatio { get => LithologyTrack.OilOccurenceColumnWidth; set => LithologyTrack.OilOccurenceColumnWidth = value; } [XmlIgnore] [Category(TrackObjectSettingsCategory)] [DisplayName("单位符号厚度")] [PropertyOrder(6)] public double UnitSymbolThickness { get => LithologyTrack.BaseHeight; set => LithologyTrack.BaseHeight = value; } [XmlIgnore] [Category(TrackObjectSettingsCategory)] [DisplayName("单个符号充填")] [PropertyOrder(7)] [TypeConverter(typeof(YesNoConverter))] public bool IsSingleSymbolFill { get => LithologyTrack.SingleLitho; set => LithologyTrack.SingleLitho = value; } [XmlIgnore] [Category(TrackObjectSettingsCategory)] [DisplayName("是否显示岩性")] [PropertyOrder(8)] [TypeConverter(typeof(YesNoConverter))] public bool IsShowLithology { get => !LithologyTrack.NotShowLitho; set => LithologyTrack.NotShowLitho = !value; } [XmlIgnore] [Category(TrackObjectSettingsCategory)] [DisplayName("显示岩性颜色")] [PropertyOrder(9)] [TypeConverter(typeof(YesNoConverter))] public bool IsShowLithologyColor { get => !LithologyTrack.NoneColorLitho; set => LithologyTrack.NoneColorLitho = !value; } [XmlIgnore] [Category(TrackObjectSettingsCategory)] [DisplayName("显示含油气性")] [PropertyOrder(10)] [TypeConverter(typeof(YesNoConverter))] public bool IsShowOilGasProperty { get => LithologyTrack.IndependOilOccurenceColumn; set => LithologyTrack.IndependOilOccurenceColumn = value; } [XmlIgnore] [Category(TrackObjectSettingsCategory)] [DisplayName("控制岩油性宽度")] [PropertyOrder(11)] [TypeConverter(typeof(YesNoConverter))] public bool IsControlOilGasWidth { get => LithologyTrack.LithoDependWidth; set => LithologyTrack.LithoDependWidth = value; } [XmlIgnore] [Category(TrackObjectSettingsCategory)] [DisplayName("合油气性在道右边")] [PropertyOrder(12)] [TypeConverter(typeof(YesNoConverter))] public bool IsOilGasOnRight { get => !LithologyTrack.LeftLitho; set => LithologyTrack.LeftLitho = !value; } [XmlAttribute("Version")] [Browsable(false)] public string Version { get; set; } [XmlElement("WellTrack")] [Browsable(false)] public WellTrackWellTrack LithologyTrack { get; set; } } #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 }