using System;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using Avalonia.VisualTree;
using Project_Periodensystem.Model;
using Project_Periodensystem.Controller;
namespace Project_Periodensystem.View
{
///
/// Code-Behind für die About-Seite - SAUBERES MVC
///
public partial class AboutPage : UserControl
{
private PeriodensystemController? _controller;
///
/// Konstruktor
///
public AboutPage()
{
InitializeComponent();
}
///
/// Controller setzen (Dependency Injection für MVC)
///
public void SetController(PeriodensystemController controller)
{
_controller = controller ?? throw new ArgumentNullException(nameof(controller));
Logger.Log("AboutPage: Controller gesetzt (MVC-Pattern)");
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
///
/// Zurück-Button - Navigation zur Landing Page - SAUBERES MVC
///
private void BackButton_Click(object? sender, RoutedEventArgs e)
{
try
{
if (_controller != null)
{
// Controller übernimmt Navigation
_controller.HandleNavigateToLanding();
}
else
{
Logger.LogError("Controller nicht gesetzt - kann nicht navigieren");
}
}
catch (Exception ex)
{
Logger.LogException(ex, "BackButton_Click");
}
}
///
/// Event-Handler für Theme-Button - SAUBERES MVC
///
private void ThemeButton_Click(object? sender, RoutedEventArgs e)
{
try
{
if (_controller != null)
{
// Controller übernimmt Theme-Logik
_controller.HandleToggleTheme();
}
else
{
Logger.LogError("Controller nicht gesetzt - kann Theme nicht wechseln");
}
}
catch (Exception ex)
{
Logger.LogException(ex, "ThemeButton_Click");
}
}
}
}