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.

160 lines
5.2 KiB
C#

using GeoSigma.SigmaDrawerStyle;
using GeoSigma.SigmaDrawerStyle.Converter;
using SigmaDrawerElement;
using SigmaDrawerStyle;
using SqlSugar;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Design;
using System.Xml.Serialization;
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 WellSymbolTrack
{
private const string WellTrackCategory = "\t\t\t符号道";
private const string datasourceCategory = "\t数据源设置";
[XmlIgnore]
[Category(WellTrackCategory)]
[DisplayName("标题")]
public string Title
{
get => WellTrack.Title.Font.Text;
set => WellTrack.Title.Font.Text = value;
}
[XmlIgnore]
[Category(WellTrackCategory)]
[DisplayName("宽度")]
public double Width
{
get => WellTrack.Width;
set => WellTrack.Width = value;
}
[XmlIgnore]
[Category(WellTrackCategory)]
[DisplayName("填充")]
[TypeConverter(typeof(YesNoConverter))]
public bool IsFill
{
get => WellTrack.BackFill != 0;
set => WellTrack.BackFill = value ? 1 : 0;
}
[XmlIgnore]
[Category(WellTrackCategory)]
[DisplayName("背景颜色")]
[Editor(typeof(PropertyEditorColor), typeof(UITypeEditor))]
public Color BackgroundColor
{
get => ColorTranslator2.FromHtml(WellTrack.BackColor);
set => WellTrack.BackColor = ColorTranslator2.ToHtml(value);
}
[XmlIgnore]
[Category(WellTrackCategory)]
[DisplayName("道头字体")]
[Editor(typeof(PropertyEditorWellFontEx), typeof(UITypeEditor))]
public WellFontEx HeaderFont
{
get => WellTrack.Title.Font;
set => WellTrack.Title.Font = value;
}
[XmlIgnore]
[Category(datasourceCategory)]
[DisplayName("数据表"), PropertyOrder(20)]
[TypeConverter(typeof(dataSourceTableSymbolTrackConverter))]
public string tableId
{
get
{
return tableInfoQuery.tableChsName(WellTrack.Data.RefTableId);
}
set
{
WellTrack.Data.RefTableId = tableInfoQuery.tableEngName(value);
WellTrack.bRefreshWorkAreaData = true;
WellTrack.Data.RefColId = "";
}
}
[XmlIgnore]
[Category(datasourceCategory)]
[DisplayName("数据字段"), PropertyOrder(21)]
[TypeConverter(typeof(dataFieldSymbolTrackConverter))]
public string columnId
{
get
{
return tableInfoQuery.getColumnChsNameFromEngName(WellTrack.Data.RefTableId, WellTrack.Data.RefColId);
}
set
{
WellTrack.Data.RefColId = tableInfoQuery.getColumnNameFromChsName(WellTrack.Data.RefTableId, value);
WellTrack.bRefreshWorkAreaData = true;
}
}
[Browsable(false)]
[XmlAttribute("Version")]
public string Version { get; set; }
[Browsable(false)]
[XmlElement("WellTrack")]
public WellTrackWellTrack WellTrack { get; set; }
}
public static class DataServiceSybmolTrackTableFieldNames
{
public static string[] GetAvailableOptions(Object param1)
{
//string[] names = new string[0];
List<string> namesList = new List<string>();
if (param1 is WellSymbolTrack settings)
{
List<EntityColumnInfo> collist = tableInfoQuery.getListTableColumn(settings.WellTrack.Data.RefTableId);
foreach (EntityColumnInfo var in collist)
{
if (var.DbColumnName == null)
continue;
if (var.DbColumnName == "")
continue;
if (var.DbColumnName == "ID" || var.DbColumnName == "XHID")
continue;
if (var.UnderType.Name != "String")
continue;
namesList.Add(var.ColumnDescription);
}
}
return namesList.ToArray();
//return names;
}
}
public class dataFieldSymbolTrackConverter : GenericWellOptionsConverter<WellSymbolTrack>
{
public dataFieldSymbolTrackConverter() : base(settings => DataServiceSybmolTrackTableFieldNames.GetAvailableOptions(settings))
{ }
}
public class dataSourceTableSymbolTrackConverter : GenericWellOptionsConverter<WellSymbolTrack>
{
public dataSourceTableSymbolTrackConverter() : base(settings => DataServiceDataSourceTableNames.GetAvailableOptions(settings))
{ }
}
#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
}