Merge branch 'release/AddAreaProfile_01'

This commit is contained in:
Samuele Locatelli
2026-01-27 17:04:37 +01:00
24 changed files with 601 additions and 197 deletions
+2 -2
View File
@@ -128,10 +128,10 @@ Vengono richieste nei seguenti casi:
Descrive il tipo di riempimento: vetro o pannello.
# Richieste di informazioni a EgwMultiEnginManager
## Richieste di informazioni a EgwMultiEnginManager
Nel componente sono presenti quattro tipi di richieste di informazioni al programma EgwMultiEngineManager:
1. SVG: serve per avere SVG dato il JWD per poter rappresentare il disegno. La domanda è costituita dal JWD e la risposta contiene il SVG;
2. Forma del telaio: serve per poter avere la lista degli hardware coerenti con le caratteristiche scelte. La domanda è costituita dal JWD e dalla lista di groupId interessati. La risposta contiene un dizionario di valori interi-stringa che rappresentano groupId-forma;
3. Hardware option: serve per avere le opzioni relative all'hardware selezionato. La domanda è costituita dal JWD e la lista di groupId interessati. La risposta contiene un dizionario interi-stringa che rappresentano groupId-opzioni hardware. Le opzioni hardware sono restituite in formato xml;
4. Profili degli elementi: serve per avere i profili degli elementi del groupId richiesto (nel caso di gruppi di ante gli elemeneti sono specificati per ogni anta). La domanda è costituita dal JWD e dalla lista di groupId interessati. La risposta contiene un dizionario di valori interi-stringhe.
4. Profili degli elementi: serve per avere i profili degli elementi groupId richiesto (nel caso di gruppi di ante gli elemeneti sono specificati per ogni anta). La domanda è costituita dal JWD e dalla lista di groupId interessati. La risposta contiene un dizionario di valori interi-stringhe.
+7 -8
View File
@@ -29,7 +29,7 @@ namespace Test.UI.Components.Pages
DLService.PipeSvg.EA_NewMessage -= PipeSvg_EA_NewMessage;
DLService.PipeShape.EA_NewMessage -= PipeShape_EA_NewMessage;
DLService.PipeHwOpt.EA_NewMessage -= PipeHwOption_EA_NewMessage;
//DLService.PipeElement.EA_NewMessage -= PipeElement_EA_NewMessage;
//DLService.PipeAreaProfile.EA_NewMessage -= PipeAreaProfile_EA_NewMessage;
}
#endregion Public Methods
@@ -49,7 +49,7 @@ namespace Test.UI.Components.Pages
protected bool User = false;
protected Dictionary<int, string> currGroupShape = new Dictionary<int, string>();
protected Dictionary<int, string> currElement = new Dictionary<int, string>();
protected List<AreaProfiles> currElement = new List<AreaProfiles>();
protected Dictionary<int, string> currHwOption = new Dictionary<int, string>();
protected string currJwd = "...";
protected Dictionary<string, string> m_CurrArgs = new Dictionary<string, string>();
@@ -350,7 +350,7 @@ namespace Test.UI.Components.Pages
DLService.PipeSvg.EA_NewMessage += PipeSvg_EA_NewMessage;
DLService.PipeShape.EA_NewMessage += PipeShape_EA_NewMessage;
DLService.PipeHwOpt.EA_NewMessage += PipeHwOption_EA_NewMessage;
//DLService.PipeElement.EA_NewMessage += PipeElement_EA_NewMessage;
//DLService.PipeAreaProfile.EA_NewMessage += PipeAreaProfile_EA_NewMessage;
}
#endregion Protected Methods
@@ -509,7 +509,7 @@ namespace Test.UI.Components.Pages
await Task.Delay(1);
}
private async void PipeElement_EA_NewMessage(object? sender, EventArgs e)
private async void PipeAreaProfile_EA_NewMessage(object? sender, EventArgs e)
{
// aggiorno visualizzazione
PubSubEventArgs currArgs = (PubSubEventArgs)e;
@@ -519,9 +519,9 @@ namespace Test.UI.Components.Pages
if (currArgs.msgUid.StartsWith($"{channelElement}:{windowUid}"))
{
// deserializzo il dizionario delle risposte...
var rawDict = JsonConvert.DeserializeObject<Dictionary<int, string>>(currArgs.newMessage);
currElement = rawDict ?? new Dictionary<int, string>();
CurrData.DictElement = currElement;
var rawDict = JsonConvert.DeserializeObject<List<AreaProfiles>>(currArgs.newMessage);
currElement = rawDict ?? new List<AreaProfiles>();
CurrData.ProfElementList = currElement;
}
await InvokeAsync(StateHasChanged);
}
@@ -551,7 +551,6 @@ namespace Test.UI.Components.Pages
/// <returns></returns>
private async Task ReloadData()
{
//return base.OnInitializedAsync();
AvailHardwareList = new List<Hardware>();
if (File.Exists(cFileHardware))
{
+36
View File
@@ -18,6 +18,24 @@
"Value": 1200.0
}
],
"ElementDimensionList": [
{
"Index": 1,
"Value": 78.0
},
{
"Index": 2,
"Value": 78.0
},
{
"Index": 3,
"Value": 78.0
},
{
"Index": 4,
"Value": 78.0
}
],
"JointList": [
{
"Index": 1,
@@ -50,6 +68,24 @@
"HasHandle": true,
"Dimension": 100.0,
"MeasureType": "PERCENTAGE",
"ElementDimensionList": [
{
"Index": 1,
"Value": 78.0
},
{
"Index": 2,
"Value": 78.0
},
{
"Index": 3,
"Value": 78.0
},
{
"Index": 4,
"Value": 78.0
}
],
"JointList": [
{
"Index": 1,
+56 -2
View File
@@ -23,6 +23,24 @@
"Value": 1800.0
}
],
"ElementDimensionList": [
{
"Index": 1,
"Value": 78.0
},
{
"Index": 2,
"Value": 78.0
},
{
"Index": 3,
"Value": 78.0
},
{
"Index": 4,
"Value": 78.0
}
],
"JointList": [
{
"Index": 1,
@@ -52,9 +70,27 @@
{
"SashId": 1,
"OpeningType": "TILTTURN_LEFT",
"HasHandle": true,
"Dimension": 50.0,
"MeasureType": "PERCENTAGE",
"HasHandle": true,
"ElementDimensionList": [
{
"Index": 1,
"Value": 78.0
},
{
"Index": 2,
"Value": 78.0
},
{
"Index": 3,
"Value": 78.0
},
{
"Index": 4,
"Value": 78.0
}
],
"JointList": [
{
"Index": 1,
@@ -77,9 +113,27 @@
{
"SashId": 2,
"OpeningType": "TURNONLY_RIGHT",
"HasHandle": false,
"Dimension": 50.0,
"MeasureType": "PERCENTAGE",
"HasHandle": false,
"ElementDimensionList": [
{
"Index": 1,
"Value": 78.0
},
{
"Index": 2,
"Value": 78.0
},
{
"Index": 3,
"Value": 78.0
},
{
"Index": 4,
"Value": 78.0
}
],
"JointList": [
{
"Index": 1,
+61
View File
@@ -18,6 +18,24 @@
"Value": 2100.0
}
],
"ElementDimensionList": [
{
"Index": 1,
"Value": 78.0
},
{
"Index": 2,
"Value": 78.0
},
{
"Index": 3,
"Value": 78.0
},
{
"Index": 4,
"Value": 78.0
}
],
"JointList": [
{
"Index": 1,
@@ -55,6 +73,13 @@
"Dimension": 60.0
}
],
"ElementDimVertList": [],
"ElementDimHorizList": [
{
"Index": 1,
"Value": 78.0
}
],
"GroupId": 2,
"AreaList": [
{
@@ -81,6 +106,24 @@
"HasHandle": false,
"Dimension": 50.0,
"MeasureType": "PERCENTAGE",
"ElementDimensionList": [
{
"Index": 1,
"Value": 78.0
},
{
"Index": 2,
"Value": 78.0
},
{
"Index": 3,
"Value": 78.0
},
{
"Index": 4,
"Value": 78.0
}
],
"JointList": [
{
"Index": 1,
@@ -106,6 +149,24 @@
"HasHandle": true,
"Dimension": 50.0,
"MeasureType": "PERCENTAGE",
"ElementDimensionList": [
{
"Index": 1,
"Value": 78.0
},
{
"Index": 2,
"Value": 78.0
},
{
"Index": 3,
"Value": 78.0
},
{
"Index": 4,
"Value": 78.0
}
],
"JointList": [
{
"Index": 1,
+61
View File
@@ -23,6 +23,24 @@
"Value": 1800.0
}
],
"ElementDimensionList": [
{
"Index": 1,
"Value": 78.0
},
{
"Index": 2,
"Value": 78.0
},
{
"Index": 3,
"Value": 78.0
},
{
"Index": 4,
"Value": 78.0
}
],
"JointList": [
{
"Index": 1,
@@ -60,6 +78,13 @@
}
],
"SplitHorizList": [],
"ElementDimVertList": [
{
"Index": 1,
"Value": 78.0
}
],
"ElementDimHorizList": [],
"GroupId": 2,
"AreaList": [
{
@@ -74,6 +99,24 @@
"HasHandle": true,
"Dimension": 100.0,
"MeasureType": "PERCENTAGE",
"ElementDimensionList": [
{
"Index": 1,
"Value": 78.0
},
{
"Index": 2,
"Value": 78.0
},
{
"Index": 3,
"Value": 78.0
},
{
"Index": 4,
"Value": 78.0
}
],
"JointList": [
{
"Index": 1,
@@ -154,6 +197,24 @@
"HasHandle": true,
"Dimension": 100.0,
"MeasureType": "PERCENTAGE",
"ElementDimensionList": [
{
"Index": 1,
"Value": 78.0
},
{
"Index": 2,
"Value": 78.0
},
{
"Index": 3,
"Value": 78.0
},
{
"Index": 4,
"Value": 78.0
}
],
"JointList": [
{
"Index": 1,
+30
View File
@@ -18,6 +18,24 @@
"Value": 1200.0
}
],
"ElementDimensionList": [
{
"Index": 1,
"Value": 78.0
},
{
"Index": 2,
"Value": 78.0
},
{
"Index": 3,
"Value": 78.0
},
{
"Index": 4,
"Value": 78.0
}
],
"JointList": [
{
"Index": 1,
@@ -73,6 +91,18 @@
"MeasureType": "PERCENTAGE"
}
],
"ElementDimVertList": [
{
"Index": 1,
"Value": 78.0
}
],
"ElementDimHorizList": [
{
"Index": 1,
"Value": 78.0
}
],
"GroupId": 2,
"AreaList": [
{
+19
View File
@@ -18,6 +18,24 @@
"Value": 1800.0
}
],
"ElementDimensionList": [
{
"Index": 1,
"Value": 78.0
},
{
"Index": 2,
"Value": 78.0
},
{
"Index": 3,
"Value": 78.0
},
{
"Index": 4,
"Value": 78.0
}
],
"JointList": [
{
"Index": 1,
@@ -57,6 +75,7 @@
"MeasureType": "PERCENTAGE"
}
],
"ElementDimVertList": [],
"ElementDimHorizList": [
{
"Index": 1,
+19 -6
View File
@@ -18,6 +18,24 @@
"Value": 1800.0
}
],
"ElementDimensionList": [
{
"Index": 1,
"Value": 78.0
},
{
"Index": 2,
"Value": 78.0
},
{
"Index": 3,
"Value": 78.0
},
{
"Index": 4,
"Value": 78.0
}
],
"JointList": [
{
"Index": 1,
@@ -63,12 +81,7 @@
"Value": 78.0
}
],
"ElemDimVertList": [
{
"Index": 1,
"Value": 78.0
}
],
"ElementDimHorizList": [],
"GroupId": 2,
"AreaList": [
{
+33
View File
@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WebWindowComplex
{
public class AreaProfiles
{
/// <summary>
/// Numero di area
/// </summary>
public int GroupId { get; set; }
/// <summary>
/// Numero di anta (se è una sash)
/// </summary>
public int SashId { get; set; }
/// <summary>
/// Lista profili
/// </summary>
public List<string> Profiles { get; set; }
public AreaProfiles(int groupId, int sashId, List<string> profiles)
{
GroupId = groupId;
SashId = sashId;
Profiles = profiles;
}
}
}
+15 -12
View File
@@ -279,20 +279,23 @@ namespace WebWindowComplex.Compo
/// <returns></returns>
private async Task ChangeTypeDimension()
{
CurrSashDim.bDimensionLight = !CurrSashDim.bDimensionLight;
if (CurrSashDim.bDimensionLight)
if (CurrSashDim.SelMeasureType.Equals(MeasureTypes.ABSOLUTE))
{
CurrSashDim.dDimension = CurrSashDim.dDimension -
CurrSashDim.ElementDimensionList.ElementAt(1).dDimension -
CurrSashDim.ElementDimensionList.ElementAt(3).dDimension;
CurrSashDim.bDimensionLight = !CurrSashDim.bDimensionLight;
if (CurrSashDim.bDimensionLight)
{
CurrSashDim.dDimension = CurrSashDim.dDimension -
CurrSashDim.ElementDimensionList.ElementAt(1).dDimension -
CurrSashDim.ElementDimensionList.ElementAt(3).dDimension;
}
else
{
CurrSashDim.dDimension = CurrSashDim.dDimension +
CurrSashDim.ElementDimensionList.ElementAt(1).dDimension +
CurrSashDim.ElementDimensionList.ElementAt(3).dDimension;
}
await EC_UpdateSash.InvokeAsync(CurrSashGroup);
}
else
{
CurrSashDim.dDimension = CurrSashDim.dDimension +
CurrSashDim.ElementDimensionList.ElementAt(1).dDimension +
CurrSashDim.ElementDimensionList.ElementAt(3).dDimension;
}
await EC_UpdateSash.InvokeAsync(CurrSashGroup);
}
/// <summary>
+10 -6
View File
@@ -104,13 +104,17 @@ namespace WebWindowComplex.Compo
{
if (CurrFrameWindow.SelThresholdFromType != value)
{
CurrFrameWindow.SelThresholdFromType = value;
var args = new DataUpdateFrame()
string valueName = CurrFrameWindow.ThresholdList.Where(x => x.Type.Equals(value)).First().Name;
if (SashList.Count > 0 || (SashList.Count == 0 && !valueName.Equals("Threshold")))
{
currFrame = CurrFrameWindow,
svgNoHw = false
};
_ = EC_UpdateFrame.InvokeAsync(args);
CurrFrameWindow.SelThresholdFromType = value;
var args = new DataUpdateFrame()
{
currFrame = CurrFrameWindow,
svgNoHw = false
};
_ = EC_UpdateFrame.InvokeAsync(args);
}
}
}
}
@@ -195,6 +195,7 @@ namespace WebWindowComplex.Compo
protected async Task RemoveArea()
{
CurrSashGroup.Remove();
FrameWindow.SetSelThresholdFromName(FrameWindow.ThresholdList.FirstOrDefault(x => x.Name != "Threshold").Name);
var args = new DataUpdateFrame()
{
currFrame = FrameWindow
+4 -3
View File
@@ -35,9 +35,9 @@ namespace WebWindowComplex.DTO
public Dictionary<int, string> DictOptionsXml { get; set; } = new Dictionary<int, string>();
/// <summary>
/// Dizionario Element
/// Lista profili Element
/// </summary>
public Dictionary<int, string> DictElement { get; set; } = new Dictionary<int, string>();
public List<AreaProfiles> ProfElementList { get; set; } = new List<AreaProfiles>();
#endregion Public Properties
@@ -61,7 +61,8 @@ namespace WebWindowComplex.DTO
return false;
if (!DictUtils.DictAreEqual(DictShape, item.DictShape))
return false;
if (ProfElementList.Count == item.ProfElementList.Count && !ProfElementList.OrderBy(x => x).SequenceEqual(item.ProfElementList.OrderBy(x => x)))
return false;
return true;
}
+31 -31
View File
@@ -539,15 +539,6 @@ namespace WebWindowComplex.Json
}
}
private List<JsonElementDimension> m_ElemDimHorizList = new List<JsonElementDimension>();
[JsonProperty]
public List<JsonElementDimension> ElementDimHorizList
{
get
{
return m_ElemDimHorizList;
}
}
private List<JsonElementDimension> m_ElemDimVertList = new List<JsonElementDimension>();
[JsonProperty]
@@ -559,6 +550,15 @@ namespace WebWindowComplex.Json
}
}
private List<JsonElementDimension> m_ElemDimHorizList = new List<JsonElementDimension>();
[JsonProperty]
public List<JsonElementDimension> ElementDimHorizList
{
get
{
return m_ElemDimHorizList;
}
}
public JsonSplit() : base(AreaTypes.SPLIT)
{
}
@@ -571,48 +571,48 @@ namespace WebWindowComplex.Json
internal override Area Deserialize(Area ParentArea, Window ParentWindow)
{
Split Split = new Split(ParentArea, ParentWindow);
Split.SetGroupId(GroupId);
Split.SetAreaType(AreaTypes.SPLIT);
Split.SetSplitShape(m_SplitShape);
Split.SetSplitStartVert(m_SplitStartVert);
Split split = new Split(ParentArea, ParentWindow);
split.SetGroupId(GroupId);
split.SetAreaType(AreaTypes.SPLIT);
split.SetSplitShape(m_SplitShape);
split.SetSplitStartVert(m_SplitStartVert);
if (m_SplitVertList.Count == 0)
Split.SetSplitQtyVert(0);
split.SetSplitQtyVert(0);
else
{
Split.SetSplitQtyVert(m_SplitVertList.Count - 1);
split.SetSplitQtyVert(m_SplitVertList.Count - 1);
for (var SplitIndex = 0; SplitIndex <= m_SplitVertList.Count - 1; SplitIndex++)
{
Split.SplitVertList[SplitIndex].SetIsRelative(m_SplitVertList[SplitIndex].IsRelative);
Split.SplitVertList[SplitIndex].SetDimension(m_SplitVertList[SplitIndex].Dimension);
Split.SplitVertList[SplitIndex].SetMeasureType(m_SplitVertList[SplitIndex].MeasureType);
split.SplitVertList[SplitIndex].SetIsRelative(m_SplitVertList[SplitIndex].IsRelative);
split.SplitVertList[SplitIndex].SetDimension(m_SplitVertList[SplitIndex].Dimension);
split.SplitVertList[SplitIndex].SetMeasureType(m_SplitVertList[SplitIndex].MeasureType);
}
foreach (var ElementDimension in ElementDimVertList)
Split.ElemDimVertList.Add(ElementDimension.Deserialize((Area)ParentArea));
for (int index = 0; index < ElementDimVertList.Count; index++)
split.ElemDimVertList.ElementAt(index).SetDimension(m_ElemDimVertList[index].Value);
}
if (m_SplitHorizList.Count == 0)
Split.SetSplitQtyHoriz(0);
split.SetSplitQtyHoriz(0);
else
{
Split.SetSplitQtyHoriz(m_SplitHorizList.Count - 1);
split.SetSplitQtyHoriz(m_SplitHorizList.Count - 1);
for (var SplitIndex = 0; SplitIndex <= m_SplitHorizList.Count - 1; SplitIndex++)
{
Split.SplitHorizList[SplitIndex].SetIsRelative(m_SplitHorizList[SplitIndex].IsRelative);
Split.SplitHorizList[SplitIndex].SetDimension(m_SplitHorizList[SplitIndex].Dimension);
Split.SplitHorizList[SplitIndex].SetMeasureType(m_SplitHorizList[SplitIndex].MeasureType);
split.SplitHorizList[SplitIndex].SetIsRelative(m_SplitHorizList[SplitIndex].IsRelative);
split.SplitHorizList[SplitIndex].SetDimension(m_SplitHorizList[SplitIndex].Dimension);
split.SplitHorizList[SplitIndex].SetMeasureType(m_SplitHorizList[SplitIndex].MeasureType);
}
foreach (var ElementDimension in ElementDimHorizList)
Split.ElemDimHorizList.Add(ElementDimension.Deserialize((Area)ParentArea));
for (int index = 0; index < ElementDimHorizList.Count; index++)
split.ElemDimHorizList.ElementAt(index).SetDimension(m_ElemDimHorizList[index].Value);
}
foreach (var Area in AreaList)
{
var AreaDeserealized = Area.Deserialize(Split, ParentWindow);
var AreaDeserealized = Area.Deserialize(split, ParentWindow);
if (AreaDeserealized != null)
{
Split.AreaList.Add(AreaDeserealized);
split.AreaList.Add(AreaDeserealized);
}
}
return Split;
return split;
}
}
+6 -13
View File
@@ -43,7 +43,6 @@ namespace WebWindowComplex.Models
}
}
}
public int nIndex
{
get
@@ -72,7 +71,6 @@ namespace WebWindowComplex.Models
return m_ParentArea;
}
}
public double dOverlap
{
get
@@ -105,6 +103,10 @@ namespace WebWindowComplex.Models
m_sName = dValue;
}
public void SetOverlapElement(double dValue)
{
m_dOverlap = dValue;
}
public ElementDimension Copy()
{
@@ -116,11 +118,6 @@ namespace WebWindowComplex.Models
#region Internal Methods
internal void SetOverlap(double overlap)
{
m_dOverlap = overlap;
}
internal JsonElementDimension Serialize()
{
JsonElementDimension JsonElementDimension = new JsonElementDimension(m_nIndex, m_dDimension);
@@ -129,14 +126,10 @@ namespace WebWindowComplex.Models
#endregion Internal Methods
#region Protected Fields
protected Area m_ParentArea;
#endregion Protected Fields
#region Private Fields
private Area m_ParentArea;
private double m_dDimension;
private double m_dOverlap;
+51 -48
View File
@@ -13,9 +13,7 @@ namespace WebWindowComplex.Models
public class Frame : Area
{
#region Public Fields
// Lista hardware completa passata dal chiamante del componente
public static Dictionary<string, List<Threshold>> m_AllThresholdListOld = new Dictionary<string, List<Threshold>>();
// Lista soglie completa passata dal chiamante del componente
public static List<Threshold> m_AllThresholdList = new List<Threshold>();
@@ -681,54 +679,59 @@ namespace WebWindowComplex.Models
/// <returns></returns>
internal double AvailArea()
{
switch(m_Shape)
{
case Shapes.RECTANGLE:
case Shapes.RIGHTCHAMFER:
case Shapes.LEFTCHAMFER:
case Shapes.ARC:
case Shapes.ARC_FULL:
{
// larghezza - elementDim(1) - elementDim(3) + overlapDd + overlapSx
return DimensionList.FirstOrDefault(x => x.sName.Equals("Width")).dDimension -
ElementDimensionList.ElementAt(1).dDimension -
ElementDimensionList.ElementAt(3).dDimension +
ElementDimensionList.ElementAt(1).dOverlap +
ElementDimensionList.ElementAt(3).dOverlap;
}
case Shapes.DOUBLECHAMFER:
case Shapes.DOUBLEARC:
{
// larghezza - elementDim(1) - elementDim(4) + overlapDd + overlapSx
return DimensionList.FirstOrDefault(x => x.sName.Equals("Width")).dDimension -
ElementDimensionList.ElementAt(1).dDimension -
ElementDimensionList.ElementAt(4).dDimension +
ElementDimensionList.ElementAt(1).dOverlap +
ElementDimensionList.ElementAt(4).dOverlap;
}
// larghezza - elementDim(1) - elementDim(last) + overlapDd + overlapSx
return DimensionList.FirstOrDefault(x => x.sName.Equals("Width")).dDimension -
ElementDimensionList.ElementAt(1).dDimension -
ElementDimensionList.Last().dDimension +
ElementDimensionList.ElementAt(1).dOverlap +
ElementDimensionList.Last().dOverlap;
//switch (m_Shape)
//{
// case Shapes.RECTANGLE:
// case Shapes.RIGHTCHAMFER:
// case Shapes.LEFTCHAMFER:
// case Shapes.ARC:
// case Shapes.ARC_FULL:
// {
// // larghezza - elementDim(1) - elementDim(3) + overlapDd + overlapSx
// return DimensionList.FirstOrDefault(x => x.sName.Equals("Width")).dDimension -
// ElementDimensionList.ElementAt(1).dDimension -
// ElementDimensionList.ElementAt(3).dDimension +
// ElementDimensionList.ElementAt(1).dOverlap +
// ElementDimensionList.ElementAt(3).dOverlap;
// }
// case Shapes.DOUBLECHAMFER:
// case Shapes.DOUBLEARC:
// {
// // larghezza - elementDim(1) - elementDim(4) + overlapDd + overlapSx
// return DimensionList.FirstOrDefault(x => x.sName.Equals("Width")).dDimension -
// ElementDimensionList.ElementAt(1).dDimension -
// ElementDimensionList.ElementAt(4).dDimension +
// ElementDimensionList.ElementAt(1).dOverlap +
// ElementDimensionList.ElementAt(4).dOverlap;
// }
case Shapes.THREECENTERARC:
{
// larghezza - elementDim(1) - elementDim(5) + overlapDd + overlapSx
return DimensionList.FirstOrDefault(x => x.sName.Equals("Width")).dDimension -
ElementDimensionList.ElementAt(1).dDimension -
ElementDimensionList.ElementAt(5).dDimension +
ElementDimensionList.ElementAt(1).dOverlap +
ElementDimensionList.ElementAt(5).dOverlap;
}
// case Shapes.THREECENTERARC:
// {
// // larghezza - elementDim(1) - elementDim(5) + overlapDd + overlapSx
// return DimensionList.FirstOrDefault(x => x.sName.Equals("Width")).dDimension -
// ElementDimensionList.ElementAt(1).dDimension -
// ElementDimensionList.ElementAt(5).dDimension +
// ElementDimensionList.ElementAt(1).dOverlap +
// ElementDimensionList.ElementAt(5).dOverlap;
// }
case Shapes.TRIANGLE:
{
// larghezza
return DimensionList.FirstOrDefault(x => x.sName.Equals("Width")).dDimension;
}
// case Shapes.TRIANGLE:
// {
// // larghezza
// return DimensionList.FirstOrDefault(x => x.sName.Equals("Width")).dDimension;
// }
case Shapes.CUSTOM:
{
return -1;
}
}
return -1;
// case Shapes.CUSTOM:
// {
// return -1;
// }
// }
}
#endregion Internal Methods
@@ -177,8 +177,6 @@ namespace WebWindowComplex.Models
private bool m_bIsLen = false;
//private double m_dDimension;
private int m_nIndex;
private string m_sName;
+4 -5
View File
@@ -328,7 +328,10 @@ namespace WebWindowComplex.Models
}
set
{
m_bDimensionLight = value;
if(m_bDimensionLight != value)
{
m_bDimensionLight = value;
}
}
}
@@ -597,8 +600,6 @@ namespace WebWindowComplex.Models
private bool m_bHasHandle;
//private double m_dDimension;
private int m_nSashId;
private List<IdNameStruct> m_OpeningTypeList = new List<IdNameStruct>
@@ -639,8 +640,6 @@ namespace WebWindowComplex.Models
private bool m_bDimensionLight = false;
//private MeasureTypes m_SelMeasureType;
#endregion Private Fields
}
+21 -3
View File
@@ -92,7 +92,7 @@ namespace WebWindowComplex.Models
}
dLastDimension += m_SplitHorizList[m_SplitHorizList.Count - 1].dDimension;
m_SplitHorizList[m_SplitHorizList.Count - 1].SetDimension(dLastDimension);
ElemDimHorizList.RemoveAt(ElemDimHorizList.Count);
ElemDimHorizList.RemoveAt(ElemDimHorizList.Count-1);
}
// Controllo quanti split verticali ci sono
int nVert = m_SplitVertList.Count > 0 ? m_SplitVertList.Count : 1;
@@ -198,6 +198,8 @@ namespace WebWindowComplex.Models
dLastDimension += m_SplitVertList[m_SplitVertList.Count - 1].dDimension;
m_SplitVertList[m_SplitVertList.Count - 1].SetDimension(dLastDimension);
}
ElemDimVertList.RemoveAt(ElemDimVertList.Count - 1);
}
// Controllo quanti split orizzontali ci sono
int nHoriz = m_SplitHorizList.Count > 0 ? m_SplitHorizList.Count : 1;
@@ -511,8 +513,15 @@ namespace WebWindowComplex.Models
for (var SplitIndex = m_SplitHorizList.Count - 1; SplitIndex >= QtyHoriz; SplitIndex += -1)
m_SplitHorizList.RemoveAt(SplitIndex);
}
for (int i = 0; i < QtyHoriz; i++)
ElemDimHorizList.Add(new ElementDimension(this, i + 1, 78));
if(QtyHoriz == 0)
{
ElemDimHorizList.Clear();
}
else
{
for (int i = 0; i < QtyHoriz; i++)
ElemDimHorizList.Add(new ElementDimension(this, i + 1, 78));
}
}
internal void SetSplitQtyVert(int QtyVert)
@@ -539,6 +548,15 @@ namespace WebWindowComplex.Models
for (var SplitIndex = m_SplitVertList.Count - 1; SplitIndex >= QtyVert; SplitIndex += -1)
m_SplitVertList.RemoveAt(SplitIndex);
}
if (QtyVert == 0)
{
ElemDimVertList.Clear();
}
else
{
for (int i = 0; i < QtyVert; i++)
ElemDimVertList.Add(new ElementDimension(this, i + 1, 78));
}
}
internal void SetSplitShape(SplitShapes Value)
-16
View File
@@ -470,11 +470,6 @@ namespace WebWindowComplex.Models
return JsonSplitDimension;
}
//internal void SetDimension(double dValue)
//{
// m_dDimension = dValue;
//}
internal void SetIsRelative(bool value)
{
m_bIsRelative = value;
@@ -545,17 +540,6 @@ namespace WebWindowComplex.Models
private bool m_bIsVertListDim = false;
//private double m_dDimension;
//private List<IdNameStruct> m_MeasureTypeList = new List<IdNameStruct>
//{
// new IdNameStruct((int)MeasureTypes.ABSOLUTE, "Absolute"),
// new IdNameStruct((int)MeasureTypes.PROPORTIONAL, "Proportional"),
// new IdNameStruct((int)MeasureTypes.PERCENTAGE, "Percentage"),
//};
//private MeasureTypes m_SelMeasureType;
// reference
private Split m_Parent;
+76 -38
View File
@@ -168,6 +168,10 @@ namespace WebWindowComplex
{
get => m_SplittedList;
}
protected List<Split> SplitList
{
get => m_SplitList;
}
protected string SelColorMaterial { get; set; } = "";
protected string SelFamilyHardware { get; set; } = "";
@@ -175,11 +179,6 @@ namespace WebWindowComplex
protected string SelMaterial { get; set; } = ""!;
protected string SelProfile { get; set; } = "";
protected List<Split> SplitList
{
get => m_SplitList;
}
#endregion Protected Properties
#region Protected Methods
@@ -760,12 +759,12 @@ namespace WebWindowComplex
}
}
}
if(LiveData.DictElement.Count > 0)
if(LiveData.ProfElementList.Count > 0)
{
// Inserisco i profili ricevuti nei rispettivi Element
foreach (var item in LiveData.DictElement)
foreach (var item in LiveData.ProfElementList)
{
UpdateProfileElement(item.Profiles, item.GroupId, item.SashId);
}
}
}
@@ -1049,22 +1048,45 @@ namespace WebWindowComplex
AdvStep(CompileStep.Tree);
}
///// <summary>
///// Metodo per cercare un area precisa
///// </summary>
///// <param name="currentArea"> Area che si sta analizzando </param>
///// <param name="idSearch"> Id Area che si sta cercando </param>
///// <param name="itemSearch"> Area che si sta cercando </param>
///// <returns></returns>
//private Area SearchArea(Area currentArea, int idSearch, Area itemSearch)
//{
// if (currentArea.GroupId == idSearch && currentArea.AreaType.Equals(itemSearch.AreaType))
// {
// return currentArea;
// }
// foreach (Area child in currentArea.AreaList)
// {
// Area found = SearchArea(child, idSearch, itemSearch);
// if (found != null)
// {
// return found;
// }
// }
// return null;
//}
/// <summary>
/// Metodo per cercare un area precisa
/// Metodo per cercare un area precisa partendo da GroupId
/// </summary>
/// <param name="currentArea"> Area che si sta analizzando </param>
/// <param name="idSearch"> Id Area che si sta cercando </param>
/// <param name="itemSearch"> Area che si sta cercando </param>
/// <returns></returns>
private Area SearchArea(Area currentArea, int idSearch, Area itemSearch)
private Area SearchAreaFromGroupId(Area currentArea, int idSearch)
{
if (currentArea.GroupId == idSearch && currentArea.AreaType.Equals(itemSearch.AreaType))
if (currentArea.GroupId == idSearch)
{
return currentArea;
}
foreach (Area child in currentArea.AreaList)
{
Area found = SearchArea(child, idSearch, itemSearch);
Area found = SearchAreaFromGroupId(child, idSearch);
if (found != null)
{
return found;
@@ -1074,50 +1096,66 @@ namespace WebWindowComplex
}
/// <summary>
/// Metodo per cercare un area precisa
/// Metodo per aggiornare i nomi dei profili degli elementi
/// </summary>
/// <param name="currentArea"> Area che si sta analizzando </param>
/// <param name="idSearch"> Id Area che si sta cercando </param>
/// <param name="index"> Indice che si sta cercando </param>
/// <param name="profileNameList"> Lista dei profili </param>
/// <param name="GroupIdSearch"> Id Area che si sta cercando </param>
/// <param name="SashIdSearch"> Id dell'anta (se -1 non usare) </param>
/// <returns></returns>
private Area UpdateIdElement(Area currentArea, int idSearch, int index)
private void UpdateProfileElement(List<string> profileNameList, int GroupIdSearch, int SashIdSearch = -1)
{
switch (currentArea.AreaType)
// Cerco area corrispondente al GroupId
Area found = SearchAreaFromGroupId(FrameWindow, SashIdSearch);
switch (found.AreaType)
{
case AreaTypes.FRAME:
{
Frame frame = (Frame)currentArea;
foreach(var item in frame.ElementDimensionList)
Frame frame = (Frame)found;
for(int i = 0; i < frame.ElementDimensionList.Count; i++)
{
//if(item.nIndex == index)
frame.ElementDimensionList.ElementAt(i).SetNameElement(profileNameList.ElementAt(i));
}
break;
}
case AreaTypes.SASH:
{
Sash sash = (Sash)found;
SashDimension anta = sash.SashList.ElementAt(SashIdSearch);
for(int index = anta.ElementDimensionList.Count; index < profileNameList.Count; index++)
{
double valStd = Window.m_ParameterList.GetValueOrDefault(profileNameList.ElementAt(index) + "_DimStd");
anta.ElementDimensionList.Add(new ElementDimension(sash, index + 1, valStd));
}
for (int i = 0; i < anta.ElementDimensionList.Count; i++)
{
anta.ElementDimensionList.ElementAt(i).SetNameElement(profileNameList.ElementAt(i));
}
break;
}
case AreaTypes.SPLIT:
{
Split split = (Split)found;
for (int i = 0; i < split.ElemDimVertList.Count; i++)
{
split.ElemDimVertList.ElementAt(i).SetNameElement(profileNameList.ElementAt(i));
}
for (int i = split.ElemDimVertList.Count; i < split.ElemDimHorizList.Count; i++)
{
split.ElemDimHorizList.ElementAt(i).SetNameElement(profileNameList.ElementAt(i));
}
break;
}
}
foreach (Area child in currentArea.AreaList)
foreach (Area child in found.AreaList)
{
Area found = UpdateIdElement(child, idSearch, index);
if (found != null)
{
return found;
}
UpdateProfileElement(profileNameList, GroupIdSearch, SashIdSearch);
}
return null;
}
/// <summary>
/// Metodo per aggiornare valori della sezione General
/// </summary>
/// <param name="newVal"></param>
/// <param name="args"></param>
private void UpdatePreviewGeneral(DataUpdateGeneral args)
{
string Color = args.Color;
@@ -1209,7 +1247,7 @@ namespace WebWindowComplex
if (newFill != null)
{
// cerco il record
var currRec = (Fill)SearchArea(FrameWindow, newFill.GroupId, newFill);
var currRec = (Fill)SearchAreaFromGroupId(FrameWindow, newFill.GroupId);
// lo aggiorno
currRec = newFill;
await DoPreviewSvg();
@@ -1302,7 +1340,7 @@ namespace WebWindowComplex
if (newSash != null)
{
// cerco il record
var currRec = SearchArea(FrameWindow, newSash.GroupId, newSash);
var currRec = SearchAreaFromGroupId(FrameWindow, newSash.GroupId);
// lo aggiorno
currRec = newSash;
// resetto hw lst
@@ -1325,7 +1363,7 @@ namespace WebWindowComplex
if (newSash != null)
{
// cerco il record
var currRec = SearchArea(FrameWindow, newSash.GroupId, newSash);
var currRec = SearchAreaFromGroupId(FrameWindow, newSash.GroupId);
// lo aggiorno
currRec = newSash;
// resetto hw lst
@@ -1350,7 +1388,7 @@ namespace WebWindowComplex
if (newSplit != null)
{
// cerco il record
var currRec = SearchArea(FrameWindow, newSplit.GroupId, newSplit);
var currRec = SearchAreaFromGroupId(FrameWindow, newSplit.GroupId);
// lo aggiorno
currRec = newSplit;
if (!noSvg)
@@ -1372,7 +1410,7 @@ namespace WebWindowComplex
{
if (currSplitted != null)
{
var item = SearchArea(FrameWindow, currSplitted.GroupId, currSplitted);
var item = SearchAreaFromGroupId(FrameWindow, currSplitted.GroupId);
item = currSplitted;
// ricalcolo liste
UpdateLists();
@@ -1396,7 +1434,7 @@ namespace WebWindowComplex
bool noSvg = args.noSvg;
if (svgNoHw)
{
Sash item = (Sash)SearchArea(FrameWindow, newSash.GroupId, newSash);
Sash item = (Sash)SearchAreaFromGroupId(FrameWindow, newSash.GroupId);
if (newSash != null && item != null)
{
item = newSash;
@@ -1405,7 +1443,7 @@ namespace WebWindowComplex
}
else
{
Sash item = (Sash)SearchArea(FrameWindow, newSash.GroupId, newSash);
Sash item = (Sash)SearchAreaFromGroupId(FrameWindow, newSash.GroupId );
if (newSash != null && item != null)
{
item = newSash;
+29 -1
View File
@@ -6,7 +6,7 @@
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Version>2.8.1.2613</Version>
<Version>2.8.1.2715</Version>
<Authors>Annamaria Sassi</Authors>
<Company>Egalware</Company>
<Description>Componente gestione Configurazioni avanzate Window per LUX</Description>
@@ -79,6 +79,34 @@
@@ -6,7 +6,7 @@
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Version>2.8.1.2613</Version>
<Version>2.8.1.2715</Version>
<Authors>Annamaria Sassi</Authors>
<Company>Egalware</Company>
<Description>Componente gestione JWD per LUX</Description>
@@ -124,6 +124,34 @@