You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
147 lines
4.6 KiB
147 lines
4.6 KiB
using Business;
|
|
using Modèle;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Data;
|
|
using System.Windows.Documents;
|
|
using System.Windows.Input;
|
|
using System.Windows.Media;
|
|
using System.Windows.Media.Imaging;
|
|
using System.Windows.Navigation;
|
|
using System.Windows.Shapes;
|
|
|
|
|
|
namespace WpfApp1
|
|
{
|
|
|
|
/// <summary>
|
|
/// Classe DescriptionWeGoEventArgs qui implémente EventArgs
|
|
/// Elle permet de créer un argument qui permet de transformer le content control de la main window en USerControlDescription après avoir cliquer sur le UserControlRequin
|
|
/// </summary>
|
|
public class DescriptionWeGoEventArgs : EventArgs
|
|
{
|
|
/// <summary>
|
|
/// Le requin que l'on veut passer lors de l'événement
|
|
/// </summary>
|
|
public Requin Requin { get; private set; }
|
|
|
|
/// <summary>
|
|
/// L'Evénement pour changer le content control en UserControlDescription
|
|
/// </summary>
|
|
/// <param name="requin"></param>
|
|
public DescriptionWeGoEventArgs(Requin requin) => Requin = requin;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Logique d'interaction pour UserControlRequin.xaml
|
|
/// </summary>
|
|
public partial class UserControlRequin : UserControl
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
/// Manager lié à celui de l'app
|
|
/// </summary>
|
|
public Manager Mgr => (Application.Current as App).LeManager;
|
|
|
|
/// <summary>
|
|
/// Le UserControl qui est stocké dans une listBox et permet d'ouvrir les pages de description
|
|
/// </summary>
|
|
public UserControlRequin()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Event Handler de DescriptionWeGoEventArgs
|
|
/// </summary>
|
|
public event EventHandler<DescriptionWeGoEventArgs> DescriptionWeGo;
|
|
|
|
/// <summary>
|
|
/// L'événement qui permet de passer à l'UserControlDescription
|
|
/// </summary>
|
|
/// <param name="args"></param>
|
|
|
|
protected virtual void OnDescriptionWeGo(DescriptionWeGoEventArgs args)
|
|
=> DescriptionWeGo?.Invoke(this, args);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// Evénement qui est déclencher quand l'utilisateur clique sur l'userControl
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
public void UserControlReq_MouseDown(object sender, MouseButtonEventArgs e)
|
|
{
|
|
Mgr.SelectedRequin = requin;
|
|
if (type == UCrequinType.normal)
|
|
{
|
|
OnDescriptionWeGo(new DescriptionWeGoEventArgs(requin)); //Déclenche l'événement OnDescriptionWeGo
|
|
}
|
|
else if (type == UCrequinType.edit)
|
|
{
|
|
var descEdit = new DescriptionEdit { requin = requin, requinOld = Mgr.GetRequin(requin) }; //Ouvre la page DescriptionEdit
|
|
descEdit.ShowDialog();
|
|
}
|
|
else if (type == UCrequinType.add)
|
|
{
|
|
var descAdd = new DescriptionAdd { requin = requin }; //Ouvre la page DescriptionAdd
|
|
descAdd.ShowDialog();
|
|
}
|
|
}
|
|
|
|
private Requin _requin;
|
|
/// <summary>
|
|
/// Le requin qui permet de mettre à jour l'affichage
|
|
/// </summary>
|
|
public Requin requin
|
|
{
|
|
get { return _requin; }
|
|
set {
|
|
_requin = value;
|
|
uptadeUi(_requin);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Le type d'userControl requi que c'est (permet de savoir quelle description ouvrir)
|
|
/// </summary>
|
|
public UCrequinType type;
|
|
|
|
|
|
/// <summary>
|
|
/// Méthode qui permet de mettre à jour l'affichage de l'userControl
|
|
/// </summary>
|
|
/// <param name="requin"></param>
|
|
public void uptadeUi(Requin requin)
|
|
{
|
|
nameReq.Text = requin.Nom;
|
|
sciName.Text = requin.NomSci;
|
|
var url = "@" + requin.Photo;
|
|
|
|
//Test si l'image viens du dossier Image ou d'internet
|
|
if (requin.Photo.Contains("Images/"))
|
|
{
|
|
image.Source = new BitmapImage(new Uri(requin.Photo, UriKind.Relative));
|
|
}
|
|
else
|
|
{
|
|
var pathPhoto = @requin.Photo;
|
|
BitmapImage bitmap = new BitmapImage();
|
|
bitmap.BeginInit();
|
|
bitmap.UriSource = new Uri(pathPhoto, UriKind.Absolute);
|
|
bitmap.EndInit();
|
|
image.Source = bitmap;
|
|
}
|
|
}
|
|
}
|
|
}
|