5e4907479b
- Iniziato a sistemare per converisone dimensione Inglesina
119 lines
4.5 KiB
C#
119 lines
4.5 KiB
C#
|
|
using WebWindowComplex.Json;
|
|
using static WebWindowComplex.Json.WindowConst;
|
|
|
|
namespace WebWindowComplex.Models
|
|
{
|
|
public class Inglesina : Split
|
|
{
|
|
public Inglesina(Area ParentArea, Window ParentWindow) : base(ParentArea, ParentWindow)
|
|
{
|
|
}
|
|
|
|
public int SelSideIndex
|
|
{
|
|
get
|
|
{
|
|
return (int)m_SelSide;
|
|
}
|
|
set
|
|
{
|
|
m_SelSide = (SideInglesina)value;
|
|
}
|
|
}
|
|
internal override JsonArea Serialize(bool hideHw)
|
|
{
|
|
if (nCounterGroup < GroupId)
|
|
Area.nCounterGroup = GroupId;
|
|
JsonInglesina JsonInglesina = new JsonInglesina(m_SelSide, SelSplitShape, GroupId);
|
|
JsonInglesina.SplitStartVert = bSplitStartVert;
|
|
foreach (var SplitVert in SplitVertList)
|
|
JsonInglesina.SplitVertList.Add(SplitVert.Serialize());
|
|
foreach (var SplitHoriz in SplitHorizList)
|
|
JsonInglesina.SplitHorizList.Add(SplitHoriz.Serialize());
|
|
if (ElemDimHorizList != null && ElemDimHorizList.Count > 0)
|
|
{
|
|
int subAreaMinHoriz = ElemDimHorizList.Min(x => x.nSubArea);
|
|
List<SplitElementDimension> horizList = ElemDimHorizList.Where(x => x.nSubArea == subAreaMinHoriz).ToList();
|
|
foreach (var Elem in horizList)
|
|
JsonInglesina.ElementDimHorizList.Add(Elem.Serialize());
|
|
}
|
|
if (ElemDimVertList != null && ElemDimVertList.Count > 0)
|
|
{
|
|
int subAreaMinVert = ElemDimVertList.Min(x => x.nSubArea);
|
|
List<SplitElementDimension> vertList = ElemDimVertList.Where(x => x.nSubArea == subAreaMinVert).ToList();
|
|
foreach (var Elem in vertList.ToList())
|
|
JsonInglesina.ElementDimVertList.Add(Elem.Serialize());
|
|
}
|
|
foreach (var Area in AreaList)
|
|
JsonInglesina.AreaList.Add(Area.Serialize(hideHw));
|
|
return JsonInglesina;
|
|
}
|
|
internal static Inglesina CreateInglesina(Area Area, SplitShapes SplitShape)
|
|
{
|
|
Inglesina inglesina = new Inglesina(Area, Area.ParentWindow);
|
|
AddCounterGroup();
|
|
inglesina.SetGroupId(nCounterGroup);
|
|
inglesina.SetAreaType(AreaTypes.INGLESINA);
|
|
inglesina.SetSplitShape(SplitShape);
|
|
inglesina.SetSelSide(SideInglesina.BOTH);
|
|
return inglesina;
|
|
}
|
|
|
|
public override Inglesina Copy(Area newParentArea)
|
|
{
|
|
Inglesina newInglesina = new Inglesina(newParentArea, m_ParentWindow);
|
|
AddCounterGroup();
|
|
newInglesina.SetGroupId(nCounterGroup);
|
|
newInglesina.SetSelSide(m_SelSide);
|
|
newInglesina.SetSplitStartVert(bSplitStartVert);
|
|
for (int i = 0; i < SplitVertList.Count; i++)
|
|
newInglesina.SplitVertList.Add(SplitVertList[i].Copy());
|
|
for (int i = 0; i < SplitHorizList.Count; i++)
|
|
newInglesina.SplitHorizList.Add(SplitHorizList[i].Copy());
|
|
newInglesina.SetSplitShape(SelSplitShape);
|
|
newInglesina.SetAreaType(AreaType);
|
|
foreach (var item in ElemDimHorizList)
|
|
{
|
|
SplitElementDimension newElementDimension = item.Copy();
|
|
newInglesina.ElemDimHorizList.Add(newElementDimension);
|
|
}
|
|
foreach (var item in ElemDimVertList)
|
|
{
|
|
SplitElementDimension newElementDimension = item.Copy();
|
|
newInglesina.ElemDimVertList.Add(newElementDimension);
|
|
}
|
|
if (AreaList != null && AreaList.Count > 0)
|
|
{
|
|
foreach (var item in AreaList)
|
|
{
|
|
Area a = item.Copy(newInglesina);
|
|
newInglesina.AreaList.Add(a);
|
|
}
|
|
}
|
|
return newInglesina;
|
|
}
|
|
|
|
internal void SetSelSide(SideInglesina side)
|
|
{
|
|
m_SelSide = side;
|
|
}
|
|
public List<IdNameStruct> SideList
|
|
{
|
|
get
|
|
{
|
|
return m_SideList;
|
|
}
|
|
}
|
|
|
|
private List<IdNameStruct> m_SideList = new List<IdNameStruct>
|
|
{
|
|
new IdNameStruct((int)SideInglesina.INTERNAL, "Internal"),
|
|
new IdNameStruct((int)SideInglesina.EXTERNAL, "External"),
|
|
new IdNameStruct((int)SideInglesina.BOTH, "Both")
|
|
};
|
|
|
|
private SideInglesina m_SelSide;
|
|
}
|
|
}
|