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; } } }