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.
149 lines
4.4 KiB
149 lines
4.4 KiB
/// \file ObjetOhara.cs
|
|
/// \brief Contient la définition de la classe ObjetOhara.
|
|
///
|
|
/// La classe ObjetOhara représente les différents objets de notre application Ohara avec leur nom et l'image qui leur est attitré pour pouvoir factoriser le code.
|
|
///
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Linq;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Runtime.Serialization;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Xml.Linq;
|
|
|
|
namespace Model.Classes
|
|
{
|
|
/// <summary>
|
|
/// Représente un objet du monde de One Piece.
|
|
/// </summary>
|
|
[DataContract(Name = "objetohara")]
|
|
public class ObjetOhara : INotifyPropertyChanged
|
|
{
|
|
/// <summary>
|
|
/// Événement déclenché lorsque la valeur d'une propriété change.
|
|
/// </summary>
|
|
public event PropertyChangedEventHandler? PropertyChanged;
|
|
|
|
/// <summary>
|
|
/// Obtient ou définit le nom de l'objet.
|
|
/// </summary>
|
|
[DataMember(Name = "nom")]
|
|
private string? nom;
|
|
public string? Nom {
|
|
get => nom;
|
|
set
|
|
{
|
|
nom = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Obtient ou définit le chemin de l'image représentant l'objet.
|
|
/// </summary>
|
|
[DataMember(Name = "image")]
|
|
private string? image;
|
|
public string? Image {
|
|
get => image;
|
|
set
|
|
{
|
|
image = value;
|
|
OnPropertyChanged();
|
|
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Obtient ou définit une valeur indiquant si l'objet est marqué comme favori.
|
|
/// </summary>
|
|
[DataMember(Name = "estfavori")]
|
|
private bool estfavori;
|
|
public bool EstFavori {
|
|
get=>estfavori;
|
|
set
|
|
{
|
|
estfavori = value;
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Initialise une nouvelle instance de la classe <see cref="ObjetOhara"/> avec le nom spécifié.
|
|
/// </summary>
|
|
/// <param name="nom">Le nom de l'objet.</param>
|
|
/// <param name="image">Le chemin de l'image représentant l'objet (par défaut : "baseimage.png").</param>
|
|
/// <param name="estFavori">Indique si l'objet est marqué comme favori (par défaut : false).</param>
|
|
|
|
public ObjetOhara(string nom, string image = "baseimage.png", bool estFavori = false)
|
|
{
|
|
|
|
Nom = nom;
|
|
Image = image;
|
|
EstFavori = estFavori;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Détermine si l'objet spécifié est égal à l'objet actuel.
|
|
/// </summary>
|
|
/// <param name="obj">L'objet à comparer avec l'objet actuel.</param>
|
|
/// <returns>true si les objets sont égaux ; sinon, false.</returns>
|
|
|
|
public override bool Equals(object? obj)
|
|
{
|
|
if (obj == null) return false;
|
|
if (this.GetType() != obj.GetType())
|
|
{
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
ObjetOhara o = (ObjetOhara)obj;
|
|
return o.Nom == Nom;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// Retourne le code de hachage de l'objet.
|
|
/// </summary>
|
|
/// <returns>Le code de hachage de l'objet.</returns>
|
|
|
|
public override int GetHashCode()
|
|
{
|
|
|
|
return HashCode.Combine(Nom, Image,EstFavori);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Retourne une chaîne de caractères représentant l'objet actuel.
|
|
/// </summary>
|
|
/// <returns>Une chaîne de caractères représentant l'objet actuel.</returns>
|
|
|
|
public override string ToString()
|
|
{
|
|
return "ObjetOhara : " + Nom + " " +EstFavori+ " " + Image;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Déclenche l'événement PropertyChanged.
|
|
/// </summary>
|
|
/// <param name="propertyName">Le nom de la propriété qui a changé (facultatif).</param>
|
|
|
|
protected void OnPropertyChanged([CallerMemberName] string? propertyName = null)
|
|
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
|
}
|
|
}
|
|
|
|
|