AIMS/DrawGraph/BoardPack/TablePackObj.cs
2022-12-29 21:57:18 +08:00

157 lines
3.4 KiB
C#

using DrawGraph;
using Newtonsoft.Json;
using System;
using System.Drawing;
namespace DrawGraph
{
[JsonObject(MemberSerialization.OptOut)]
[Serializable]
public class TablePackObj : PackObjBase
{
private Color frameColor = Color.Black;
public uint columns = 1u;
public uint rows = 1u;
private int lineWidth = 1;
public uint Rows
{
get
{
return this.rows;
}
set
{
this.rows = value;
}
}
public uint Columns
{
get
{
return this.columns;
}
set
{
this.columns = value;
}
}
public Color FrameColor
{
get
{
return this.frameColor;
}
set
{
this.frameColor = value;
}
}
[ClassAttributs(Description = "线粗细")]
public int LineWidth
{
get
{
return this.lineWidth;
}
set
{
this.lineWidth = value;
}
}
public TablePackObj(ZedGraphControl zgc, PackObjManager poManager) : base(zgc, poManager)
{
this.baseZed = zgc;
base.PackText = "表格" + this.index.ToString();
}
public override void Draw()
{
bool flag = this.baseZed == null;
if (!flag)
{
this.Clear();
bool flag2 = base.RealEndX <= base.RealX || base.RealEndY <= base.RealY;
if (!flag2)
{
float num = base.RealEndX - base.RealX;
float num2 = base.RealEndY - base.RealY;
BoxObj boxObj = new BoxObj((double)base.RealX, (double)base.RealY, (double)num, (double)num2);
boxObj.Tag = base.PackTag;
boxObj.Location.CoordinateFrame = CoordType.PaneFraction;
boxObj.Border.IsVisible = true;
bool isSelect = base.IsSelect;
if (isSelect)
{
boxObj.Border.Width = (float)this.LineWidth;
boxObj.Border.Color = Color.Red;
}
else
{
boxObj.Border.Color = this.frameColor;
}
boxObj.Fill.IsVisible = false;
boxObj.ZOrder = ZOrder.B_BehindLegend;
ZUtil.DrawBox(boxObj, this.baseZed);
int num3 = 1;
while ((long)num3 < (long)((ulong)this.rows))
{
float num4 = base.RealY + (float)num3 * ((base.RealEndY - base.RealY) / this.rows);
ZUtil.DrawLine((double)base.RealX, (double)num4, (double)base.RealEndX, (double)num4, this.baseZed, base.PackTag + "-" + num3.ToString(), boxObj.Border.Color);
num3++;
}
int num5 = 1;
while ((long)num5 < (long)((ulong)this.columns))
{
float num6 = base.RealX + (float)num5 * ((base.RealEndX - base.RealX) / this.columns);
ZUtil.DrawLine((double)num6, (double)base.RealY, (double)num6, (double)base.RealEndY, this.baseZed, base.PackTag + "-" + num5.ToString(), boxObj.Border.Color);
num5++;
}
base.Refresh();
}
}
}
public override void Clear()
{
GraphObj graphObj = this.baseZed.MasterPane.GraphObjList[base.PackTag];
bool flag = graphObj != null;
if (flag)
{
this.baseZed.MasterPane.GraphObjList.Remove(graphObj);
}
int num = 1;
while ((long)num < (long)((ulong)this.rows))
{
graphObj = this.baseZed.MasterPane.GraphObjList[base.PackTag + "-" + num.ToString()];
bool flag2 = graphObj != null;
if (flag2)
{
this.baseZed.MasterPane.GraphObjList.Remove(graphObj);
}
num++;
}
int num2 = 1;
while ((long)num2 < (long)((ulong)this.columns))
{
graphObj = this.baseZed.MasterPane.GraphObjList[base.PackTag + "-" + num2.ToString()];
bool flag3 = graphObj != null;
if (flag3)
{
this.baseZed.MasterPane.GraphObjList.Remove(graphObj);
}
num2++;
}
}
}
}