using System; using System.ComponentModel; using System.Drawing; using System.Drawing.Design; using System.Xml.Serialization; using GeoSigma; using GeoSigma.SigmaDrawerElement; using GeoSigma.SigmaDrawerStyle; using GeoSigma.SigmaDrawerStyle.Converter; using SigmaDrawerStyle; using System.Collections.Generic; using System.Globalization; using System.Linq; //using PropertyEditorColor = GeoSigma.SigmaDrawerStyle.PropertyEditorColor; namespace 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 WellCycleTrack : WellObjectXmlBase { private const string WellTrackCategory = "\t\t旋回道"; private const string TrackObjectSettingsCategory = "\t道内对象设置"; private const string OtherCategory = "\t其它"; [XmlIgnore] [Category(WellTrackCategory)] [DisplayName("标题")] [PropertyOrder(0)] public string Title { get => WellTrack.Title.Font.Text; set => WellTrack.Title.Font.Text = value; } [XmlIgnore] [Category(WellTrackCategory)] [DisplayName("宽度")] [PropertyOrder(1)] public double Width { get => WellTrack.Width; set => WellTrack.Width = value; } [XmlIgnore] [Category(WellTrackCategory)] [DisplayName("填充")] [PropertyOrder(2)] [TypeConverter(typeof(YesNoConverter))] public bool IsFilled { get => WellTrack.BackFill != 0; set => WellTrack.BackFill = value ? 1 : 0; } [XmlIgnore] [Category(WellTrackCategory)] [DisplayName("背景颜色")] [Editor(typeof(PropertyEditorWellFontEx), typeof(UITypeEditor))] [PropertyOrder(3)] [Editor(typeof(PropertyEditorColor), typeof(UITypeEditor))] public Color BackgroundColor { get => ColorTranslator2.FromHtml(WellTrack.BackColor); set => WellTrack.BackColor = ColorTranslator2.ToHtml(value); } [XmlIgnore] [Category(WellTrackCategory)] [DisplayName("道头字体")] [PropertyOrder(4)] [Editor(typeof(PropertyEditorWellFontEx), typeof(UITypeEditor))] public WellFontEx HeaderFont { get => WellTrack.Title.Font; set => WellTrack.Title.Font = value; } // 通内对象设置 [XmlIgnore] [Category(TrackObjectSettingsCategory)] [DisplayName("边框线")] [PropertyOrder(5)] [Editor(typeof(PropertyEditorWellCurveStyle), typeof(UITypeEditor))] public WellLineStyle BorderLine { get => LayerStyleHelper.GetWellLineStyle(WellTrack.LayerStyle); set => LayerStyleHelper.SetWellLineStyle(WellTrack.LayerStyle, value); } [XmlIgnore] [Category(TrackObjectSettingsCategory)] [DisplayName("背景颜色")] [PropertyOrder(6)] [Editor(typeof(PropertyEditorColor), typeof(UITypeEditor))] public Color ObjectBackgroundColor { get => ColorTranslator2.FromHtml(WellTrack.LayerStyle.BackColor); set => WellTrack.LayerStyle.BackColor = ColorTranslator2.ToHtml(value); } [XmlIgnore] [Category(TrackObjectSettingsCategory)] [DisplayName("字体")] [PropertyOrder(7)] [Editor(typeof(PropertyEditorWellFontEx), typeof(UITypeEditor))] public WellFontEx ObjectFont { get => LayerStyleHelper.GetFontEx(WellTrack.LayerStyle); set => LayerStyleHelper.SetFontEx(WellTrack.LayerStyle, value); } [XmlIgnore] [Category(OtherCategory)] [DisplayName("旋回设置"), PropertyOrder(8)] [TypeConverter(typeof(cycleDataTypeConverter))] public string cycleDataType { get => WellTrack.Data.RefTableId; set { WellTrack.bRefreshWorkAreaData = true; WellTrack.Data.RefTableId = value; } } [XmlAttribute("Version")] [Browsable(false)] public string Version { get; set; } [XmlElement("WellTrack")] [Browsable(false)] public WellTrackWellTrack WellTrack { get; set; } } public class cycleDataTypeConverter : GenericStringMapConverter { protected override Dictionary ValueMap => new Dictionary(StringComparer.OrdinalIgnoreCase) { {WellObjectBaseInfo.CycleTableTypes[(int)(WellObjectBaseInfo.eCycleDataType.CycleLongterm)],"长期旋回" }, { WellObjectBaseInfo.CycleTableTypes[(int)(WellObjectBaseInfo.eCycleDataType.CycleMediumterm)],"中期旋回"} , { WellObjectBaseInfo.CycleTableTypes[(int)(WellObjectBaseInfo.eCycleDataType.CycleShortterm)],"短期旋回"}}; protected override string[] GetOptions(WellCycleTrack settings) { return new[] { "短期旋回", "中期旋回", "长期旋回" }; } } #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 }