- Corretto conversione tipi dimensioni

- Corretto aggiornamento dimensioni a causa di una modifica (no gestione split grid)
This commit is contained in:
Annamaria Sassi
2025-12-15 18:17:36 +01:00
parent 7e125dbb52
commit a8047f4ca8
15 changed files with 1559 additions and 868 deletions
+29 -119
View File
@@ -34,17 +34,17 @@ namespace WebWindowComplex.Models
#region Public Properties
public bool bIsMeasureGlass
{
get
{
return m_bIsMeasureGlass;
}
set
{
m_bIsMeasureGlass = value;
}
}
//public bool bIsMeasureGlass
//{
// get
// {
// return m_bIsMeasureGlass;
// }
// set
// {
// m_bIsMeasureGlass = value;
// }
//}
public bool bIsSashVertical
{
@@ -104,7 +104,7 @@ namespace WebWindowComplex.Models
{
if (value > 0 && value <= 3)
{
double widthTot = CalculateWidthArea(ParentWindow.AreaList.First(), ParentWindow.AreaList.FirstOrDefault().DimensionList.Where(x => x.sName == "Width").First().dValue);
double widthTot = CalculateWidthArea(ParentWindow.AreaList.First(), ParentWindow.AreaList.FirstOrDefault().DimensionList.Where(x => x.sName == "Width").First().dDimension);
if (value > m_SashList.Count)
{
// recupero larghezza ultimo
@@ -145,7 +145,16 @@ namespace WebWindowComplex.Models
SashList.RemoveAt(SplitIndex);
}
if (!itemDelete.SelMeasureType.Equals(m_SashList[SashList.Count - 1].SelMeasureType))
deleteDim = itemDelete.ConvertDimension(itemDelete.SelMeasureType, m_SashList[SashList.Count - 1].SelMeasureType, widthTot);
{
AreaDimension ad = new AreaDimension(itemDelete.dDimension, itemDelete.SelMeasureType);
List<AreaDimension> adList = new List<AreaDimension>();
foreach (var it in SashList)
{
adList.Add(new AreaDimension(it.dDimension, it.SelMeasureType));
}
deleteDim = ad.ConvertDimension(adList, itemDelete.SelMeasureType, m_SashList[SashList.Count - 1].SelMeasureType, widthTot, m_SashList.IndexOf(itemDelete));
}
//deleteDim = Convert.ConvertDimension(itemDelete, itemDelete.SelMeasureType, m_SashList[SashList.Count - 1].SelMeasureType, itemDelete.dDimension, widthTot);
else
deleteDim = itemDelete.dDimension;
//dLastDimension += m_SashList[SashList.Count - 1].dDimension;
@@ -227,6 +236,8 @@ namespace WebWindowComplex.Models
}
}
}
for (int i = 0; i < AreaList.Count; i++)
AreaList.ElementAt(i).SearchAreaList(AreaList.ElementAt(i), SashList.ElementAt(i).dDimension, "Width");
}
RefreshHardwareList();
ClearHardwareOptionList();
@@ -270,7 +281,6 @@ namespace WebWindowComplex.Models
}
set
{
// Controllo che il valore inserito sia positivo
if (value >= 0)
{
m_nSashBottomRailQty = value;
@@ -384,7 +394,6 @@ namespace WebWindowComplex.Models
{
m_bIsSashVertical = false;
}
//m_ParentWindow.OnUpdatePreview(m_ParentWindow.sSerialized());
}
}
@@ -444,6 +453,9 @@ namespace WebWindowComplex.Models
Enums.OpeningTypes sOpeningType = ConvertOpeningType();
if (string.IsNullOrEmpty(m_SelFamilyHardware))
m_SelFamilyHardware = s_FamilyHardwareList.FirstOrDefault();
int sashPosition = 1;
if (nSashQty > 2 && !(SashList.First().bHasHandle || SashList.Last().bHasHandle))
sashPosition = 2;
var iComp = StringComparison.InvariantCultureIgnoreCase;
var rawList = m_HardwareCompleteList
.Where(x => x.Id == "000000" ||
@@ -451,7 +463,8 @@ namespace WebWindowComplex.Models
x.FamilyName.Equals(m_SelFamilyHardware, iComp) &&
x.SashQty == nSashQty &&
x.Shape.Equals(m_CurrShape, iComp) &&
x.OpeningType == sOpeningType)
x.OpeningType == sOpeningType &&
x.SashPosition == sashPosition)
)
.ToList() ?? new List<Hardware>();
if(rawList.Count == 0 || rawList == null)
@@ -475,31 +488,6 @@ namespace WebWindowComplex.Models
//m_ParentWindow.OnUpdatePreview(m_ParentWindow.sSerialized());
}
///// <summary>
///// Richiesta calcolo shape corrente
///// </summary>
//public void ReqRefreshShape()
//{
// if (m_HardwareCompleteList != null && m_HardwareCompleteList.Count > 0)
// {
// m_HardwareList.Clear();
// // reset shape corrente
// m_CurrShape = "";
// // chiamata evento calcolo shape: gruppo da calcolare
// }
//}
///// <summary>
///// Richiesta calcolo hardware option list
///// </summary>
//public void ReqRefreshHwOption()
//{
// HwOptionList.Clear();
// m_ReqHwOption = true;
// // chiamata evento calcolo opzioni hardware
// //m_ParentWindow.OnReqHwOptionPreview(m_ParentWindow.sSerialized(), GroupId);
//}
public void SetSelFamilyHardware(string sFamilyHw)
{
m_SelFamilyHardware = sFamilyHw;
@@ -559,84 +547,6 @@ namespace WebWindowComplex.Models
#region Internal Methods
///// <summary>
///// Metodo per calcolare larghezza intera sash group
///// </summary>
///// <param name="area"> area di partenza </param>
///// <param name="width"> larghezza di partenza </param>
///// <returns></returns>
//internal double CalculateWidthSashGroup(Area area, double width)
//{
// for (int i = 0; i < area.AreaList.Count; i++)
// {
// double risultato = -1;
// if (area.Equals(this))
// return width;
// Area item = area.AreaList[i];
// if (area is Split)
// {
// Split split = (Split)area;
// if(split.SplitVertList.Count > 0)
// {
// switch (split.SplitVertList.ElementAt(i).SelMeasureType)
// {
// case MeasureTypes.ABSOLUTE:
// {
// risultato = CalculateWidthSashGroup(item, split.SplitVertList.ElementAt(i).dDimension);
// break;
// }
// case MeasureTypes.PROPORTIONAL:
// {
// //risultato = CalculateWidthSashGroup(item, split.SplitVertList.ElementAt(i).dDimension);
// break;
// }
// case MeasureTypes.PERCENTAGE:
// {
// risultato = CalculateWidthSashGroup(item, split.SplitVertList.ElementAt(i).dDimension * width / 100);
// break;
// }
// }
// }
// else
// {
// risultato = CalculateWidthSashGroup(item, width);
// }
// if (risultato != -1)
// return risultato;
// }
// else if (area is Sash)
// {
// Sash sash = (Sash)area;
// switch (sash.SashList.ElementAt(i).SelMeasureType)
// {
// case MeasureTypes.ABSOLUTE:
// {
// risultato = CalculateWidthSashGroup(item, sash.SashList.ElementAt(i).dDimension);
// break;
// }
// case MeasureTypes.PROPORTIONAL:
// {
// //risultato = CalculateWidthSashGroup(item, sash.SashList.ElementAt(i).dDimension);
// break;
// }
// case MeasureTypes.PERCENTAGE:
// {
// risultato = CalculateWidthSashGroup(item, sash.SashList.ElementAt(i).dDimension * width / 100);
// break;
// }
// }
// if (risultato != -1)
// return risultato;
// }
// else
// {
// risultato = CalculateWidthSashGroup(item, width);
// if (risultato != -1)
// return risultato;
// }
// }
// return width;
//}
internal static Sash CreateSash(Area Area)
{
Sash newSash = new Sash(Area, Area.ParentWindow);