From 0caf3ef83b4ee5957d57f52ff99a0d7103423c76 Mon Sep 17 00:00:00 2001 From: Annamaria Sassi Date: Fri, 31 Oct 2025 14:53:18 +0100 Subject: [PATCH] Aggiornati eventi ricalcolo hw option e forma ante --- Test.UI/Components/Pages/EditJWD.razor.cs | 4 +- WebWindowComplex/Compo/CardSashGroup.razor.cs | 4 +- WebWindowComplex/Json/JsonUtility.cs | 88 +++++++++---------- WebWindowComplex/Models/AGBOptionCombo.cs | 2 +- WebWindowComplex/Models/Area.cs | 1 + WebWindowComplex/Models/Sash.cs | 58 ++++++------ WebWindowComplex/Models/Window.cs | 22 +++++ WebWindowComplex/TableComp.razor.cs | 31 ++++++- WebWindowComplex/WebWindowComplex.csproj | 18 +++- .../WebWindowConfigurator.csproj | 22 ++++- 10 files changed, 167 insertions(+), 83 deletions(-) diff --git a/Test.UI/Components/Pages/EditJWD.razor.cs b/Test.UI/Components/Pages/EditJWD.razor.cs index 1b5abca..44beea9 100644 --- a/Test.UI/Components/Pages/EditJWD.razor.cs +++ b/Test.UI/Components/Pages/EditJWD.razor.cs @@ -126,8 +126,6 @@ namespace Test.UI.Components.Pages { if (firstRender) { - // This only runs once the interactive circuit is established - Console.WriteLine("Now interactive!"); // JS interop or data fetches go here isInteractive = true; } @@ -137,7 +135,7 @@ namespace Test.UI.Components.Pages { ConfInit(); //InitialJwd = File.ReadAllText("Data\\FinestraDueAnteSeparate.jwd"); - InitialJwd = File.ReadAllText("Data\\AntaSingola.jwd"); + InitialJwd = File.ReadAllText("Data\\AntaDoppia.jwd"); currJwd = InitialJwd; // rileggo altri dati await ReloadData(); diff --git a/WebWindowComplex/Compo/CardSashGroup.razor.cs b/WebWindowComplex/Compo/CardSashGroup.razor.cs index c36f31a..b9c3517 100644 --- a/WebWindowComplex/Compo/CardSashGroup.razor.cs +++ b/WebWindowComplex/Compo/CardSashGroup.razor.cs @@ -178,7 +178,7 @@ namespace WebWindowComplex.Compo if (updRec != null) { currRec = updRec; - await EC_UpdateSash.InvokeAsync(CurrItem); + await EC_UpdateSashHardware.InvokeAsync(CurrItem); } } @@ -195,7 +195,7 @@ namespace WebWindowComplex.Compo if (updRec != null) { currRec = updRec; - await EC_UpdateSash.InvokeAsync(CurrItem); + await EC_UpdateSashHardware.InvokeAsync(CurrItem); } } diff --git a/WebWindowComplex/Json/JsonUtility.cs b/WebWindowComplex/Json/JsonUtility.cs index f66b5ac..960ead1 100644 --- a/WebWindowComplex/Json/JsonUtility.cs +++ b/WebWindowComplex/Json/JsonUtility.cs @@ -233,12 +233,12 @@ namespace WebWindowComplex.Json { } - public JsonFrame(Shapes Shape, bool BottomRail, int BottomRailQty, int nGroupId) : base(AreaTypes.FRAME) + public JsonFrame(Shapes Shape, bool BottomRail, int BottomRailQty, int GroupId) : base(AreaTypes.FRAME) { m_Shape = Shape; m_bBottomRail = BottomRail; m_nBottomRailQty = BottomRailQty; - GroupId = nGroupId; + base.GroupId = GroupId; } internal override Area Deserialize(Area ParentArea, Window ParentWindow) @@ -251,7 +251,7 @@ namespace WebWindowComplex.Json newFrame.SetBottomRailQty(m_nBottomRailQty); //Frame.AppliedDone(); for (var DimensionIndex = 0; DimensionIndex <= m_DimensionList.Count - 1; DimensionIndex++) - newFrame.DimensionList[DimensionIndex].dValue = m_DimensionList[DimensionIndex].dValue; + newFrame.DimensionList[DimensionIndex].dValue = m_DimensionList[DimensionIndex].Value; for (var JointIndex = 0; JointIndex <= m_JointList.Count - 1; JointIndex++) newFrame.JointList[JointIndex].SetSelJointType(m_JointList[JointIndex].JointType); foreach (var Area in AreaList) @@ -270,7 +270,7 @@ namespace WebWindowComplex.Json { private bool m_bIsSashVertical; [JsonProperty] - public bool bIsSashVertical + public bool IsSashVertical { get { @@ -385,14 +385,14 @@ namespace WebWindowComplex.Json { } - public JsonSash(bool bIsSashVertical, SashTypes SashType, bool SashBottomRail, int SashBottomRailQty, string Hardware, int nGroupId) : base(AreaTypes.SASH) + public JsonSash(bool IsSashVertical, SashTypes SashType, bool SashBottomRail, int SashBottomRailQty, string Hardware, int GroupId) : base(AreaTypes.SASH) { - m_bIsSashVertical = bIsSashVertical; + m_bIsSashVertical = IsSashVertical; m_SashType = SashType; m_bBottomRail = SashBottomRail; m_nBottomRailQty = SashBottomRailQty; m_Hardware = Hardware; - GroupId = nGroupId; + base.GroupId = GroupId; } internal override Area Deserialize(Area ParentArea, Window ParentWindow) @@ -407,8 +407,8 @@ namespace WebWindowComplex.Json for (var SashIndex = 0; SashIndex <= m_SashList.Count - 1; SashIndex++) { newSash.SashList[SashIndex].SetOpeningType(m_SashList[SashIndex].OpeningType); - newSash.SashList[SashIndex].SetHasHandle(m_SashList[SashIndex].bHasHandle); - newSash.SashList[SashIndex].SetDimension(m_SashList[SashIndex].dDimension); + newSash.SashList[SashIndex].SetHasHandle(m_SashList[SashIndex].HasHandle); + newSash.SashList[SashIndex].SetDimension(m_SashList[SashIndex].Dimension); } foreach (var Joint in m_JointList) newSash.JointList.Add(Joint.Deserialize((Area)ParentArea)); @@ -494,10 +494,10 @@ namespace WebWindowComplex.Json { } - public JsonSplit(SplitShapes SplitShape, int nGroupId) : base(AreaTypes.SPLIT) + public JsonSplit(SplitShapes SplitShape, int GroupId) : base(AreaTypes.SPLIT) { m_SplitShape = SplitShape; - GroupId = nGroupId; + base.GroupId = GroupId; } internal override Area Deserialize(Area ParentArea, Window ParentWindow) @@ -515,8 +515,8 @@ namespace WebWindowComplex.Json Split.SetSplitQtyVert(m_SplitVertList.Count - 1, true); for (var SplitIndex = 0; SplitIndex <= m_SplitVertList.Count - 1; SplitIndex++) { - Split.SplitVertList[SplitIndex].SetIsRelative(m_SplitVertList[SplitIndex].bIsRelative); - Split.SplitVertList[SplitIndex].SetDimension(m_SplitVertList[SplitIndex].dDimension); + Split.SplitVertList[SplitIndex].SetIsRelative(m_SplitVertList[SplitIndex].IsRelative); + Split.SplitVertList[SplitIndex].SetDimension(m_SplitVertList[SplitIndex].Dimension); } } if (m_SplitHorizList.Count == 0) @@ -527,8 +527,8 @@ namespace WebWindowComplex.Json Split.SetSplitQtyHoriz(m_SplitHorizList.Count - 1, true); for (var SplitIndex = 0; SplitIndex <= m_SplitHorizList.Count - 1; SplitIndex++) { - Split.SplitHorizList[SplitIndex].SetIsRelative(m_SplitHorizList[SplitIndex].bIsRelative); - Split.SplitHorizList[SplitIndex].SetDimension(m_SplitHorizList[SplitIndex].dDimension); + Split.SplitHorizList[SplitIndex].SetIsRelative(m_SplitHorizList[SplitIndex].IsRelative); + Split.SplitHorizList[SplitIndex].SetDimension(m_SplitHorizList[SplitIndex].Dimension); } } foreach (var Area in AreaList) @@ -548,9 +548,9 @@ namespace WebWindowComplex.Json public JsonSplitted() : base(AreaTypes.SPLITTED) { } - public JsonSplitted(int nGroupId) : base(AreaTypes.SPLITTED) + public JsonSplitted(int GroupId) : base(AreaTypes.SPLITTED) { - GroupId = nGroupId; + base.GroupId = GroupId; } internal override Area Deserialize(Area ParentArea, Window ParentWindow) @@ -593,10 +593,10 @@ namespace WebWindowComplex.Json { } - public JsonFill(FillTypes FillType, int nGroupId) : base(AreaTypes.FILL) + public JsonFill(FillTypes FillType, int GroupId) : base(AreaTypes.FILL) { m_FillType = FillType; - GroupId = nGroupId; + base.GroupId = GroupId; } internal override Area Deserialize(Area ParentArea, Window ParentWindow) @@ -622,7 +622,7 @@ namespace WebWindowComplex.Json { private int m_nIndex; [JsonProperty] - public int nIndex + public int Index { get { @@ -645,9 +645,9 @@ namespace WebWindowComplex.Json } } - public JsonJoint(int nIndex, Joints JointType) + public JsonJoint(int Index, Joints JointType) { - m_nIndex = nIndex; + m_nIndex = Index; m_JointType = JointType; } @@ -688,10 +688,10 @@ namespace WebWindowComplex.Json } } - public JsonHwOption(string sName, string sValue) + public JsonHwOption(string Name, string Value) { - m_Name = sName; - m_Value = sValue; + m_Name = Name; + m_Value = Value; } //internal AGBOption Deserialize() @@ -706,7 +706,7 @@ namespace WebWindowComplex.Json { private int m_nIndex; [JsonProperty] - public int nIndex + public int Index { get { @@ -716,7 +716,7 @@ namespace WebWindowComplex.Json private string m_sName; [JsonProperty] - public string sName + public string Name { get { @@ -726,7 +726,7 @@ namespace WebWindowComplex.Json private double m_dValue; [JsonProperty] - public double dValue + public double Value { get { @@ -738,11 +738,11 @@ namespace WebWindowComplex.Json } } - public JsonFrameDimension(int nIndex, string sName, double dValue) + public JsonFrameDimension(int Index, string Name, double Value) { - m_nIndex = nIndex; - m_sName = sName; - m_dValue = dValue; + m_nIndex = Index; + m_sName = Name; + m_dValue = Value; } } @@ -750,7 +750,7 @@ namespace WebWindowComplex.Json { private int m_nSashId; [JsonProperty] - public int nSashId + public int SashId { get { @@ -771,7 +771,7 @@ namespace WebWindowComplex.Json private bool m_bHasHandle; [JsonProperty] - public bool bHasHandle + public bool HasHandle { get { @@ -785,7 +785,7 @@ namespace WebWindowComplex.Json private double m_dDimension; [JsonProperty] - public double dDimension + public double Dimension { get { @@ -797,12 +797,12 @@ namespace WebWindowComplex.Json } } - public JsonSashDimension(Openings OpeningType, bool bHasHandle, double dDimension, int nSashId) + public JsonSashDimension(Openings OpeningType, bool HasHandle, double Dimension, int SashId) { m_OpeningType = OpeningType; - m_bHasHandle = bHasHandle; - m_dDimension = dDimension; - m_nSashId = nSashId; + m_bHasHandle = HasHandle; + m_dDimension = Dimension; + m_nSashId = SashId; } } @@ -810,7 +810,7 @@ namespace WebWindowComplex.Json { private bool m_bIsRelative = false; [JsonProperty] - public bool bIsRelative + public bool IsRelative { get { @@ -820,7 +820,7 @@ namespace WebWindowComplex.Json private double m_dDimension; [JsonProperty] - public double dDimension + public double Dimension { get { @@ -832,10 +832,10 @@ namespace WebWindowComplex.Json } } - public JsonSplitDimension(bool bIsRelative, double dDimension) + public JsonSplitDimension(bool IsRelative, double Dimension) { - m_bIsRelative = bIsRelative; - m_dDimension = dDimension; + m_bIsRelative = IsRelative; + m_dDimension = Dimension; } } diff --git a/WebWindowComplex/Models/AGBOptionCombo.cs b/WebWindowComplex/Models/AGBOptionCombo.cs index 352fe03..7d4f5ea 100644 --- a/WebWindowComplex/Models/AGBOptionCombo.cs +++ b/WebWindowComplex/Models/AGBOptionCombo.cs @@ -50,7 +50,7 @@ namespace WebWindowComplex.Models internal override JsonHwOption Serialize() { - JsonHwOption JsonHwOption = new JsonHwOption(sName, m_sValue.sDescription); + JsonHwOption JsonHwOption = new JsonHwOption(sName, m_sValue.sValue); return JsonHwOption; } diff --git a/WebWindowComplex/Models/Area.cs b/WebWindowComplex/Models/Area.cs index 858f6de..5292492 100644 --- a/WebWindowComplex/Models/Area.cs +++ b/WebWindowComplex/Models/Area.cs @@ -117,6 +117,7 @@ namespace WebWindowComplex.Models // Inserisco il riempimento precedente AreaList[0].AreaList.Add(ContentArea[0]); AreaList[0].AreaList[0].SetParentArea(AreaList[0]); + // Richiesta SVG con hardware di default ParentWindow.OnUpdatePreview(ParentWindow.sSerialized()); } diff --git a/WebWindowComplex/Models/Sash.cs b/WebWindowComplex/Models/Sash.cs index 636d240..c96580d 100644 --- a/WebWindowComplex/Models/Sash.cs +++ b/WebWindowComplex/Models/Sash.cs @@ -34,8 +34,8 @@ namespace WebWindowComplex.Models #region Public Events - public event EventHandler OnReqShape = delegate { }; - public event EventHandler OnReqHwOption = delegate { }; + //public event EventHandler OnReqShape = delegate { }; + //public event EventHandler OnReqHwOption = delegate { }; #endregion Public Events @@ -233,8 +233,8 @@ namespace WebWindowComplex.Models #if false // calcolo senza hw m_ParentWindow.OnUpdatePreview(JsonConvert.SerializeObject(m_ParentWindow.Serialize(true))); - m_ParentWindow.OnUpdatePreview(m_ParentWindow.sSerialized(true)); #endif + m_ParentWindow.OnUpdatePreview(m_ParentWindow.sSerialized(true)); // continuo refresh //ReqRefreshShape(); RefreshHardwareList(); @@ -486,7 +486,7 @@ namespace WebWindowComplex.Models m_CurrShape = ""; // chiamata evento calcolo shape: gruppo da calcolare - OnReqShapePreview(m_ParentWindow.sSerialized(), GroupId); + m_ParentWindow.OnReqShapePreview(m_ParentWindow.sSerialized(), GroupId); } } @@ -497,7 +497,7 @@ namespace WebWindowComplex.Models { HwOptionList.Clear(); // chiamata evento calcolo opzioni hardware - OnReqHwOptionPreview(m_ParentWindow.sSerialized(), GroupId); + m_ParentWindow.OnReqHwOptionPreview(m_ParentWindow.sSerialized(), GroupId ); } public void SetSelFamilyHardware(string sFamilyHw) @@ -552,7 +552,7 @@ namespace WebWindowComplex.Models newSash.SetSashBottomRail(false); newSash.SetSashBottomRailQty(0); newSash.SetSelFamilyHardware(Sash.s_FamilyHardwareList.First()); - newSash.ReqRefreshShape(); + //newSash.ReqRefreshShape(); newSash.RefreshHardwareOptionList(); newSash.SetFirstHardware(); return newSash; @@ -638,25 +638,25 @@ namespace WebWindowComplex.Models } } - internal void OnReqShapePreview(string sJwd, int groupId) - { - OnReqShapeEventArgs e = new OnReqShapeEventArgs(sJwd, groupId); - EventHandler handler = OnReqShape; - if (handler != null) - { - handler(this, e); - } - } + //internal void OnReqShapePreview(string sJwd, int groupId) + //{ + // OnReqShapeEventArgs e = new OnReqShapeEventArgs(sJwd, groupId); + // EventHandler handler = OnReqShape; + // if (handler != null) + // { + // handler(this, e); + // } + //} - internal void OnReqHwOptionPreview(string sJwd, int groupId) - { - OnReqHwOptEventArgs e = new OnReqHwOptEventArgs(sJwd, groupId); - EventHandler handler = OnReqHwOption; - if (handler != null) - { - handler(this, e); - } - } + //internal void OnReqHwOptionPreview(string sJwd, int groupId) + //{ + // OnReqHwOptEventArgs e = new OnReqHwOptEventArgs(sJwd, groupId); + // EventHandler handler = OnReqHwOption; + // if (handler != null) + // { + // handler(this, e); + // } + //} internal void RefreshHardwareOptionList() { @@ -755,7 +755,7 @@ namespace WebWindowComplex.Models case HwOptionTypes.COMBO: { AGBOptionCombo OptCombo = (AGBOptionCombo)HwOption; - var selValue = OptCombo.ValueList.Where(x => x.sDescription == selHwOption.Value).First(); + var selValue = OptCombo.ValueList.Where(x => x.sValue == selHwOption.Value).First(); OptCombo.sValue = selValue; break; } @@ -841,12 +841,12 @@ namespace WebWindowComplex.Models internal void SetSelHardwareFromId(string sId) { if (m_HardwareList.Count == 0) - SelHardware = m_HardwareCompleteList.FirstOrDefault(x => x.Id.Equals(sId)) ?? new Hardware(CustomHwId, "", "", Enums.OpeningTypes.Null, "", 0, 0); + m_SelHardware = m_HardwareCompleteList.FirstOrDefault(x => x.Id.Equals(sId)) ?? new Hardware(CustomHwId, "", "", Enums.OpeningTypes.Null, "", 0, 0); else - SelHardware = m_HardwareList.FirstOrDefault(x => x.Id.Equals(sId)) ?? new Hardware(CustomHwId, "", "", Enums.OpeningTypes.Null, "", 0, 0); + m_SelHardware = m_HardwareList.FirstOrDefault(x => x.Id.Equals(sId)) ?? new Hardware(CustomHwId, "", "", Enums.OpeningTypes.Null, "", 0, 0); if (SelHardware.Id == "") - SelHardware = m_HardwareList.First(); - ReqRefreshHwOption(); + m_SelHardware = m_HardwareList.First(); + //ReqRefreshHwOption(); } #endregion Internal Methods diff --git a/WebWindowComplex/Models/Window.cs b/WebWindowComplex/Models/Window.cs index 24440a4..ab31bdc 100644 --- a/WebWindowComplex/Models/Window.cs +++ b/WebWindowComplex/Models/Window.cs @@ -20,6 +20,8 @@ namespace WebWindowComplex.Models #region Public Events public event EventHandler OnPreview = delegate { }; + public event EventHandler OnReqShape = delegate { }; + public event EventHandler OnReqHwOption = delegate { }; #endregion Public Events @@ -103,6 +105,26 @@ namespace WebWindowComplex.Models } } + internal void OnReqShapePreview(string sJwd, int groupId) + { + OnReqShapeEventArgs e = new OnReqShapeEventArgs(sJwd, groupId); + EventHandler handler = OnReqShape; + if (handler != null) + { + handler(this, e); + } + } + + internal void OnReqHwOptionPreview(string sJwd, int groupId) + { + OnReqHwOptEventArgs e = new OnReqHwOptEventArgs(sJwd, groupId); + EventHandler handler = OnReqHwOption; + if (handler != null) + { + handler(this, e); + } + } + /// /// Serializzazione dell'oggetto windows /// diff --git a/WebWindowComplex/TableComp.razor.cs b/WebWindowComplex/TableComp.razor.cs index 652ca8d..4697947 100644 --- a/WebWindowComplex/TableComp.razor.cs +++ b/WebWindowComplex/TableComp.razor.cs @@ -74,6 +74,8 @@ namespace WebWindowComplex if (m_CurrWindow != null) { m_CurrWindow.OnPreview -= M_CurrWindow_OnPreview; + m_CurrWindow.OnReqHwOption -= M_CurrWindow_OnHwOption; + m_CurrWindow.OnReqShape -= M_CurrWindow_OnShape; m_CurrWindow = null; } } @@ -758,10 +760,14 @@ namespace WebWindowComplex if (m_CurrWindow != null) { m_CurrWindow.OnPreview -= M_CurrWindow_OnPreview; + m_CurrWindow.OnReqHwOption -= M_CurrWindow_OnHwOption; + m_CurrWindow.OnReqShape -= M_CurrWindow_OnShape; m_CurrWindow = null; } m_CurrWindow = WindowFromJson.Deserialize(); m_CurrWindow.OnPreview += M_CurrWindow_OnPreview; + m_CurrWindow.OnReqHwOption += M_CurrWindow_OnHwOption; + m_CurrWindow.OnReqShape += M_CurrWindow_OnShape; // Recupero dimensioni Frame e Joint del frame della finestra precedente if (m_PreviousWindow != null) { @@ -926,7 +932,6 @@ namespace WebWindowComplex // richiedo update shape List reqList = SashList.Select(x => x.GroupId).ToList(); _ = DoReqShape(reqList); - //await DoPreviewSvg(); } /// @@ -1161,6 +1166,28 @@ namespace WebWindowComplex _ = EC_DoUpdate.InvokeAsync(Args); } + private void M_CurrWindow_OnHwOption(object? sender, OnReqHwOptEventArgs e) + { + Dictionary Args = new Dictionary(); + Args.Add("Mode", $"{(int)Enums.QuestionModes.HARDWARE}"); + Args.Add("SubMode", $"{(int)Enums.QuestionHwSubModes.HARDWAREOPTIONS}"); + Args.Add("Jwd", e.sJwd); + string listGroupId = JsonConvert.SerializeObject(new List { e.nGroupId }); + Args.Add("GroupId", listGroupId); + _ = EC_DoUpdate.InvokeAsync(Args); + } + + private void M_CurrWindow_OnShape(object? sender, OnReqShapeEventArgs e) + { + Dictionary Args = new Dictionary(); + Args.Add("Mode", $"{(int)Enums.QuestionModes.HARDWARE}"); + Args.Add("SubMode", $"{(int)Enums.QuestionHwSubModes.SASHSHAPE}"); + Args.Add("Jwd", e.sJwd); + string listGroupId = JsonConvert.SerializeObject(new List { e.groupId }); + Args.Add("GroupId", listGroupId); + _ = EC_DoUpdate.InvokeAsync(Args); + } + /// /// Calcola larghezza colonna contenente nav da mostrare /// @@ -1349,7 +1376,7 @@ namespace WebWindowComplex private async Task UpdateHwOptions(Sash newSash) { // richiesta calcolo opzioni hardware per la singola sash group - string req = newSash.SelHardware.Id; + //string req = newSash.SelHardware.Id; List reqList = new List() { newSash.GroupId }; // chiamo con gruppo della nuova sash await DoReqOptHardware(reqList); diff --git a/WebWindowComplex/WebWindowComplex.csproj b/WebWindowComplex/WebWindowComplex.csproj index fc2cdb5..9e0959b 100644 --- a/WebWindowComplex/WebWindowComplex.csproj +++ b/WebWindowComplex/WebWindowComplex.csproj @@ -6,7 +6,7 @@ net8.0 enable enable - 2.7.10.3017 + 2.7.10.3114 Annamaria Sassi Egalware Componente gestione Configurazioni avanzate Window per LUX @@ -218,6 +218,22 @@ + + + + + + + + + + + + + + + + diff --git a/WebWindowConfigurator/WebWindowConfigurator.csproj b/WebWindowConfigurator/WebWindowConfigurator.csproj index dea51fc..f4c5bb5 100644 --- a/WebWindowConfigurator/WebWindowConfigurator.csproj +++ b/WebWindowConfigurator/WebWindowConfigurator.csproj @@ -6,7 +6,7 @@ net8.0 enable enable - 2.7.10.3017 + 2.7.10.3114 Annamaria Sassi Egalware Componente gestione JWD per LUX @@ -318,6 +318,26 @@ + + + + + + + + + + + + + + + + + + + +