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 WellInTrackOilTest :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.BackBrush.BackColor);
set => WellTestLayer.BackBrush.BackColor = ColorTranslator2.ToHtml(value);
}
//[XmlIgnore]
//[Category(ShotTrackCategory)]
//[DisplayName("文本")]
//[PropertyOrder(4)]
//public string Text
//{
// get => WellText.Font.Text;
// set => WellText.Font.Text = 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(7)]
//public HorizontalAlignment HorizontalAlign
//{
// get => DictionaryHelper.Reverse(AlignMap)[WellTestLayer.Align];
// set => WellText.Align = AlignMap[value];
//}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("层号")]
[PropertyOrder(4)]
public string name
{
get => WellTestLayer.Name;
set => WellTestLayer.Name = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("起始时间")]
[PropertyOrder(4)]
public string StartTime
{
get => WellTestLayer.Start;
set => WellTestLayer.Start = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("结束时间")]
[PropertyOrder(5)]
public string EndTime
{
get => WellTestLayer.End;
set => WellTestLayer.End = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("措施")]
[PropertyOrder(6)]
public string method
{
get => WellTestLayer.Method;
set => WellTestLayer.Method = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("试油结论")]
[PropertyOrder(7)]
public string Verdict
{
get => WellTestLayer.Verdict;
set => WellTestLayer.Verdict = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("日产油")]
[PropertyOrder(8)]
public double dailyOil
{
get => WellTestLayer.DailyOil;
set => WellTestLayer.DailyOil = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("日产气")]
[PropertyOrder(9)]
public double DailyGas
{
get => WellTestLayer.DailyGas;
set => WellTestLayer.DailyGas = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("日产水")]
[PropertyOrder(10)]
public double DailyWater
{
get => WellTestLayer.DailyWater;
set => WellTestLayer.DailyWater = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("累计产油")]
[PropertyOrder(11)]
public double TotalOil
{
get => WellTestLayer.TotalOil;
set => WellTestLayer.TotalOil = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("累计产气")]
[PropertyOrder(12)]
public double TotalGas
{
get => WellTestLayer.TotalGas;
set => WellTestLayer.TotalGas = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("累计产水")]
[PropertyOrder(13)]
public double TotalWater
{
get => WellTestLayer.TotalWater;
set => WellTestLayer.TotalWater = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("静压(MPa)")]
[PropertyOrder(14)]
public double StaticMPa
{
get => WellTestLayer.StaticMPa;
set => WellTestLayer.StaticMPa = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("流压(MPa)")]
[PropertyOrder(15)]
public double FlowMpa
{
get => WellTestLayer.FlowMPa;
set => WellTestLayer.FlowMPa = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("套压(MPa)")]
[PropertyOrder(16)]
public double CaseMPa
{
get => WellTestLayer.CaseMPa;
set => WellTestLayer.CaseMPa = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("静温(度)")]
[PropertyOrder(17)]
public double Temperature
{
get => WellTestLayer.Temperature;
set => WellTestLayer.Temperature = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("厚度")]
[PropertyOrder(18)]
public double Thickness
{
get => WellTestLayer.thickness;
set => WellTestLayer.thickness = value;
}
[XmlIgnore]
[Category(ShotTrackCategory)]
[DisplayName("抽深或冲程")]
[PropertyOrder(19)]
public double Stroke
{
get => WellTestLayer.stroke;
set => WellTestLayer.stroke = value;
}
[XmlAttribute]
[Browsable(false)]
public int Version { get; set; }
[XmlElement("TestLayer")]
[Browsable(false)]
public TestLayer 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 TestLayer
{
[XmlAttribute("Name")]
public string Name { get; set; } = "";
[XmlAttribute("Top")]
public double Top { get; set; }
[XmlAttribute("Bottom")]
public double Bottom { get; set; }
[XmlAttribute("LayerCount")]
public int LayerCount { get; set; }
[XmlAttribute("Start")]
// [XmlIgnore]
public string Start { get; set; }
//[XmlAttribute("Start")]
//[Browsable(false)]
//public string StartString
//{
// get => Start.ToString("yyyy/MM/dd HH:mm:ss");
// set => Start = DateTime.ParseExact(value, "yyyy/MM/dd HH:mm:ss", null);
//}
[XmlAttribute("End")]
// [XmlIgnore]
public string End { get; set; }
//[XmlAttribute("End")]
//[Browsable(false)]
//public string EndString
//{
// get => End.ToString("yyyy/MM/dd HH:mm:ss");
// set => End = DateTime.ParseExact(value, "yyyy/MM/dd HH:mm:ss", null);
//}
[XmlAttribute("Method")]
public string Method { get; set; } = "";
[XmlAttribute("Verdict")]
public string Verdict { get; set; } = "";
[XmlAttribute("DailyOil")]
public double DailyOil { get; set; }
[XmlAttribute("DailyWater")]
public double DailyWater { get; set; }
[XmlAttribute("DailyGas")]
public double DailyGas { get; set; }
[XmlAttribute("TotalOil")]
public double TotalOil {get; set; }
[XmlAttribute("TotalWater")]
public double TotalWater { get; set; }
[XmlAttribute("TotalGas")]
public double TotalGas { get; set; }
[XmlAttribute("DailyOilUnit")]
public string DailyOilUnit { get; set; }
[XmlAttribute("DailyWaterUnit")]
public string DailyWaterUnit { get; set; }
[XmlAttribute("DailyGasUnit")]
public string DailyGasUnit { get; set; }
[XmlAttribute("TotalOilUnit")]
public string TotalOilUnit { get; set; }
[XmlAttribute("TotalWaterUnit")]
public string TotalWaterUnit { get; set; }
[XmlAttribute("TotalGasUnit")]
public string TotalGasUnit { get; set; }
[XmlAttribute("PiezometerDepth")]
public double PiezometerDepth { get; set; }
[XmlAttribute("Static")]
public double StaticMPa { get; set; }
[XmlAttribute("Case")]
public double CaseMPa { get; set; }
[XmlAttribute("Flow")]
public double FlowMPa { get; set; }
[XmlAttribute("Temperature")]
public double Temperature { get; set; }
[XmlAttribute("Thickness")]
public double thickness { get; set; }
[XmlAttribute("Stroke")]
public double stroke { get; set; }
[XmlElement("Font")]
public WellFontEx Font { get; set; }
[XmlElement("HunkContent")]
public WellHunkContent HunkContent { get; set; }
[XmlElement("BackBrush")]
public BackBrushInOilTest BackBrush { get; set; }
[XmlElement("RenderStyle")]
public RenderStyleInOilTest RenderStyle { get; set; }
}
public class BackBrushInOilTest
{
[XmlAttribute("Style")]
public int Style { get; set; }
[XmlAttribute("BackColor")]
public string BackColor { get; set; } = "";
[XmlAttribute("ForeColor")]
public string ForeColor { get; set; } = "";
[XmlAttribute("BlendStyle")]
public int BlendStyle { get; set; }
[XmlAttribute("Visible")]
public bool Visible { get; set; }
}
public class RenderStyleInOilTest
{
[XmlAttribute("Type")]
public string Type { get; set; } = "";
[XmlAttribute("FrameVertLinePos")]
public double FrameVertLinePos { get; set; }
[XmlAttribute("RightText")]
public bool RightText { get; set; }
[XmlAttribute("ShowDepthText")]
public bool ShowDepthText { get; set; }
[XmlAttribute("ShowHistgramText")]
public bool ShowHistgramText { get; set; }
[XmlAttribute("TextLineAlign")]
public string TextLineAlign { get; set; } = "";
[XmlAttribute("Style")]
public string Style { get; set; } = "";
[XmlAttribute("TextPadding")]
public int TextPadding { get; set; }
[XmlElement("GasBrush")]
public BrushStyleInOilTest GasBrush { get; set; }
[XmlElement("OilBrush")]
public BrushStyleInOilTest OilBrush { get; set; }
[XmlElement("WaterBrush")]
public BrushStyleInOilTest WaterBrush { get; set; }
}
[Serializable]
public class BrushStyleInOilTest
{
[XmlAttribute("Style")]
public string Style { get; set; } = "";
}
}