diff --git a/WebWindowComplex/Compo/CardTree.razor b/WebWindowComplex/Compo/CardTree.razor
index 3475f0a..a6b0fc4 100644
--- a/WebWindowComplex/Compo/CardTree.razor
+++ b/WebWindowComplex/Compo/CardTree.razor
@@ -7,7 +7,7 @@
@for (int j = 0; j < maxCol; j++)
{
- var index = RowCollapsedDict.Keys.Where(k => k <= i).LastOrDefault();
+ var index = RowCollapsedDict.Keys.Order().Where(k => k <= i).LastOrDefault();
@if ((RowCollapsedDict.ContainsValue(true) && RowCollapsedDict.GetValueOrDefault(index))
&& i - 1 > 0 && ItemTableList.ElementAt(i).Col > ItemTableList.ElementAt(index-1).Col){
continue;
diff --git a/WebWindowComplex/Models/AreaDimension.cs b/WebWindowComplex/Models/AreaDimension.cs
index bd7505a..9cb4079 100644
--- a/WebWindowComplex/Models/AreaDimension.cs
+++ b/WebWindowComplex/Models/AreaDimension.cs
@@ -204,12 +204,29 @@ namespace WebWindowComplex.Models
absoluteValue.Add(item.CalculateAbsoluteValue(itemList, widthTot));
}
int numProportional = itemList.Where(x => x.SelMeasureType == MeasureTypes.PROPORTIONAL).Count();
- if(itemList.Count > 2 && numProportional == itemList.Count - 1)
+ if(numProportional > 1)
{
- int inedMin = absoluteValue.IndexOf(absoluteValue.Min());
- var mcd = CalculateMCD(absoluteValue.ElementAt(indexArea), absoluteValue.ElementAt(inedMin));
- itemList.ElementAt(inedMin).SetDimension(absoluteValue.ElementAt(inedMin) / mcd);
- itemList.ElementAt(indexArea).SetDimension(absoluteValue.ElementAt(indexArea) / mcd);
+ List mcdList = new List();
+ foreach(var elem in itemList.Where(x => x.SelMeasureType == MeasureTypes.PROPORTIONAL).ToList())
+ {
+ mcdList.Add(CalculateMCD(absoluteValue.ElementAt(indexArea), absoluteValue.ElementAt(itemList.IndexOf(elem))));
+ }
+ int mcdDuplicati = mcdList.GroupBy(n => n)
+ .Where(g => g.Count() > 1)
+ .Select(g => g.Key)
+ .Count();
+ if (mcdList.Contains(1) || mcdDuplicati < mcdList.Count - 1)
+ return ans;
+ else
+ {
+ for(int i = 0; i < itemList.Count; i++)
+ ans.ElementAt(i).SetDimension(absoluteValue.ElementAt(i) / mcdList.FirstOrDefault());
+ }
+
+ //int inedMin = absoluteValue.IndexOf(absoluteValue.Min());
+ //var mcd = CalculateMCD(absoluteValue.ElementAt(indexArea), absoluteValue.ElementAt(inedMin));
+ //itemList.ElementAt(inedMin).SetDimension(absoluteValue.ElementAt(inedMin) / mcd);
+ //itemList.ElementAt(indexArea).SetDimension(absoluteValue.ElementAt(indexArea) / mcd);
}
else
{
diff --git a/WebWindowComplex/Models/SashDimension.cs b/WebWindowComplex/Models/SashDimension.cs
index 80ef4ed..0f4990d 100644
--- a/WebWindowComplex/Models/SashDimension.cs
+++ b/WebWindowComplex/Models/SashDimension.cs
@@ -449,7 +449,14 @@ namespace WebWindowComplex.Models
// else
// overlap = m_Parent.SashList.ElementAt(index).ElementDimensionList.Last().dOverlap;
//}
- m_dDimension = ad.ConvertDimension(newDimensions, SelMeasureType, newType, widthTot, nSashId - 1);
+ if (newType is MeasureTypes.PROPORTIONAL)
+ {
+ newDimensions = ad.CalculatePropVal(newDimensions, nSashId - 1, widthTot);
+ for (int i = 0; i < newDimensions.Count; i++)
+ m_Parent.SashList.ElementAt(i).SetDimension(newDimensions.ElementAt(i).dDimension);
+ }
+ else
+ m_dDimension = ad.ConvertDimension(newDimensions, SelMeasureType, newType, widthTot, nSashId - 1);
SelMeasureType = (MeasureTypes)value;
}
}
diff --git a/WebWindowComplex/Models/SplitDimension.cs b/WebWindowComplex/Models/SplitDimension.cs
index 3068065..6053e0b 100644
--- a/WebWindowComplex/Models/SplitDimension.cs
+++ b/WebWindowComplex/Models/SplitDimension.cs
@@ -46,8 +46,12 @@ namespace WebWindowComplex.Models
double dimensionTot = 0;
List dimensions = new List();
Frame frame = m_Parent.ParentWindow.AreaList.FirstOrDefault() ?? new Frame(null, Parent.ParentWindow);
- int subAreaVert = m_Parent.ElemDimVertList.Min(x => x.nSubArea);
- int subAreaHoriz = m_Parent.ElemDimHorizList.Min(x => x.nSubArea);
+ int subAreaVert = -1;
+ int subAreaHoriz = -1;
+ if (m_Parent.ElemDimVertList.Count > 0)
+ subAreaVert = m_Parent.ElemDimVertList.Min(x => x.nSubArea);
+ if (m_Parent.ElemDimHorizList.Count > 0)
+ subAreaHoriz = m_Parent.ElemDimHorizList.Min(x => x.nSubArea);
double width = CalculateWidthSplitGroup(frame, frame.AvailWidthArea(), new AreaFound(-1, false)).m_Dimension;
foreach (var item in m_Parent.ElemDimVertList.Where(x=>x.nSubArea == subAreaVert))
{
diff --git a/WebWindowComplex/WebWindowComplex.csproj b/WebWindowComplex/WebWindowComplex.csproj
index 159063c..743f5e4 100644
--- a/WebWindowComplex/WebWindowComplex.csproj
+++ b/WebWindowComplex/WebWindowComplex.csproj
@@ -6,7 +6,7 @@
net8.0
enable
enable
- 3.1.3.518
+ 3.1.3.611
Annamaria Sassi
Egalware
Componente gestione Configurazioni avanzate Window per LUX
@@ -296,6 +296,8 @@
+
+
diff --git a/WebWindowConfigurator/WebWindowConfigurator.csproj b/WebWindowConfigurator/WebWindowConfigurator.csproj
index b46ec71..06f87a2 100644
--- a/WebWindowConfigurator/WebWindowConfigurator.csproj
+++ b/WebWindowConfigurator/WebWindowConfigurator.csproj
@@ -6,7 +6,7 @@
net8.0
enable
enable
- 3.1.3.518
+ 3.1.3.611
Annamaria Sassi
Egalware
Componente gestione JWD per LUX
@@ -238,6 +238,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+