Files
webwindowconfigurator/WebWindowComplex/Models/Inglesina.cs
T
Annamaria Sassi 5e4907479b - Aggiunta Copy per Inglesina
- Iniziato a sistemare per converisone dimensione Inglesina
2026-04-14 13:08:38 +02:00

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;
}
}