You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

235 lines
6.1 KiB
C#

1 month ago
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
/// <summary>
/// 射孔道
/// </summary>
[XmlRoot("Pcg")]
[TypeConverter(typeof(PropertySorter))]
public class WellInTrackCoring :baseInTrackObj
{
private const string ShotTrackCategory = "\t\t取心综合数据";
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("顶深")]
[PropertyOrder(0)]
public double TopDepth
{
get => coring.Top;
set => coring.Top = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("底深")]
[PropertyOrder(1)]
public double BottomDepth
{
get => coring.Bottom;
set => coring.Bottom = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("背景颜色")]
[PropertyOrder(2)]
[Editor(typeof(PropertyEditorColor), typeof(UITypeEditor))]
public Color BackgroundColor
{
get => ColorTranslator2.FromHtml(coring.BackBrush.BackColor);
set => coring.BackBrush.BackColor = ColorTranslator2.ToHtml(value);
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("名称")]
[PropertyOrder(3)]
public string Text
{
get => coring.Name;
set => coring.Name = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("筒次")]
[PropertyOrder(4)]
public int Times
{
get => coring.Times;
set => coring.Times = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("长度")]
[PropertyOrder(5)]
public double length
{
get => coring.Length;
set => coring.Length = value;
}
[XmlIgnore]
[PropertyOrder(6)]
[Category(ShotTrackCategory)]
[DisplayName("显示深度")]
[TypeConverter(typeof(YesNoConverter))]
public bool IsShowDepth
{
get
{
return (coring.TextOption & 1) == 1;
}
set
{
if(value)
{
coring.TextOption = coring.TextOption | 1;
}
else
{
coring.TextOption = coring.TextOption & ~1;
}
}
}
[XmlIgnore]
[PropertyOrder(7)]
[Category(ShotTrackCategory)]
[DisplayName("显示长度")]
[TypeConverter(typeof(YesNoConverter))]
public bool IsShowLength
{
get
{
return (coring.TextOption & 2) != 0;
}
set
{
if (value)
{
coring.TextOption = coring.TextOption | 2;
}
else
{
coring.TextOption = coring.TextOption & ~2;
}
}
}
[XmlIgnore]
[PropertyOrder(7)]
[Category(ShotTrackCategory)]
[DisplayName("显示收获率")]
[TypeConverter(typeof(YesNoConverter))]
public bool IsShowPercent
{
get
{
return (coring.TextOption & 4) != 0;
}
set
{
if (value)
{
coring.TextOption = coring.TextOption | 4;
}
else
{
coring.TextOption = coring.TextOption & ~4;
}
}
}
[XmlAttribute]
[Browsable(false)]
public int Version { get; set; }
[XmlElement("Coring")]
[Browsable(false)]
public Coring coring { 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 Coring
{
[XmlAttribute("Name")]
public string Name { get; set; } = "";
[XmlAttribute("Top")]
public double Top { get; set; }
[XmlAttribute("Bottom")]
public double Bottom { get; set; }
[XmlAttribute("Times")]
public int Times { get; set; }
[XmlAttribute("Length")]
public double Length { get; set; }
[XmlAttribute("TextOption")]
public int TextOption { get; set; }
[XmlElement("HunkContent")]
public WellHunkContent HunkContent { get; set; }
[XmlElement("BackBrush")]
public BackBrushInCoring BackBrush { get; set; }
[XmlElement("RenderStyle")]
public RenderStyleInCoring RenderStyle { get; set; }
}
public class BackBrushInCoring
{
[XmlAttribute("Type")]
public string Type { get; set; } = "Empty";
[XmlAttribute("BackColor")]
public string BackColor { get; set; } = "#FFFFFF";
[XmlAttribute("ForeColor")]
public string ForeColor { get; set; } = "#FF0000";
[XmlAttribute("Pattern")]
public string Pattern { get; set; } = "Empty";
}
public class RenderStyleInCoring
{
[XmlAttribute("Type")]
public string Type { get; set; } = "";
[XmlAttribute("LeftSpace")]
public double LeftSpace { get; set; }
[XmlAttribute("RightSpace")]
public double RightSpace { get; set; }
[XmlAttribute("ShowDepthText")]
public bool ShowDepthText { get; set; }
}
}