using System.Collections.Generic;
using Content.Shared.MachineLinking;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;

namespace Content.Client.MachineLinking.UI
{
    [GenerateTypedNameReferences]
    public sealed partial class SignalPortSelectorMenu : DefaultWindow
    {
        private SignalPortSelectorBoundUserInterface _bui;

        public SignalPortSelectorMenu(SignalPortSelectorBoundUserInterface boundUserInterface)
        {
            RobustXamlLoader.Load(this);
            _bui = boundUserInterface;
        }

        public void UpdateState(SignalPortsState state)
        {
            ButtonContainer.Clear();
            foreach (var port in state.Ports)
            {
                var portBtn = new ItemList.Item(ButtonContainer)
                {
                    Text = port.Key,
                    Disabled = !port.Value
                };
                portBtn.OnSelected += _ => _bui.OnPortSelected(port.Key);
                ButtonContainer.Add(portBtn);
            }
        }
    }
}
