|
|
|
|
|
using System.Xml;
|
|
|
|
|
|
using System.Xml.Serialization;
|
|
|
|
|
|
using GeoSigma.SigmaDrawerStyle;
|
|
|
|
|
|
using GeoSigmaDrawLib;
|
|
|
|
|
|
|
|
|
|
|
|
namespace SigmaDrawerElement
|
|
|
|
|
|
{
|
|
|
|
|
|
[XmlRoot("Element")]
|
|
|
|
|
|
public class DrawerElementProperty
|
|
|
|
|
|
{
|
|
|
|
|
|
private string _colorRgb;
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("Color")]
|
|
|
|
|
|
public string ColorRgb
|
|
|
|
|
|
{
|
|
|
|
|
|
get { return _colorRgb; }
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
_colorRgb = value;
|
|
|
|
|
|
SyncColorToElement();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private ElementBase _element;
|
|
|
|
|
|
|
|
|
|
|
|
[XmlElement("Point", typeof(DrawerPoint))]
|
|
|
|
|
|
[XmlElement("Xyz", typeof(DrawerXyz))]
|
|
|
|
|
|
[XmlElement("TwoPoint", typeof(DrawerPointTwoName))]
|
|
|
|
|
|
[XmlElement("CrossPoint", typeof(DrawerPointCrossName))]
|
|
|
|
|
|
[XmlElement("Pline", typeof(DrawerPline))]
|
|
|
|
|
|
[XmlElement("Surface", typeof(DrawerSurface))]
|
|
|
|
|
|
[XmlElement("Text", typeof(DrawerText))]
|
|
|
|
|
|
[XmlElement("Ellipse", typeof(DrawerEllipse))]
|
|
|
|
|
|
[XmlElement("Arc", typeof(DrawerArc))]
|
|
|
|
|
|
[XmlElement("Proportion", typeof(DrawerProportion))]
|
|
|
|
|
|
[XmlElement("Frame", typeof(DrawerFrame))]
|
|
|
|
|
|
[XmlElement("FGrid", typeof(DrawerFrameGrid))]
|
|
|
|
|
|
[XmlElement("FNetting", typeof(DrawerFrameNet))]
|
|
|
|
|
|
[XmlElement("Donut", typeof(DrawerDonut))]
|
|
|
|
|
|
[XmlElement("Circle", typeof(DrawerCircle))]
|
|
|
|
|
|
[XmlElement("Section", typeof(DrawerSeismicSection))]
|
|
|
|
|
|
[XmlElement("WellGroup", typeof(DrawerWellGroup))]
|
|
|
|
|
|
[XmlElement("Block", typeof(DrawerGroup))]
|
|
|
|
|
|
[XmlElement("Axis", typeof(DrawerScaleRuler))]
|
|
|
|
|
|
public ElementBase Element
|
|
|
|
|
|
{
|
|
|
|
|
|
get { return _element; }
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
_element = value;
|
|
|
|
|
|
SyncColorToElement();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void SyncColorToElement()
|
|
|
|
|
|
{
|
|
|
|
|
|
// 如果还没读取到 Element 或者还没读取到 Color,什么都不做
|
|
|
|
|
|
if (_element == null || string.IsNullOrEmpty(_colorRgb)) return;
|
|
|
|
|
|
|
|
|
|
|
|
if (int.TryParse(_colorRgb, out int colorVal))
|
|
|
|
|
|
{
|
|
|
|
|
|
// 判断当前 Element 是不是 DrawerFrameNet 类型
|
|
|
|
|
|
if (_element is DrawerFrameNet net)
|
|
|
|
|
|
{
|
|
|
|
|
|
net.XmlColorProxy = colorVal;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
public DrawElementType ElementType
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
if (Element != null) return Element.ElementType;
|
|
|
|
|
|
return DrawElementType.ELEMENT_UNKNOWN;
|
|
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
if (Element != null) Element.ElementType = ElementType;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
public int ColorRef { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("Layer")]
|
|
|
|
|
|
public string Layer { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("Visibility")]
|
|
|
|
|
|
public string Visibility { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute("Type")]
|
|
|
|
|
|
public string TypeName { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlElement("HowToViewCurve")]
|
|
|
|
|
|
public DrawerCurveStyle CurveStyle { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[XmlElement("HowToViewPoint")]
|
|
|
|
|
|
public DrawerPointStyle PointStyle { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|