- Aggiornato svuotamento dizionario shape e opzioni hw

- Aggiornato calcolo altezza split
This commit is contained in:
Annamaria Sassi
2025-12-05 15:36:35 +01:00
parent 5e3e535139
commit b43071ceec
15 changed files with 283 additions and 230 deletions
+4 -4
View File
@@ -1,7 +1,7 @@
@using EgwCoreLib.Razor
@if(mode == ModeView.View)
{
<div class="col-sm-6 my-2">
<div class="col-lg-6 col-md-12 my-2">
<div class="d-flex justify-content-between align-items-center">
<h6 class="fw-bold">Sash @(CurrSashGroup.SashList.Count == 1 ? "" : (IndexSash + 1))</h6>
@if(CurrSashGroup.SashList.Count > 1)
@@ -27,7 +27,7 @@
</ul>
</div>
}
<button class="btn btn-primary btn-sm" type="button" @onclick="() => doEdit(IndexSash)">Edit</button>
<button class="btn btn-outline-secondary btn-sm" type="button" @onclick="() => doEdit(IndexSash)">Edit</button>
</div>
<div class="input-group mb-2 mt-2">
<label class="input-group-text">Tipology</label>
@@ -95,7 +95,7 @@ else
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close" @onclick="() => ClosePopup(IndexSash)"></button>
</div>
<div class="row">
<div class="col-sm-6 my-2">
<div class="col-lg-6 col-md-12 my-2">
<div class="input-group mb-2">
<label class="input-group-text">Tipology</label>
<select class="form-select" @bind="@OpeningTypeIndex">
@@ -143,7 +143,7 @@ else
</div>
</div>
</div>
<div class="col-sm-6">
<div class="col-lg-6 col-md-12">
<div class="row justify-content-between align-items-center">
<div class="col d-flex justify-content-start align-items-center">
<h6>Joints</h6>
+2 -2
View File
@@ -17,7 +17,7 @@ namespace WebWindowComplex.Compo
/// Evento per richiedere reset dizionario Shape
/// </summary>
[Parameter]
public EventCallback<bool> EC_ReqResetDictShape { get; set; }
public EventCallback<DataUpdateRes> EC_ReqResetDictShape { get; set; }
/// <summary>
/// Evento per richiedere opzioni hardware
@@ -65,7 +65,7 @@ namespace WebWindowComplex.Compo
{
CurrFrameWindow.SelShapeIndex = value;
// richiesta reset dict shape
_ = EC_ReqResetDictShape.InvokeAsync(true);
_ = EC_ReqResetDictShape.InvokeAsync(new DataUpdateRes { req = LayoutConst.DataAction.ResetDictShape});
foreach(var s in SashList)
{
s.SelHardwareFromId = "000000";
+2 -2
View File
@@ -105,8 +105,8 @@
<div class="card-body py-2">
<div class="d-flex justify-content-end">
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle btn-sm" type="button" @onclick="ToggleDropdown">
Action
<button class="btn btn-outline-secondary dropdown-toggle btn-sm" type="button" @onclick="ToggleDropdown">
Measure
</button>
<ul class="dropdown-menu @(isOpen ? "show" : "")" style="min-width:5rem; max-width:10rem">
<li>
+11 -4
View File
@@ -1,6 +1,7 @@
using Microsoft.AspNetCore.Components;
using WebWindowComplex.Models;
using static WebWindowComplex.Json.WindowConst;
using static WebWindowComplex.LayoutConst;
namespace WebWindowComplex.Compo
{
@@ -30,13 +31,13 @@ namespace WebWindowComplex.Compo
/// Evento per richiedere reset dizionario Shape
/// </summary>
[Parameter]
public EventCallback<bool> EC_ReqResetDictShape { get; set; }
public EventCallback<DataUpdateRes> EC_ReqResetDictShape { get; set; }
/// <summary>
/// Evento per richiedere reset dizionario Hw option
/// </summary>
[Parameter]
public EventCallback<bool> EC_ReqResetDictHwOpt { get; set; }
public EventCallback<DataUpdateRes> EC_ReqResetDictHwOpt { get; set; }
/// <summary>
/// Evento per richiedere opzioni hardware
@@ -156,7 +157,7 @@ namespace WebWindowComplex.Compo
svgNoHw = true
};
_ = EC_UpdatePreview.InvokeAsync(args);
_ = EC_ReqResetDictHwOpt.InvokeAsync(true);
_ = EC_ReqResetDictHwOpt.InvokeAsync(new DataUpdateRes { req = DataAction.ResetHwOpt});
_ = EC_ReqOptionHw.InvokeAsync(CurrSashGroup);
}
}
@@ -200,8 +201,9 @@ namespace WebWindowComplex.Compo
currFrame = FrameWindow
};
// richiesta reset dict shape
await EC_ReqResetDictShape.InvokeAsync(true);
await EC_ReqResetDictShape.InvokeAsync(new DataUpdateRes { req=DataAction.ResetDictShape});
await EC_UpdateFrame.InvokeAsync(args);
await EC_ReqClose.InvokeAsync(true);
}
/// <summary>
@@ -364,4 +366,9 @@ namespace WebWindowComplex.Compo
public Sash currSash { get; set; } = null!;
public bool svgNoHw { get; set; } = false;
}
public class DataUpdateRes
{
public DataAction req { get; set; } = DataAction.None;
}
}
+2 -2
View File
@@ -24,8 +24,8 @@
<button class="btn btn-outline-secondary btn-sm" @onclick="() => RemoveArea()">Remove split</button>
</div>
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle btn-sm" type="button" @onclick="ToggleDropdown">
Action
<button class="btn btn-outline-secondary dropdown-toggle btn-sm" type="button" @onclick="ToggleDropdown">
Measure
</button>
<ul class="dropdown-menu @(isOpen ? "show" : "")" style="min-width:5rem; max-width:10rem">
<li>
+26 -4
View File
@@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Components;
using Newtonsoft.Json.Linq;
using WebWindowComplex.Models;
using static WebWindowComplex.Json.WindowConst;
using static WebWindowComplex.LayoutConst;
namespace WebWindowComplex.Compo
{
@@ -36,7 +37,13 @@ namespace WebWindowComplex.Compo
/// Evento per richiedere reset dizionario Shape
/// </summary>
[Parameter]
public EventCallback<bool> EC_ReqResetDictShape { get; set; }
public EventCallback<DataUpdateRes> EC_ReqResetDictShape { get; set; }
/// <summary>
/// Evento per richiedere reset dizionario opzioni hardware
/// </summary>
[Parameter]
public EventCallback<DataUpdateRes> EC_ReqResetDictHwOpt { get; set; }
/// <summary>
/// Evento per aggiornare Split
@@ -68,7 +75,7 @@ namespace WebWindowComplex.Compo
currSplit = CurrSplit,
svgNoHw = true
};
await EC_ReqResetDictShape.InvokeAsync(true);
await EC_ReqResetDictShape.InvokeAsync(new DataUpdateRes { req = DataAction.ResetDictShape });
await EC_UpdatePreview.InvokeAsync(args);
}
@@ -85,8 +92,9 @@ namespace WebWindowComplex.Compo
currFrame = FrameWindow
};
// richiesta reset dict shape
await EC_ReqResetDictShape.InvokeAsync(true);
await EC_ReqResetDictShape.InvokeAsync(new DataUpdateRes { req = DataAction.ResetDictShape });
await EC_UpdateFrame.InvokeAsync(args);
await EC_ReqClose.InvokeAsync(true);
}
/// <summary>
@@ -105,11 +113,25 @@ namespace WebWindowComplex.Compo
{
currSplit = CurrSplit
};
if (SearchSash(CurrSplit))
{
_ = EC_ReqResetDictShape.InvokeAsync(new DataUpdateRes { req = DataAction.ResetDictShape });
_ = EC_ReqResetDictHwOpt.InvokeAsync(new DataUpdateRes { req = DataAction.ResetHwOpt });
}
_ = EC_UpdatePreview.InvokeAsync(args);
}
}
}
private bool SearchSash(Area area)
{
if (area is Sash)
return true;
foreach (var item in area.AreaList)
return SearchSash(item);
return false;
}
/// <summary>
/// Proprietà per selezionare numero di split verticali
/// </summary>
@@ -174,7 +196,7 @@ namespace WebWindowComplex.Compo
{
currSplit = CurrSplit
};
await EC_ReqResetDictShape.InvokeAsync();
await EC_ReqResetDictShape.InvokeAsync(new DataUpdateRes { req = DataAction.ResetDictShape });
await EC_UpdatePreview.InvokeAsync(args);
}
}
+17
View File
@@ -26,5 +26,22 @@ namespace WebWindowComplex
TR, // Top Right
TL // Top Left
}
public enum DataAction
{
/// <summary>
/// Nessuna richiesta
/// </summary>
None = 0,
/// <summary>
/// Reset dizionario shape
/// </summary>
ResetDictShape,
/// <summary>
/// Reset dizionario HwOptions
/// </summary>
ResetHwOpt
}
}
}
+1 -1
View File
@@ -108,7 +108,7 @@ namespace WebWindowComplex.Models
case Shapes.ARC_FULL:
{
DimensionList.Add(new FrameDimension(this, 1, "Width", widthVal, true));
DimensionList.Add(new FrameDimension(this, 2, "Height", 0.6 * widthVal, true));
DimensionList.Add(new FrameDimension(this, 2, "Height", 1400, true));
break;
}
+146 -140
View File
@@ -48,84 +48,87 @@ namespace WebWindowComplex.Models
}
set
{
if (value == 0)
if(value >= 0 && value < 6)
{
for (var SplitIndex = m_SplitHorizList.Count - 1; SplitIndex >= value; SplitIndex += -1)
m_SplitHorizList.RemoveAt(SplitIndex);
if (nSplitQtyVert == 0)
if (value == 0)
{
ParentArea.AreaList.Remove(this);
Fill newFill = Fill.CreateFill(ParentArea, FillTypes.GLASS);
newFill.SetAreaType(AreaTypes.FILL);
ParentArea.AreaList.Add(newFill);
}
else
SetSplitShape(SplitShapes.VERTICAL);
}
else
{
double heightTot = CalculateHeightArea(ParentWindow.AreaList.First(), HeightFrame());
// Ricalcolo dimensioni aggiungendo split
if (value > m_SplitHorizList.Count - 1)
{
// recupero larghezza ultimo
double dLastDimension = heightTot;
double dNewDimension = heightTot;
if (m_SplitHorizList.Count > 0)
for (var SplitIndex = m_SplitHorizList.Count - 1; SplitIndex >= value; SplitIndex += -1)
m_SplitHorizList.RemoveAt(SplitIndex);
if (nSplitQtyVert == 0)
{
dLastDimension = m_SplitHorizList[m_SplitHorizList.Count - 1].dDimension;
dNewDimension = dLastDimension / (value + 1 - nSplitQtyHoriz);
if (m_SplitHorizList[m_SplitHorizList.Count - 1].MeasureType.Equals(MeasureTypes.PROPORTIONAL))
dNewDimension = 1;
m_SplitHorizList[m_SplitHorizList.Count - 1].SetDimension(dNewDimension);
ParentArea.AreaList.Remove(this);
Fill newFill = Fill.CreateFill(ParentArea, FillTypes.GLASS);
newFill.SetAreaType(AreaTypes.FILL);
ParentArea.AreaList.Add(newFill);
}
else
dNewDimension = dLastDimension / (value + 1 - nSplitQtyHoriz);
// aggiungo area Split di default
for (var SplitIndex = m_SplitHorizList.Count; SplitIndex <= value; SplitIndex++)
m_SplitHorizList.Add(new SplitDimension(dNewDimension, m_SplitHorizList[m_SplitHorizList.Count - 1].MeasureType, true, this, false));
SetSplitShape(SplitShapes.VERTICAL);
}
// Ricalcolo dimensioni rimuovendo split
else
{
double dLastDimension = 0;
for (var SplitIndex = m_SplitHorizList.Count - 1; SplitIndex >= value + 1; SplitIndex += -1)
double heightTot = CalculateHeightArea(ParentWindow.AreaList.First(), HeightFrame());
// Ricalcolo dimensioni aggiungendo split
if (value > m_SplitHorizList.Count - 1)
{
dLastDimension += m_SplitHorizList[SplitIndex].dDimension;
m_SplitHorizList.RemoveAt(SplitIndex);
// recupero larghezza ultimo
double dLastDimension = heightTot;
double dNewDimension = heightTot;
if (m_SplitHorizList.Count > 0)
{
dLastDimension = m_SplitHorizList[m_SplitHorizList.Count - 1].dDimension;
dNewDimension = dLastDimension / (value + 1 - nSplitQtyHoriz);
if (m_SplitHorizList[m_SplitHorizList.Count - 1].MeasureType.Equals(MeasureTypes.PROPORTIONAL))
dNewDimension = 1;
m_SplitHorizList[m_SplitHorizList.Count - 1].SetDimension(dNewDimension);
}
else
dNewDimension = dLastDimension / (value + 1 - nSplitQtyHoriz);
// aggiungo area Split di default
for (var SplitIndex = m_SplitHorizList.Count; SplitIndex <= value; SplitIndex++)
m_SplitHorizList.Add(new SplitDimension(dNewDimension, m_SplitHorizList[m_SplitHorizList.Count - 1].MeasureType, true, this, false));
}
dLastDimension += m_SplitHorizList[m_SplitHorizList.Count - 1].dDimension;
m_SplitHorizList[m_SplitHorizList.Count - 1].SetDimension(dLastDimension);
}
// Controllo quanti split verticali ci sono
int nVert = m_SplitVertList.Count > 0 ? m_SplitVertList.Count : 1;
// Se aggiungo split devo aggiungere vetro nell'area splitted aggiunta
for (var SplitIndex = AreaList.Count; SplitIndex <= (m_SplitHorizList.Count * nVert) - 1; SplitIndex++)
{
AreaList.Add(Splitted.CreateSplitted(this));
Fill newFill = Fill.CreateFill(AreaList[SplitIndex], FillTypes.GLASS);
newFill.SetAreaType(AreaTypes.FILL);
AreaList[AreaList.Count - 1].AreaList.Add(newFill);
}
// Se ho più di uno split, elimino l'ultimo
if (AreaList.Count > 2)
{
int nAreaList = AreaList.Count - 1;
for (var SplitIndex = (m_SplitHorizList.Count * nVert); SplitIndex <= nAreaList; SplitIndex++)
// Ricalcolo dimensioni rimuovendo split
else
{
AreaList.Remove(AreaList[AreaList.Count - 1]);
double dLastDimension = 0;
for (var SplitIndex = m_SplitHorizList.Count - 1; SplitIndex >= value + 1; SplitIndex += -1)
{
dLastDimension += m_SplitHorizList[SplitIndex].dDimension;
m_SplitHorizList.RemoveAt(SplitIndex);
}
dLastDimension += m_SplitHorizList[m_SplitHorizList.Count - 1].dDimension;
m_SplitHorizList[m_SplitHorizList.Count - 1].SetDimension(dLastDimension);
}
// Controllo quanti split verticali ci sono
int nVert = m_SplitVertList.Count > 0 ? m_SplitVertList.Count : 1;
// Se aggiungo split devo aggiungere vetro nell'area splitted aggiunta
for (var SplitIndex = AreaList.Count; SplitIndex <= (m_SplitHorizList.Count * nVert) - 1; SplitIndex++)
{
AreaList.Add(Splitted.CreateSplitted(this));
Fill newFill = Fill.CreateFill(AreaList[SplitIndex], FillTypes.GLASS);
newFill.SetAreaType(AreaTypes.FILL);
AreaList[AreaList.Count - 1].AreaList.Add(newFill);
}
// Se ho più di uno split, elimino l'ultimo
if (AreaList.Count > 2)
{
int nAreaList = AreaList.Count - 1;
for (var SplitIndex = (m_SplitHorizList.Count * nVert); SplitIndex <= nAreaList; SplitIndex++)
{
AreaList.Remove(AreaList[AreaList.Count - 1]);
}
}
// Se elimino l'unico split presente
else
{
Splitted s = (Splitted)AreaList[0];
s.SetParentArea(ParentArea);
ParentArea.AreaList.Add(s);
ParentArea.AreaList.Remove(this);
}
}
// Se elimino l'unico split presente
else
{
Splitted s = (Splitted)AreaList[0];
s.SetParentArea(ParentArea);
ParentArea.AreaList.Add(s);
ParentArea.AreaList.Remove(this);
}
//m_ParentWindow.OnUpdatePreview(m_ParentWindow.sSerialized());
}
//m_ParentWindow.OnUpdatePreview(m_ParentWindow.sSerialized());
}
}
@@ -137,89 +140,91 @@ namespace WebWindowComplex.Models
}
set
{
if (value == 0)
if (value >= 0 && value < 6)
{
for (var SplitIndex = m_SplitVertList.Count - 1; SplitIndex >= value; SplitIndex += -1)
m_SplitVertList.RemoveAt(SplitIndex);
if (nSplitQtyHoriz == 0)
if (value == 0)
{
ParentArea.AreaList.Remove(this);
Fill newFill = Fill.CreateFill(ParentArea, FillTypes.GLASS);
newFill.SetAreaType(AreaTypes.FILL);
ParentArea.AreaList.Add(newFill);
}
else
SetSplitShape(SplitShapes.HORIZONTAL);
}
else
{
double widthTot = CalculateWidthArea(ParentWindow.AreaList.First(), ParentWindow.AreaList.FirstOrDefault().DimensionList.Where(x => x.sName == "Width").First().dValue);
// Ricalcolo dimensioni aggiungendo split
if (value > m_SplitVertList.Count - 1)
{
// recupero larghezza ultimo
double dLastDimension = widthTot;
double dNewDimension = widthTot;
if (m_SplitVertList.Count > 0)
for (var SplitIndex = m_SplitVertList.Count - 1; SplitIndex >= value; SplitIndex += -1)
m_SplitVertList.RemoveAt(SplitIndex);
if (nSplitQtyHoriz == 0)
{
dLastDimension = m_SplitVertList[m_SplitVertList.Count - 1].dDimension;
dNewDimension = dLastDimension / (value + 1 - nSplitQtyVert);
if (m_SplitVertList[m_SplitVertList.Count - 1].MeasureType.Equals(MeasureTypes.PROPORTIONAL))
dNewDimension = 1;
m_SplitVertList[m_SplitVertList.Count - 1].SetDimension(dNewDimension);
ParentArea.AreaList.Remove(this);
Fill newFill = Fill.CreateFill(ParentArea, FillTypes.GLASS);
newFill.SetAreaType(AreaTypes.FILL);
ParentArea.AreaList.Add(newFill);
}
else
dNewDimension = dLastDimension / (value + 1 - nSplitQtyVert);
// aggiungo area Split di default
for (var SplitIndex = m_SplitVertList.Count; SplitIndex <= value; SplitIndex++)
m_SplitVertList.Add(new SplitDimension(dNewDimension, m_SplitVertList[m_SplitVertList.Count - 1].MeasureType, true, this, true));
SetSplitShape(SplitShapes.HORIZONTAL);
}
else if (value == 0)
{
m_SplitVertList.RemoveAt(1);
m_SplitVertList.RemoveAt(0);
}
// Ricalcolo dimensioni rimuovendo split
else
{
double dLastDimension = 0;
for (var SplitIndex = m_SplitVertList.Count - 1; SplitIndex >= value + 1; SplitIndex += -1)
double widthTot = CalculateWidthArea(ParentWindow.AreaList.First(), ParentWindow.AreaList.FirstOrDefault().DimensionList.Where(x => x.sName == "Width").First().dValue);
// Ricalcolo dimensioni aggiungendo split
if (value > m_SplitVertList.Count - 1)
{
dLastDimension += m_SplitVertList[SplitIndex].dDimension;
m_SplitVertList.RemoveAt(SplitIndex);
// recupero larghezza ultimo
double dLastDimension = widthTot;
double dNewDimension = widthTot;
if (m_SplitVertList.Count > 0)
{
dLastDimension = m_SplitVertList[m_SplitVertList.Count - 1].dDimension;
dNewDimension = dLastDimension / (value + 1 - nSplitQtyVert);
if (m_SplitVertList[m_SplitVertList.Count - 1].MeasureType.Equals(MeasureTypes.PROPORTIONAL))
dNewDimension = 1;
m_SplitVertList[m_SplitVertList.Count - 1].SetDimension(dNewDimension);
}
else
dNewDimension = dLastDimension / (value + 1 - nSplitQtyVert);
// aggiungo area Split di default
for (var SplitIndex = m_SplitVertList.Count; SplitIndex <= value; SplitIndex++)
m_SplitVertList.Add(new SplitDimension(dNewDimension, m_SplitVertList[m_SplitVertList.Count - 1].MeasureType, true, this, true));
}
dLastDimension += m_SplitVertList[m_SplitVertList.Count - 1].dDimension;
m_SplitVertList[m_SplitVertList.Count - 1].SetDimension(dLastDimension);
}
// Controllo quanti split orizzontali ci sono
int nHoriz = m_SplitHorizList.Count > 0 ? m_SplitHorizList.Count : 1;
// Se aggiungo split devo aggiungere vetro nell'area splitted aggiunta
for (var SplitIndex = AreaList.Count; SplitIndex <= (m_SplitVertList.Count * nHoriz) - 1; SplitIndex++)
{
AreaList.Add(Splitted.CreateSplitted(this));
Fill newFill = Fill.CreateFill(AreaList[SplitIndex], FillTypes.GLASS);
newFill.SetAreaType(AreaTypes.FILL);
AreaList[AreaList.Count - 1].AreaList.Add(newFill);
}
// Se ho più di uno split, elimino l'ultimo
if (AreaList.Count > 2)
{
int nAreaList = AreaList.Count - 1;
for (var SplitIndex = (m_SplitVertList.Count * nHoriz); SplitIndex <= nAreaList; SplitIndex++)
else if (value == 0)
{
AreaList.Remove(AreaList[AreaList.Count - 1]);
m_SplitVertList.RemoveAt(1);
m_SplitVertList.RemoveAt(0);
}
// Ricalcolo dimensioni rimuovendo split
else
{
double dLastDimension = 0;
for (var SplitIndex = m_SplitVertList.Count - 1; SplitIndex >= value + 1; SplitIndex += -1)
{
dLastDimension += m_SplitVertList[SplitIndex].dDimension;
m_SplitVertList.RemoveAt(SplitIndex);
}
dLastDimension += m_SplitVertList[m_SplitVertList.Count - 1].dDimension;
m_SplitVertList[m_SplitVertList.Count - 1].SetDimension(dLastDimension);
}
// Controllo quanti split orizzontali ci sono
int nHoriz = m_SplitHorizList.Count > 0 ? m_SplitHorizList.Count : 1;
// Se aggiungo split devo aggiungere vetro nell'area splitted aggiunta
for (var SplitIndex = AreaList.Count; SplitIndex <= (m_SplitVertList.Count * nHoriz) - 1; SplitIndex++)
{
AreaList.Add(Splitted.CreateSplitted(this));
Fill newFill = Fill.CreateFill(AreaList[SplitIndex], FillTypes.GLASS);
newFill.SetAreaType(AreaTypes.FILL);
AreaList[AreaList.Count - 1].AreaList.Add(newFill);
}
// Se ho più di uno split, elimino l'ultimo
if (AreaList.Count > 2)
{
int nAreaList = AreaList.Count - 1;
for (var SplitIndex = (m_SplitVertList.Count * nHoriz); SplitIndex <= nAreaList; SplitIndex++)
{
AreaList.Remove(AreaList[AreaList.Count - 1]);
}
}
// Se elimino l'unico split presente
else
{
Splitted s = (Splitted)AreaList[0];
s.SetParentArea(ParentArea);
ParentArea.AreaList.Add(s);
ParentArea.AreaList.Remove(this);
}
}
// Se elimino l'unico split presente
else
{
Splitted s = (Splitted)AreaList[0];
s.SetParentArea(ParentArea);
ParentArea.AreaList.Add(s);
ParentArea.AreaList.Remove(this);
}
}
//m_ParentWindow.OnUpdatePreview(m_ParentWindow.sSerialized());
}
}
@@ -227,12 +232,10 @@ namespace WebWindowComplex.Models
{
get
{
//return IdNameStruct.IndFromId((int)m_SelSplitShape, m_SplitShapeList);
return (int)m_SelSplitShape;
}
set
{
//m_SelSplitShape = (SplitShapes)IdNameStruct.IdFromInd(value, m_SplitShapeList);
m_SelSplitShape = (SplitShapes)value;
// Cancello elementi nello split e azzero quantità orizzontale e verticale
AreaList.Clear();
@@ -267,7 +270,6 @@ namespace WebWindowComplex.Models
newFill.SetAreaType(AreaTypes.FILL);
AreaList[SplitIndex].AreaList.Add(newFill);
}
//m_ParentWindow.OnUpdatePreview(m_ParentWindow.sSerialized());
}
}
@@ -325,12 +327,16 @@ namespace WebWindowComplex.Models
AddCounterGroup();
newSplit.SetGroupId(nCounterGroup);
newSplit.SetSplitStartVert(bSplitStartVert);
newSplit.SetSplitQtyVert(nSplitQtyVert);
for (int i = 0; i < SplitVertList.Count; i++)
newSplit.SplitVertList.ElementAt(i).SetDimension(SplitVertList.ElementAt(i).dDimension);
newSplit.SetSplitQtyHoriz(nSplitQtyHoriz);
newSplit.SplitVertList.Add(SplitVertList[i].Copy());
for (int i = 0; i < SplitHorizList.Count; i++)
newSplit.SplitHorizList.ElementAt(i).SetDimension(SplitHorizList.ElementAt(i).dDimension);
newSplit.SplitHorizList.Add(SplitHorizList[i].Copy());
//newSplit.SetSplitQtyVert(nSplitQtyVert);
//for (int i = 0; i < SplitVertList.Count; i++)
// newSplit.SplitVertList.ElementAt(i).SetDimension(SplitVertList.ElementAt(i).dDimension);
//newSplit.SetSplitQtyHoriz(nSplitQtyHoriz);
//for (int i = 0; i < SplitHorizList.Count; i++)
// newSplit.SplitHorizList.ElementAt(i).SetDimension(SplitHorizList.ElementAt(i).dDimension);
newSplit.SetSplitShape(SelSplitShape);
newSplit.SetAreaType(AreaType);
foreach (var item in AreaList)
+12 -36
View File
@@ -59,7 +59,7 @@ namespace WebWindowComplex.Models
else
{
dimensions = m_Parent.SplitHorizList;
dimensionTot = HeightTot();
dimensionTot = CalculateHeightSplitGroup(m_Parent.ParentWindow.AreaList.FirstOrDefault(), HeightTot());
}
double valMinAbsolute = 100;
double valMaxAbsolute = dimensionTot - valMinAbsolute * (dimensions.Count - 1);
@@ -74,7 +74,7 @@ namespace WebWindowComplex.Models
case MeasureTypes.PROPORTIONAL:
{
valMaxAbsolute = 20;
valueAccept = (value > 1) ? true : false;
valueAccept = (value >= 1) ? true : false;
break;
}
case MeasureTypes.PERCENTAGE:
@@ -416,7 +416,7 @@ namespace WebWindowComplex.Models
public SplitDimension Copy()
{
SplitDimension newSplitDim = new SplitDimension(dDimension, MeasureTypes.PERCENTAGE, bIsRelative, m_Parent, bIsVertListDim);
SplitDimension newSplitDim = new SplitDimension(dDimension, MeasureType, bIsRelative, m_Parent, bIsVertListDim);
return newSplitDim;
}
@@ -507,15 +507,15 @@ namespace WebWindowComplex.Models
/// Metodo per calcolare altezza intero split group
/// </summary>
/// <param name="area"> area di partenza </param>
/// <param name="width"> larghezza di partenza </param>
/// <param name="height"> altezza di partenza </param>
/// <returns></returns>
internal double CalculateHeightSplitGroup(Area area, double width)
internal double CalculateHeightSplitGroup(Area area, double height)
{
for (int i = 0; i < area.AreaList.Count; i++)
{
double risultato = -1;
if (area.Equals(m_Parent))
return width;
return height;
Area item = area.AreaList[i];
if (area is Split)
{
@@ -526,7 +526,7 @@ namespace WebWindowComplex.Models
{
case MeasureTypes.ABSOLUTE:
{
risultato = CalculateHeightSplitGroup(item, split.SplitVertList.ElementAt(i).dDimension);
risultato = CalculateHeightSplitGroup(item, split.SplitHorizList.ElementAt(i).dDimension);
break;
}
case MeasureTypes.PROPORTIONAL:
@@ -536,7 +536,7 @@ namespace WebWindowComplex.Models
}
case MeasureTypes.PERCENTAGE:
{
risultato = CalculateHeightSplitGroup(item, split.SplitVertList.ElementAt(i).dDimension * width / 100);
risultato = CalculateHeightSplitGroup(item, split.SplitHorizList.ElementAt(i).dDimension * height / 100);
break;
}
}
@@ -545,41 +545,17 @@ namespace WebWindowComplex.Models
}
else
{
risultato = CalculateHeightSplitGroup(item, width);
risultato = CalculateHeightSplitGroup(item, height);
}
}
else if (area is Sash)
{
Sash sash = (Sash)area;
switch (sash.SashList.ElementAt(i).SelMeasureType)
{
case MeasureTypes.ABSOLUTE:
{
risultato = CalculateHeightSplitGroup(item, sash.SashList.ElementAt(i).dDimension);
break;
}
case MeasureTypes.PROPORTIONAL:
{
//risultato = CalculateHeightSplitGroup(item, sash.SashList.ElementAt(i).dDimension);
break;
}
case MeasureTypes.PERCENTAGE:
{
risultato = CalculateHeightSplitGroup(item, sash.SashList.ElementAt(i).dDimension * width / 100);
break;
}
}
if (risultato != -1)
return risultato;
}
else
{
risultato = CalculateHeightSplitGroup(item, width);
risultato = CalculateHeightSplitGroup(item, height);
if (risultato != -1)
return risultato;
}
}
return width;
return height;
}
/// <summary>
@@ -788,7 +764,7 @@ namespace WebWindowComplex.Models
}
else
{
tot = HeightTot();
tot = CalculateHeightSplitGroup(m_Parent.ParentWindow.AreaList.FirstOrDefault(), HeightTot());
m_dDimension = ConvertDimension(m_SelMeasureType, newType, tot, m_Parent.SplitHorizList);
}
m_SelMeasureType = (MeasureTypes)value;
+2 -1
View File
@@ -113,6 +113,7 @@
FrameWindow="FrameWindow"
EC_UpdateFrame="UpdatePreviewFrame"
EC_ReqResetDictShape="ReqResetDict"
EC_ReqResetDictHwOpt="ReqResetDict"
EC_UpdatePreview="UpdatePreviewSplit"
EC_ReqClose="ReturnTree">
</CardSplit>
@@ -133,7 +134,7 @@
EC_UpdateFrame="UpdatePreviewFrame"
EC_UpdatePreview="UpdatePreviewSashGroup"
EC_ReqResetDictShape="ReqResetDict"
EC_ReqResetDictHwOpt="ReqResetDictHwOpt"
EC_ReqResetDictHwOpt="ReqResetDict"
EC_ReqOptionHw="UpdateHwOptionsSash"
EC_ReqFirstOptionHw="ReqFirstOptionHw"
EC_ReqClose="ReturnTree">
+2 -28
View File
@@ -15,23 +15,6 @@ namespace WebWindowComplex
{
#region Public Enums
public enum DataAction
{
/// <summary>
/// Nessuna richiesta
/// </summary>
None = 0,
/// <summary>
/// Reset dizionario shape
/// </summary>
ResetDictShape,
/// <summary>
/// Reset dizionario HwOptions
/// </summary>
ResetHwOpt
}
public enum DataReq
{
/// <summary>
@@ -1003,18 +986,9 @@ namespace WebWindowComplex
/// Richiesta reset dizionario Shape con action
/// </summary>
/// <param name="args"></param>
private void ReqResetDict(bool args)
private async Task ReqResetDict(DataUpdateRes args)
{
_ = EC_ActionReq.InvokeAsync(DataAction.ResetDictShape);
}
/// <summary>
/// Richiesta reset dizionario Hw Option con action
/// </summary>
/// <param name="args"></param>
private void ReqResetDictHwOpt(bool args)
{
_ = EC_ActionReq.InvokeAsync(DataAction.ResetHwOpt);
_ = EC_ActionReq.InvokeAsync(args.req);
}
/// <summary>
+6 -1
View File
@@ -6,7 +6,7 @@
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Version>2.7.12.416</Version>
<Version>2.7.12.515</Version>
<Authors>Annamaria Sassi</Authors>
<Company>Egalware</Company>
<Description>Componente gestione Configurazioni avanzate Window per LUX</Description>
@@ -239,6 +239,11 @@