- Gestito salvataggio e chiusura componente con salvataggio jwd
- Correzioni valori nulli - Aggiunta funzione per calcolare altezza sashGroup
This commit is contained in:
@@ -281,28 +281,22 @@ namespace WebWindowComplex.Models
|
||||
{
|
||||
MeasureTypes newType = (MeasureTypes)value;
|
||||
List<SplitDimension> splitList = new List<SplitDimension>();
|
||||
List<SplitElementDimension> splitElemList = new List<SplitElementDimension>();
|
||||
if(m_Parent.ParentWindow.AreaList.FirstOrDefault() != null)
|
||||
{
|
||||
Frame frame = m_Parent.ParentWindow.AreaList.FirstOrDefault()!;
|
||||
double tot = 0;
|
||||
double dimSplitGroup = 0;
|
||||
if (bIsVertListDim)
|
||||
{
|
||||
splitList = m_Parent.SplitVertList;
|
||||
//tot = CalculateWidthSplitGroup(frame, frame.DimensionList.Where(x => x.sName == "Width").First().dDimension, new AreaFound(-1, false)).m_Dimension;
|
||||
tot = CalculateWidthSplitGroup(frame, frame.AvailWidthArea(), new AreaFound(-1, false)).m_Dimension;
|
||||
foreach (var item in m_Parent.ElemDimVertList)
|
||||
{
|
||||
tot = tot - item.dDimension;
|
||||
}
|
||||
splitElemList = m_Parent.ElemDimVertList;
|
||||
dimSplitGroup = CalculateWidthSplitGroup(frame, frame.AvailWidthArea(), new AreaFound(-1, false)).m_Dimension;
|
||||
}
|
||||
else
|
||||
{
|
||||
splitList = m_Parent.SplitHorizList;
|
||||
tot = (CalculateHeightSplitGroup(frame, frame.AvailHeightArea(), new AreaFound(-1, false))).m_Dimension;
|
||||
foreach (var item in m_Parent.ElemDimHorizList)
|
||||
{
|
||||
tot = tot - item.dDimension;
|
||||
}
|
||||
splitElemList = m_Parent.ElemDimHorizList;
|
||||
dimSplitGroup = (CalculateHeightSplitGroup(frame, frame.AvailHeightArea(), new AreaFound(-1, false))).m_Dimension;
|
||||
}
|
||||
AreaDimension ad = new AreaDimension(dDimension, SelMeasureType, Parent);
|
||||
List<AreaDimension> adList = new List<AreaDimension>();
|
||||
@@ -310,7 +304,11 @@ namespace WebWindowComplex.Models
|
||||
{
|
||||
adList.Add(new AreaDimension(it.dDimension, it.SelMeasureType, it.Parent));
|
||||
}
|
||||
m_dDimension = ad.ConvertDimension(adList, m_SelMeasureType, newType, tot, splitList.IndexOf(this));
|
||||
foreach (var item in splitElemList)
|
||||
{
|
||||
dimSplitGroup = dimSplitGroup - item.dDimension;
|
||||
}
|
||||
m_dDimension = ad.ConvertDimension(adList, m_SelMeasureType, newType, dimSplitGroup, splitList.IndexOf(this));
|
||||
m_SelMeasureType = (MeasureTypes)value;
|
||||
}
|
||||
}
|
||||
@@ -510,32 +508,31 @@ namespace WebWindowComplex.Models
|
||||
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;
|
||||
}
|
||||
//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 = CalculateHeightSplitGroup(item, dim, res);
|
||||
if (res.m_Dimension != -1 && res.m_Found)
|
||||
return res;
|
||||
}
|
||||
else
|
||||
{
|
||||
res = CalculateHeightSplitGroup(item, height, res);
|
||||
double dim = height;
|
||||
//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 = CalculateHeightSplitGroup(item, dim, res);
|
||||
if (res.m_Dimension != -1 && res.m_Found)
|
||||
return res;
|
||||
}
|
||||
}
|
||||
else if (area is Sash sash)
|
||||
{
|
||||
double overlap = 0;
|
||||
double bottomRail = 0;
|
||||
//if (sash.ParentArea is Split)
|
||||
// overlap = sash.SashList.First().ElementDimensionList.First().dOverlap
|
||||
// + sash.SashList.First().ElementDimensionList.ElementAt(sash.SashList.First().ElementDimensionList.Count - 2).dOverlap;
|
||||
//if (sash.ParentArea.ParentArea is Split)
|
||||
// overlap = sash.SashList.First().ElementDimensionList.First().dOverlap
|
||||
// + sash.SashList.First().ElementDimensionList.ElementAt(sash.SashList.First().ElementDimensionList.Count - 2).dOverlap;
|
||||
if(sash.SashBottomRailQty > 0)
|
||||
{
|
||||
foreach (var bottom in sash.BottomRailElemDimList)
|
||||
@@ -549,6 +546,21 @@ namespace WebWindowComplex.Models
|
||||
if (res.m_Dimension != -1 && res.m_Found)
|
||||
return res;
|
||||
}
|
||||
else if (area is Splitted splitted)
|
||||
{
|
||||
double dim = height;
|
||||
if (splitted.ParentArea is Split sp && splitted.AreaList.First() is Sash sh)
|
||||
{
|
||||
if (sp.SplitHorizList.Count > 0)
|
||||
{
|
||||
dim = dim + sh.SashList.First().ElementDimensionList.First().dOverlap
|
||||
+ sh.SashList.First().ElementDimensionList.ElementAt(sh.SashList.First().ElementDimensionList.Count - 2).dOverlap;
|
||||
}
|
||||
}
|
||||
res = CalculateHeightSplitGroup(item, dim, res);
|
||||
if (res.m_Dimension != -1 && res.m_Found)
|
||||
return res;
|
||||
}
|
||||
else
|
||||
{
|
||||
res = CalculateHeightSplitGroup(item, height, res);
|
||||
@@ -585,61 +597,35 @@ namespace WebWindowComplex.Models
|
||||
if (m_SelMeasureType != (MeasureTypes)value)
|
||||
{
|
||||
MeasureTypes newType = (MeasureTypes)value;
|
||||
if(m_Parent.ParentWindow.AreaList.FirstOrDefault() != null)
|
||||
List<SplitDimension> splitList = new List<SplitDimension>();
|
||||
List<SplitElementDimension> splitElemList = new List<SplitElementDimension>();
|
||||
if (m_Parent.ParentWindow.AreaList.FirstOrDefault() != null)
|
||||
{
|
||||
Frame frame = m_Parent.ParentWindow.AreaList.FirstOrDefault()!;
|
||||
double dimSplitGroup = 0;
|
||||
if (bIsVertListDim)
|
||||
{
|
||||
dimSplitGroup = (CalculateWidthSplitGroup(frame, frame.AvailWidthArea(), new AreaFound(-1, false))).m_Dimension;
|
||||
foreach (var item in m_Parent.ElemDimVertList)
|
||||
{
|
||||
dimSplitGroup = dimSplitGroup - item.dDimension;
|
||||
}
|
||||
AreaDimension ad = new AreaDimension(dDimension, SelMeasureType, Parent);
|
||||
List<AreaDimension> newDimensions = new List<AreaDimension>();
|
||||
foreach (var item in m_Parent.SplitVertList)
|
||||
{
|
||||
newDimensions.Add(new AreaDimension(item.dDimension, item.SelMeasureType, item.Parent));
|
||||
}
|
||||
m_dDimension = ad.ConvertDimension(newDimensions, m_SelMeasureType, newType, dimSplitGroup, m_Parent.SplitVertList.IndexOf(this));
|
||||
//if (newType is MeasureTypes.PROPORTIONAL)
|
||||
//{
|
||||
// for (int i = 0; i < m_Parent.SplitVertList.Count; i++)
|
||||
// {
|
||||
// m_Parent.SplitVertList.ElementAt(i).SetDimension(newDimensions.ElementAt(i).dDimension);
|
||||
// }
|
||||
//}
|
||||
splitList = m_Parent.SplitVertList;
|
||||
splitElemList = m_Parent.ElemDimVertList;
|
||||
dimSplitGroup = CalculateWidthSplitGroup(frame, frame.AvailWidthArea(), new AreaFound(-1, false)).m_Dimension;
|
||||
}
|
||||
else
|
||||
{
|
||||
splitList = m_Parent.SplitHorizList;
|
||||
splitElemList = m_Parent.ElemDimHorizList;
|
||||
dimSplitGroup = (CalculateHeightSplitGroup(frame, frame.AvailHeightArea(), new AreaFound(-1, false))).m_Dimension;
|
||||
List<SplitElementDimension> elemList = new List<SplitElementDimension>();
|
||||
if (Parent.bSplitStartVert)
|
||||
{
|
||||
elemList = m_Parent.ElemDimHorizList.Where(x => x.nSubArea == 1).ToList();
|
||||
}
|
||||
else
|
||||
elemList = m_Parent.ElemDimHorizList;
|
||||
foreach (var item in elemList)
|
||||
{
|
||||
dimSplitGroup = dimSplitGroup - item.dDimension;
|
||||
}
|
||||
AreaDimension ad = new AreaDimension(dDimension, SelMeasureType, Parent);
|
||||
List<AreaDimension> newDimensions = new List<AreaDimension>();
|
||||
foreach (var item in m_Parent.SplitHorizList)
|
||||
{
|
||||
newDimensions.Add(new AreaDimension(item.dDimension, item.SelMeasureType, item.Parent));
|
||||
}
|
||||
m_dDimension = ad.ConvertDimension(newDimensions, m_SelMeasureType, newType, dimSplitGroup, m_Parent.SplitHorizList.IndexOf(this));
|
||||
//if(newType is MeasureTypes.PROPORTIONAL)
|
||||
//{
|
||||
// for(int i = 0; i < m_Parent.SplitHorizList.Count; i++)
|
||||
// {
|
||||
// m_Parent.SplitHorizList.ElementAt(i).SetDimension(newDimensions.ElementAt(i).dDimension);
|
||||
// }
|
||||
//}
|
||||
}
|
||||
AreaDimension ad = new AreaDimension(dDimension, SelMeasureType, Parent);
|
||||
List<AreaDimension> adList = new List<AreaDimension>();
|
||||
foreach (var it in splitList)
|
||||
{
|
||||
adList.Add(new AreaDimension(it.dDimension, it.SelMeasureType, it.Parent));
|
||||
}
|
||||
foreach (var item in splitElemList)
|
||||
{
|
||||
dimSplitGroup = dimSplitGroup - item.dDimension;
|
||||
}
|
||||
m_dDimension = ad.ConvertDimension(adList, m_SelMeasureType, newType, dimSplitGroup, splitList.IndexOf(this));
|
||||
m_SelMeasureType = (MeasureTypes)value;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user