using Avalonia.Controls;
using Avalonia.Input;
using ClawdDotNet.Desktop.ViewModels;

namespace ClawdDotNet.Desktop.Views;

public partial class InstancePickerWindow : Window
{
    public InstancePickerWindow()
    {
        InitializeComponent();

        // Doppelklick auf eine Zeile bestaetigt — wie in der WinForms-Fassung.
        //
        // Der Behandler haengt an der Liste und nicht mehr am Fenster: Am Fenster loeste
        // auch ein Doppelklick ins Namensfeld die Auswahl aus, was seit dem Umbau
        // deutlich leichter passiert, weil das Feld gross und mittig steht.
        InstanceList.AddHandler(DoubleTappedEvent, OnRowDoubleTapped, handledEventsToo: false);
    }

    private void OnRowDoubleTapped(object? sender, TappedEventArgs e)
    {
        if (DataContext is not InstancePickerViewModel vm) return;

        // Getroffen wird irgendein Element in der Zeile; der Datenkontext ist derselbe.
        if ((e.Source as Control)?.DataContext is not InstanceChoiceViewModel choice) return;

        vm.ActivateCommand.Execute(choice);
    }
}
