From 41cd75cdf874abb88d2011d638a6a4c30af21988 Mon Sep 17 00:00:00 2001 From: Annamaria Sassi Date: Thu, 29 Jan 2026 18:00:18 +0100 Subject: [PATCH] Aggiunti element per Bottom rail --- Test.UI/Components/Pages/EditJWD.razor.cs | 4 +-- Test.UI/Data/AntaDoppia.jwd | 10 ++++-- WebWindowComplex/Json/JsonUtility.cs | 34 +++++++++++++++++++ WebWindowComplex/Models/ElementDimension.cs | 4 +-- WebWindowComplex/Models/Frame.cs | 24 +++++++++++-- WebWindowComplex/Models/Sash.cs | 20 +++++++++-- WebWindowComplex/Models/Split.cs | 18 ++++++++++ WebWindowComplex/TableComp.razor.cs | 17 ++-------- WebWindowComplex/WebWindowComplex.csproj | 5 ++- .../WebWindowConfigurator.csproj | 8 ++++- 10 files changed, 118 insertions(+), 26 deletions(-) diff --git a/Test.UI/Components/Pages/EditJWD.razor.cs b/Test.UI/Components/Pages/EditJWD.razor.cs index 6450d53..9cd526e 100644 --- a/Test.UI/Components/Pages/EditJWD.razor.cs +++ b/Test.UI/Components/Pages/EditJWD.razor.cs @@ -309,9 +309,9 @@ namespace Test.UI.Components.Pages Random random = new Random(); CalcUid = Convert.ToString(random.Next(1000, 10000)); windowUid = CalcUid; - InitialJwd = File.ReadAllText("Data\\FinestraSplitGrid.jwd"); + //InitialJwd = File.ReadAllText("Data\\FinestraSplitGrid.jwd"); //InitialJwd = File.ReadAllText("Data\\FinestraSplitHoriz.jwd"); - //InitialJwd = File.ReadAllText("Data\\AntaDoppia.jwd"); + InitialJwd = File.ReadAllText("Data\\AntaDoppia.jwd"); //InitialJwd = File.ReadAllText("Data\\ArcoAntaDoppia.jwd"); currJwd = InitialJwd; // rileggo altri dati diff --git a/Test.UI/Data/AntaDoppia.jwd b/Test.UI/Data/AntaDoppia.jwd index e091f20..9f2b7eb 100644 --- a/Test.UI/Data/AntaDoppia.jwd +++ b/Test.UI/Data/AntaDoppia.jwd @@ -150,8 +150,14 @@ } ], "SashType": "NULL", - "BottomRail": false, - "BottomRailQty": 0, + "BottomRail": true, + "BottomRailQty": 1, + "BottomRailElemDimList": [ + { + "Index": 1, + "Value": 78.0 + } + ], "Hardware": "000633", "HwOptionList": [ { diff --git a/WebWindowComplex/Json/JsonUtility.cs b/WebWindowComplex/Json/JsonUtility.cs index cb59d14..5ad3540 100644 --- a/WebWindowComplex/Json/JsonUtility.cs +++ b/WebWindowComplex/Json/JsonUtility.cs @@ -258,6 +258,16 @@ namespace WebWindowComplex.Json } } + private List m_BottomRailElemDimList = new List(); + [JsonProperty] + public List BottomRailElemDimList + { + get + { + return m_BottomRailElemDimList; + } + } + //private JsonFrameArcElement m_FrameArcElem; //[JsonProperty] //public JsonFrameArcElement ArcElement @@ -295,6 +305,13 @@ namespace WebWindowComplex.Json newFrame.SetSelThresholdFromName(m_Threshold); newFrame.SetBottomRail(m_bBottomRail); newFrame.SetBottomRailQty(m_nBottomRailQty); + for (int i = 0; i < m_nBottomRailQty; i++) + { + newFrame.BottomRailElemDimList.Add(new ElementDimension(newFrame, BottomRailElemDimList[i].Index, BottomRailElemDimList[i].Value)); + newFrame.BottomRailElemDimList.ElementAt(i).SetNameElement("Frame_Rail_Bottom"); + } + if(m_nBottomRailQty > 0) + newFrame.BottomRailElemDimList.ElementAt(m_nBottomRailQty - 1).SetNameElement("Frame_Fill_Rail"); //if(ArcElement != null) // newFrame.SetFrameArcElem(ArcElement.Deserialize(newFrame, ParentWindow)); //Frame.AppliedDone(); @@ -389,6 +406,16 @@ namespace WebWindowComplex.Json } } + private List m_BottomRailElemDimList = new List(); + [JsonProperty] + public List BottomRailElemDimList + { + get + { + return m_BottomRailElemDimList; + } + } + //private JsonSashArcElement m_SashArcElem; //[JsonProperty] //public JsonSashArcElement ArcElement @@ -454,6 +481,13 @@ namespace WebWindowComplex.Json newSash.SetIsSashVertical(m_bIsSashVertical); newSash.SetSashBottomRail(m_bBottomRail); newSash.SetSashBottomRailQty(m_nBottomRailQty); + for(int i = 0; i < m_nBottomRailQty; i++) + { + newSash.BottomRailElemDimList.Add(new ElementDimension(newSash, BottomRailElemDimList[i].Index, BottomRailElemDimList[i].Value)); + newSash.BottomRailElemDimList.ElementAt(i).SetNameElement("Sash_Rail_Bottom"); + } + if (m_nBottomRailQty > 0) + newSash.BottomRailElemDimList.ElementAt(m_nBottomRailQty - 1).SetNameElement("Sash_Fill_Rail"); for (var SashIndex = 0; SashIndex <= m_SashList.Count - 1; SashIndex++) { newSash.SashList[SashIndex].SetOpeningType(m_SashList[SashIndex].OpeningType); diff --git a/WebWindowComplex/Models/ElementDimension.cs b/WebWindowComplex/Models/ElementDimension.cs index 1acf7ce..7798ab5 100644 --- a/WebWindowComplex/Models/ElementDimension.cs +++ b/WebWindowComplex/Models/ElementDimension.cs @@ -143,9 +143,9 @@ namespace WebWindowComplex.Models private string m_sName = ""; - private double m_dMin; + private double m_dMin = 40; - private double m_dMax; + private double m_dMax = 100; #endregion Private Fields } diff --git a/WebWindowComplex/Models/Frame.cs b/WebWindowComplex/Models/Frame.cs index 52fbd36..8e01ca3 100644 --- a/WebWindowComplex/Models/Frame.cs +++ b/WebWindowComplex/Models/Frame.cs @@ -99,8 +99,18 @@ namespace WebWindowComplex.Models { if (m_nBottomRailQty >= 0) { + if(value > m_nBottomRailQty) + { + // Aggiungo un element + BottomRailElemDimList.Add(new ElementDimension(this, BottomRailElemDimList.Count + 1, 78)); + } + else if (value < m_nBottomRailQty) + { + // Elimino un element + BottomRailElemDimList.RemoveAt(BottomRailElemDimList.Count - 1); + } m_nBottomRailQty = value; - if (m_nBottomRailQty > 0) + if (value > 0) { m_bBottomRail = true; } @@ -112,6 +122,12 @@ namespace WebWindowComplex.Models } } + public List BottomRailElemDimList + { + get => m_BottomRailElemDimList; + set => m_BottomRailElemDimList = value; + } + public List DimensionList { get => m_DimensionList; @@ -477,6 +493,8 @@ namespace WebWindowComplex.Models if (nCounterGroup < GroupId) Area.nCounterGroup = GroupId; JsonFrame JsonFrame = new JsonFrame(m_Shape, m_SelThreshold.Name, m_bBottomRail, m_nBottomRailQty, GroupId); + foreach (var BottomRailDim in BottomRailElemDimList) + JsonFrame.BottomRailElemDimList.Add(BottomRailDim.Serialize()); //if (FrameArcElem != null) // JsonFrame.ArcElement = FrameArcElem.Serialize(); //else @@ -751,9 +769,11 @@ namespace WebWindowComplex.Models private List m_ThresholdList = new List(); private List m_DimensionList = new List(); - + private List m_ElementDimensionList = new List(); + private List m_BottomRailElemDimList = new List(); + private List m_JointList = new List(); private int m_nBottomRailQty = 0; diff --git a/WebWindowComplex/Models/Sash.cs b/WebWindowComplex/Models/Sash.cs index f550ed6..17ce4fa 100644 --- a/WebWindowComplex/Models/Sash.cs +++ b/WebWindowComplex/Models/Sash.cs @@ -57,7 +57,11 @@ namespace WebWindowComplex.Models // m_SashArcElement = value!; // } //} - + public List BottomRailElemDimList + { + get => m_BottomRailElemDimList; + set => m_BottomRailElemDimList = value; + } public List HardwareList { get @@ -423,6 +427,16 @@ namespace WebWindowComplex.Models { if (value >= 0) { + if (value > m_nSashBottomRailQty) + { + // Aggiungo un element + BottomRailElemDimList.Add(new ElementDimension(this, BottomRailElemDimList.Count + 1, 78)); + } + else if (value < m_nSashBottomRailQty) + { + // Elimino un element + BottomRailElemDimList.RemoveAt(BottomRailElemDimList.Count - 1); + } m_nSashBottomRailQty = value; if (m_nSashBottomRailQty > 0) { @@ -801,6 +815,8 @@ namespace WebWindowComplex.Models JsonSash JsonSash = new JsonSash(m_bIsSashVertical, m_SashType, m_bSashBottomRail, m_nSashBottomRailQty, currHwId, GroupId); foreach (var SashDimension in SashList) JsonSash.SashList.Add(SashDimension.Serialize()); + foreach (var BottomRailDim in BottomRailElemDimList) + JsonSash.BottomRailElemDimList.Add(BottomRailDim.Serialize()); if (HwOptionList.Count > 0) { foreach (var HwOption in HwOptionList) @@ -1022,7 +1038,7 @@ namespace WebWindowComplex.Models private int m_nSashBottomRailQty; private List m_ElementDimensionList = new List(); - + private List m_BottomRailElemDimList = new List(); private List m_OrientationSashTypeList = new List { new IdNameStruct((int)OrientationSash.VERTICAL, "Vertical"), diff --git a/WebWindowComplex/Models/Split.cs b/WebWindowComplex/Models/Split.cs index 076f90a..bd12a2d 100644 --- a/WebWindowComplex/Models/Split.cs +++ b/WebWindowComplex/Models/Split.cs @@ -510,6 +510,24 @@ namespace WebWindowComplex.Models //m_ParentWindow.OnUpdatePreview(m_ParentWindow.sSerialized()); } + public List searchElemFromSubArea(int subArea) + { + if(subArea == 0) + { + if (m_bSplitStartVert) + return m_ElemDimVertList; + else + return m_ElemDimHorizList; + } + else + { + if (m_bSplitStartVert) + return m_ElemDimHorizList.Where(x => x.nSubArea == subArea).ToList(); + else + return m_ElemDimVertList.Where(x => x.nSubArea == subArea).ToList(); + } + } + public bool OnlySashChild() { foreach (var areaSplitted in AreaList) diff --git a/WebWindowComplex/TableComp.razor.cs b/WebWindowComplex/TableComp.razor.cs index a236cfa..b2a4fe5 100644 --- a/WebWindowComplex/TableComp.razor.cs +++ b/WebWindowComplex/TableComp.razor.cs @@ -1137,20 +1137,9 @@ namespace WebWindowComplex case AreaTypes.SPLIT: { Split split = (Split)found; - if (split.bSplitStartVert) - { - for (int i = 0; i < split.ElemDimVertList.Count; i++) - { - split.ElemDimVertList.ElementAt(i).SetNameElement(profileNameList.ElementAt(i)); - } - } - else - { - for (int i = 0; i < split.ElemDimHorizList.Count; i++) - { - split.ElemDimHorizList.ElementAt(i).SetNameElement(profileNameList.ElementAt(i)); - } - } + List SpElemList = split.searchElemFromSubArea(EntityIdSearch); + for(int i = 0; i < SpElemList.Count; i++) + SpElemList.ElementAt(i).SetNameElement(profileNameList.ElementAt(i)); break; } } diff --git a/WebWindowComplex/WebWindowComplex.csproj b/WebWindowComplex/WebWindowComplex.csproj index 1859b13..44858fd 100644 --- a/WebWindowComplex/WebWindowComplex.csproj +++ b/WebWindowComplex/WebWindowComplex.csproj @@ -6,7 +6,7 @@ net8.0 enable enable - 2.8.1.2912 + 2.8.1.2917 Annamaria Sassi Egalware Componente gestione Configurazioni avanzate Window per LUX @@ -153,6 +153,9 @@ + + + diff --git a/WebWindowConfigurator/WebWindowConfigurator.csproj b/WebWindowConfigurator/WebWindowConfigurator.csproj index bafec4a..ec49acd 100644 --- a/WebWindowConfigurator/WebWindowConfigurator.csproj +++ b/WebWindowConfigurator/WebWindowConfigurator.csproj @@ -6,7 +6,7 @@ net8.0 enable enable - 2.8.1.2912 + 2.8.1.2917 Annamaria Sassi Egalware Componente gestione JWD per LUX @@ -189,6 +189,12 @@ + + + + + +