- Gestito salvataggio e chiusura componente con salvataggio jwd
- Correzioni valori nulli - Aggiunta funzione per calcolare altezza sashGroup
This commit is contained in:
@@ -435,7 +435,7 @@ namespace WebWindowComplex.Models
|
||||
for (int i = 0; i < AreaList.Count; i++)
|
||||
{
|
||||
double width = SashList.ElementAt(i).dDimension;
|
||||
if(SashList.ElementAt(i).ElementDimensionList.Count > 0)
|
||||
if(SashList.ElementAt(i).ElementDimensionList.Count > 0 && !bIsDimensionLight)
|
||||
width = width - SashList.ElementAt(i).ElementDimensionList.ElementAt(1).dDimension
|
||||
- SashList.ElementAt(i).ElementDimensionList.Last().dDimension;
|
||||
AreaList.ElementAt(i).SearchAreaList(AreaList.ElementAt(i), width, "Width");
|
||||
@@ -1159,7 +1159,7 @@ namespace WebWindowComplex.Models
|
||||
else
|
||||
{
|
||||
double dim = width;
|
||||
if(split.SplitHorizList.Count > 0 && split.AreaList.First().AreaList.First() is Sash sash)
|
||||
if (split.SplitHorizList.Count > 0 && split.AreaList.ElementAt(i).AreaList.First() is Sash sash)
|
||||
{
|
||||
dim = dim + sash.SashList.First().ElementDimensionList.Last().dOverlap
|
||||
+ sash.SashList.Last().ElementDimensionList.ElementAt(1).dOverlap;
|
||||
@@ -1209,6 +1209,80 @@ namespace WebWindowComplex.Models
|
||||
return res;
|
||||
}
|
||||
|
||||
internal AreaFound CalculateHeightSashGroup(Area area, double height, AreaFound res)
|
||||
{
|
||||
for (int i = 0; i < area.AreaList.Count; i++)
|
||||
{
|
||||
if (area.Equals(this))
|
||||
{
|
||||
res.m_Dimension = height;
|
||||
res.m_Found = true;
|
||||
return res;
|
||||
}
|
||||
Area item = area.AreaList[i];
|
||||
if (area is Split split)
|
||||
{
|
||||
if (split.SplitVertList.Count > 0)
|
||||
{
|
||||
double dim = height;
|
||||
res = CalculateHeightSashGroup(item, dim, res);
|
||||
if (res.m_Dimension != -1 && res.m_Found)
|
||||
return res;
|
||||
}
|
||||
else
|
||||
{
|
||||
double dim = height;
|
||||
switch (split.SplitHorizList.ElementAt(i).SelMeasureType)
|
||||
{
|
||||
case MeasureTypes.ABSOLUTE:
|
||||
{
|
||||
dim = split.SplitHorizList.ElementAt(i).dDimension;
|
||||
break;
|
||||
}
|
||||
case MeasureTypes.PROPORTIONAL:
|
||||
{
|
||||
double widthGlass = height;
|
||||
AreaDimension ad = new AreaDimension(split.SplitHorizList.ElementAt(i).dDimension, split.SplitHorizList.ElementAt(i).SelMeasureType, split.SplitHorizList.ElementAt(i).Parent);
|
||||
List<AreaDimension> adList = new List<AreaDimension>();
|
||||
foreach (var it in split.SplitHorizList)
|
||||
{
|
||||
adList.Add(new AreaDimension(it.dDimension, it.SelMeasureType, it.Parent));
|
||||
}
|
||||
foreach (var elem in split.ElemDimHorizList)
|
||||
{
|
||||
widthGlass = widthGlass - elem.dDimension;
|
||||
}
|
||||
dim = ad.ConvertFromPropVal(adList, MeasureTypes.ABSOLUTE, widthGlass);
|
||||
break;
|
||||
}
|
||||
case MeasureTypes.PERCENTAGE:
|
||||
{
|
||||
foreach (var elem in split.ElemDimHorizList)
|
||||
{
|
||||
dim = dim - elem.dDimension;
|
||||
}
|
||||
dim = split.SplitHorizList.ElementAt(i).dDimension * dim / 100;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (split.ParentArea is Frame frame && split.AreaList.ElementAt(i).AreaList.First() is Sash sash)
|
||||
dim = dim + sash.SashList.First().ElementDimensionList.First().dOverlap
|
||||
+ sash.SashList.First().ElementDimensionList.ElementAt(sash.SashList.First().ElementDimensionList.Count - 2).dOverlap;
|
||||
res = CalculateHeightSashGroup(item, dim, res);
|
||||
if (res.m_Dimension != -1 && res.m_Found)
|
||||
return res;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
res = CalculateHeightSashGroup(item, height, res);
|
||||
if (res.m_Dimension != -1 && res.m_Found)
|
||||
return res;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
#endregion Internal Methods
|
||||
|
||||
#region Private Fields
|
||||
|
||||
Reference in New Issue
Block a user