From ba80c4eca0c4924261d8cf496afea234cf30fa30 Mon Sep 17 00:00:00 2001 From: Annamaria Sassi Date: Tue, 2 Dec 2025 18:19:57 +0100 Subject: [PATCH] Aggiornato inserimento dimensioni frame con arco --- WebWindowComplex/Models/FrameDimension.cs | 97 +++++++++++++++++-- WebWindowComplex/WebWindowComplex.csproj | 7 +- .../WebWindowConfigurator.csproj | 3 +- 3 files changed, 97 insertions(+), 10 deletions(-) diff --git a/WebWindowComplex/Models/FrameDimension.cs b/WebWindowComplex/Models/FrameDimension.cs index 2d5dae9..02c71f6 100644 --- a/WebWindowComplex/Models/FrameDimension.cs +++ b/WebWindowComplex/Models/FrameDimension.cs @@ -35,14 +35,95 @@ namespace WebWindowComplex.Models { if(m_dValue != value) { - m_dValue = value; - if (value > MaxDim) + if (ParentFrame.SelShapeIndex == (int)Shapes.RECTANGLE || + ParentFrame.SelShapeIndex == (int)Shapes.RIGHTCHAMFER || + ParentFrame.SelShapeIndex == (int)Shapes.LEFTCHAMFER || + ParentFrame.SelShapeIndex == (int)Shapes.DOUBLECHAMFER) { - m_dValue = MaxDim; + if (value > MaxDim) + { + m_dValue = MaxDim; + } + else if (value < MinDim && !m_sName.Equals("Radius")) + { + m_dValue = MinDim; + } + else + m_dValue = value; } - else if (value < MinDim && !m_sName.Equals("Radius")) + else { - m_dValue = MinDim; + if (ParentFrame.SelShapeIndex == (int)Shapes.ARC_FULL) + { + var width = ParentFrame.DimensionList.First(x => x.sName.Equals("Width")).dValue; + var height = ParentFrame.DimensionList.First(x => x.sName.Equals("Height")).dValue; + if (sName.Equals("Height") && value > 0.5 * width && value < MaxDim) + { + m_dValue = value; + } + else if (sName.Equals("Width") && height > 0.5 * value && value > MinDim) + { + m_dValue = value; + } + } + else if (ParentFrame.SelShapeIndex == (int)Shapes.ARC) + { + var width = ParentFrame.DimensionList.First(x => x.sName.Equals("Width")).dValue; + var height = ParentFrame.DimensionList.First(x => x.sName.Equals("Height")).dValue; + var fullHeight = ParentFrame.DimensionList.First(x => x.sName.Equals("Full Height")).dValue; + if (sName.Equals("Full Height") && (value - height) < 0.5 * width && value < MaxDim) + { + m_dValue = value; + } + else if (sName.Equals("Height") && (fullHeight - value) < 0.5 * width && value < MaxDim) + { + m_dValue = value; + } + else if (sName.Equals("Width") && (fullHeight - height) < 0.5 * value && value < MaxDim) + { + m_dValue = value; + } + } + else if (ParentFrame.SelShapeIndex == (int)Shapes.THREECENTERARC) + { + var width = ParentFrame.DimensionList.First(x => x.sName.Equals("Width")).dValue; + var height = ParentFrame.DimensionList.First(x => x.sName.Equals("Height")).dValue; + var fullHeight = ParentFrame.DimensionList.First(x => x.sName.Equals("Full Height")).dValue; + if (sName.Equals("Full Height") && (value - height) < 0.5 * width && value < MaxDim) + { + m_dValue = value; + } + else if (sName.Equals("Height") && (fullHeight - value) < 0.5 * width && value < MaxDim) + { + m_dValue = value; + } + else if (sName.Equals("Width") && (fullHeight - height) < 0.5 * value) + { + m_dValue = value; + } + else if (sName.Equals("Radius") && value < 0.5 * width) + { + m_dValue = value; + } + } + else if (ParentFrame.SelShapeIndex == (int)Shapes.DOUBLEARC) + { + var width = ParentFrame.DimensionList.First(x => x.sName.Equals("Width")).dValue; + var height = ParentFrame.DimensionList.First(x => x.sName.Equals("Height")).dValue; + var fullHeight = ParentFrame.DimensionList.First(x => x.sName.Equals("Full Height")).dValue; + if (sName.Equals("Full Height") && (value - height) > 0.5 * width && value < MaxDim) + { + m_dValue = value; + } + else if (sName.Equals("Height") && (fullHeight - value) > 0.5 * width && value < MaxDim) + { + m_dValue = value; + } + else if (sName.Equals("Width") && (fullHeight - height) > 0.5 * value && value > MinDim) + { + m_dValue = value; + } + } } if (ParentFrame.AreaList.Count > 0) SearchAreaList(ParentFrame); @@ -87,9 +168,9 @@ namespace WebWindowComplex.Models if (node != null) { if (node.AreaType.Equals(AreaTypes.SASH)) - updateDimSubArea((Sash)node); + UpdateDimSubArea((Sash)node); else if (node.AreaType.Equals(AreaTypes.SPLIT)) - updateDimSubArea((Split)node); + UpdateDimSubArea((Split)node); foreach (var item in node.AreaList) { SearchAreaList(item); @@ -97,7 +178,7 @@ namespace WebWindowComplex.Models } } - protected void updateDimSubArea(Area area) + protected void UpdateDimSubArea(Area area) { if(area is Sash && sName.Equals("Width")) { diff --git a/WebWindowComplex/WebWindowComplex.csproj b/WebWindowComplex/WebWindowComplex.csproj index a029df9..27b6fa2 100644 --- a/WebWindowComplex/WebWindowComplex.csproj +++ b/WebWindowComplex/WebWindowComplex.csproj @@ -6,7 +6,7 @@ net8.0 enable enable - 2.7.12.216 + 2.7.12.218 Annamaria Sassi Egalware Componente gestione Configurazioni avanzate Window per LUX @@ -202,6 +202,11 @@ + + + + + diff --git a/WebWindowConfigurator/WebWindowConfigurator.csproj b/WebWindowConfigurator/WebWindowConfigurator.csproj index 1e3e508..ec2f12c 100644 --- a/WebWindowConfigurator/WebWindowConfigurator.csproj +++ b/WebWindowConfigurator/WebWindowConfigurator.csproj @@ -6,7 +6,7 @@ net8.0 enable enable - 2.7.12.216 + 2.7.12.218 Annamaria Sassi Egalware Componente gestione JWD per LUX @@ -306,5 +306,6 @@ +