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.
kev/Drawer/UCDraw/SigmaDrawerWellElement/PropertyEditorInTrackCommon...

87 lines
2.6 KiB
C#

1 month ago
using GeoSigma.SigmaDrawerElement;
using SigmaDrawerElement;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing.Design;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms.Design;
using System.Xml.Serialization;
using GeoSigmaDrawLib;
//using static GeoSigmaDrawLib.GeoSigmaWellPoleXY;
namespace GeoSigma.SigmaDrawerStyle
{
public class PropertyEditorInTrackCommonData : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override bool GetPaintValueSupported(ITypeDescriptorContext context)
{
return true;
}
public override void PaintValue(PaintValueEventArgs e)
{
if (e.Value is DataItems style)
{
var g = e.Graphics;
var rect = e.Bounds;
}
}
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
{
// if (!(value is List<DataItemInTrack> dataItems))
if (!(value is CDataItemInTrackList dataItems))
{
return value;
}
IWindowsFormsEditorService edSvc = provider?.GetService(typeof(IWindowsFormsEditorService)) as IWindowsFormsEditorService;
if (edSvc == null)
{
return value;
}
if (context.Instance is WellInTrackCommonData inTrack)
{
//TrackGetDataSourceID
}
else
return value;
using (var editorForm = new FrmInTrackCommonData(dataItems,inTrack.wellPoleContext.ParentObj) { StartPosition = FormStartPosition.CenterScreen })
{
if (edSvc.ShowDialog(editorForm) == DialogResult.OK)
{
CDataItemInTrackList datas = new CDataItemInTrackList();
// List<DataItemInTrack> datas = new List<DataItemInTrack>();
foreach(var item in editorForm.m_ListValues)
{
DataItemInTrack tdata = new DataItemInTrack();
tdata.Value = item.Value;
tdata.RefColId = item.RefColId;
datas.Add(tdata);
}
return datas;
}
}
return value;
}
}
}