using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Design;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;
using System.Xml.Serialization;
using GeoSigma.SigmaDrawerStyle;
using GeoSigma.SigmaDrawerStyle.Converter;
using SigmaDrawerElement;
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 WellInTracWaterInjectionProfile : baseInTrackObj
{
private static Dictionary AlignMap = new Dictionary()
{
{ HorizontalAlignment.Left, "Left" },
{ HorizontalAlignment.Right, "Right" },
{ HorizontalAlignment.Center, "Center" },
};
private const string ShotTrackCategory = "\t\t设置吸水剖面数据";
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("顶深")]
[PropertyOrder(0)]
public double TopDepth
{
get => WellTestLayer.Top;
set => WellTestLayer.Top = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("底深")]
[PropertyOrder(1)]
public double BottomDepth
{
get => WellTestLayer.Bottom;
set => WellTestLayer.Bottom = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("背景颜色")]
[PropertyOrder(2)]
[Editor(typeof(PropertyEditorColor), typeof(UITypeEditor))]
public Color BackgroundColor
{
get => ColorTranslator2.FromHtml(WellTestLayer.BackColor);
set => WellTestLayer.BackColor = ColorTranslator2.ToHtml(value);
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("字体")]
[PropertyOrder(3)]
[Editor(typeof(PropertyEditorWellFontEx), typeof(UITypeEditor))]
public WellFontEx HeaderFont
{
get => WellTestLayer.Font;
set => WellTestLayer.Font = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("名称")]
[PropertyOrder(4)]
public string name
{
get => WellTestLayer.Name;
set => WellTestLayer.Name = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("绝对吸水量")]
[PropertyOrder(5)]
public double WaterProducting
{
get => WellTestLayer.Injection;
set => WellTestLayer.Injection = value;
}
[XmlAttribute]
[Browsable(false)]
public int Version { get; set; }
[XmlElement("WaterInjectionLayer")]
[Browsable(false)]
public WaterInjectionLayer WellTestLayer { 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
public class WaterInjectionLayer
{
[XmlAttribute("Name")]
public string Name { get; set; }
[XmlAttribute("Top")]
public double Top { get; set; }
[XmlAttribute("Bottom")]
public double Bottom { get; set; }
[XmlAttribute("BackColor")]
public string BackColor { get; set; }
[XmlAttribute("Align")]
public string Align { get; set; }
[XmlAttribute("Injection")]
public double Injection { get; set; }
[XmlElement("Font")]
public WellFontEx Font { get; set; }
[XmlElement("RenderStyle")]
public WaterInjectionRenderStyle RenderStyle { get; set; }
}
public class WaterInjectionRenderStyle
{
[XmlAttribute("Type")]
public string Type { get; set; }
[XmlAttribute("LeftSpace")]
public double LeftSpace { get; set; }
[XmlAttribute("RightSpace")]
public double RightSpace { get; set; }
[XmlAttribute("ShowDepthText")]
public string ShowDepthText { get; set; } // "False" or "True" as string
[XmlAttribute("HideUnit")]
public string HideUnit { get; set; } // "False" or "True"
[XmlAttribute("ShowTextOptions")]
public string ShowTextOptions { get; set; } // e.g., "RelativeInjection, AbsoluteInjection"
[XmlAttribute("TextLineAlign")]
public string TextLineAlign { get; set; }
}
}