using Microsoft.AspNetCore.Components;
using WebWindowComplex.Models;
namespace WebWindowComplex.Compo
{
public partial class CardSplit
{
///
/// Indice del fill corrente rispetto alla lista fill
///
[Parameter]
public int CurrIndex { get; set; } = 0;
///
/// Fill corrente rispetto alla lista fill
///
[Parameter]
public Split CurrItem { get; set; } = null!;
///
/// Lista di sash
///
[Parameter]
public List SashList { get; set; } = null!;
///
/// Lista di split
///
[Parameter]
public List SplitList { get; set; } = null!;
///
/// Evento per scambiare le aree di uno split
///
[Parameter]
public EventCallback EC_SwapTwoAree { get; set; }
///
/// Evento per rimuovere split
///
[Parameter]
public EventCallback EC_RemoveArea { get; set; }
///
/// Evento per cambiare nel caso di split a griglia se inizia con lo split verticale
///
[Parameter]
public EventCallback EC_ChangeStartVert { get; set; }
///
/// Evento per richiedere reset dizionario Shape
///
[Parameter]
public EventCallback EC_ReqResetDictShape { get; set; }
///
/// Evento per tornare nella pagine Tree
///
[Parameter]
public EventCallback EC_ReqClose { get; set; }
///
/// Sollevo evento per scambiare le aree di uno split
///
/// split corrente
///
protected async Task SwapTwoAree(Split item)
{
// richiesta reset dict shape
_ = EC_ReqResetDictShape.InvokeAsync(true);
await EC_SwapTwoAree.InvokeAsync(item);
}
///
/// Sollevo evento per rimuovere split
///
/// split corrente
///
protected async Task RemoveArea(Split item)
{
// richiesta reset dict shape
await EC_ReqResetDictShape.InvokeAsync(true);
await EC_RemoveArea.InvokeAsync(item);
}
///
/// Sollevo evento per rimuovere split
///
/// split corrente
///
protected async Task ChangeStartVert(ChangeEventArgs e, Split item)
{
var Args = new DataChangeStartVert
{
eventArg = e,
currItem = item,
};
await EC_ChangeStartVert.InvokeAsync(Args);
}
///
/// Metodo per determinare la descrizione del parent dello split corrente
///
/// split corrente
///
protected string descParentSplit(Split currSplit)
{
if ((currSplit.ParentArea is Splitted || currSplit.ParentArea is Sash) && SashList.Count > 0)
{
for (int j = 0; j < SashList.Count; j++)
{
if (SashList[j].Equals(currSplit.ParentArea))
{
return "Sash " + (j + 1);
}
else if (SashList[j].Equals(currSplit.ParentArea.ParentArea))
{
for (int k = 0; k < SashList[j].AreaList.Count; k++)
{
if (SashList[j].AreaList[k].AreaList[0].Equals(currSplit))
{
return "Sash group " + (j + 1) + " - sash " + (k + 1);
}
}
}
}
}
else
{
return "Frame";
}
return "";
}
///
/// Sollevo evento per tornare alla pagina Tree
///
private void ReqClose()
{
_ = EC_ReqClose.InvokeAsync(true);
}
}
public class DataChangeStartVert
{
public ChangeEventArgs eventArg { get; set; } = null!;
public Split currItem { get; set; }
}
}