using System;
using System.Collections.Generic;
using System.ComponentModel;
using InABox.Core;
using InABox.DynamicGrid;

namespace InABox.Wpf;

public interface IMasterDetailPage
{
    DynamicTabItem Tab { get; set; }
}

public interface IMasterDetailPage<TMaster> : IMasterDetailPage
{
    public event DataModelUpdateEvent? OnUpdateDataModel;
    
    Dictionary<string, object[]>? Selected();

    IDataModelSource? Refresh(TMaster? entity);

    void Heartbeat(TimeSpan time);

    void Shutdown(CancelEventArgs? cancel);

    IDataModelSource? DataModelSource();
    
    TMaster? Master { get; set; }

    void CreateToolbarButtons(IPanelHost host);
}