LES ÉVÉNEMENTS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

master
thchazot1 3 years ago
parent c89eac5264
commit 496a38b935

@ -34,6 +34,8 @@ namespace WpfApp1
public bool aChanger = false; //Booléen qui permet de savoir si l'utilisateur a déjà changer la zone de la listBox
List<Zone> lesZones = new List<Zone>() { Zone.ARCTIQUE, Zone.ATLANTIQUE, Zone.INDIEN, Zone.PACIFIQUE };
public MainWindow()
{
@ -45,8 +47,79 @@ namespace WpfApp1
Mgr.Requins.CollectionChanged += Requins_CollectionChanged;
var ucAccueil = new userControlAcceuil { zone = zonePage };
contentControl.Content = ucAccueil;
ucAccueil.AccueilWeChange += UcAccueil_AccueilWeChange;
}
/// <summary>
/// Evénement associé à l'EventHandler AccueilWeChange de l'UserControlAccueil
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void UcAccueil_AccueilWeChange(object sender, AccueilWeChangeEventArgs e)
{
var ucAccueil = new userControlAcceuil { zone = zonePage };
contentControl.Content = ucAccueil;
ucAccueil.AccueilWeChange += UcAccueil_AccueilWeChange;
ChangeRegionAvecMap(e.Zone);
}
/// <summary>
/// Evénement associé à l'EventHandler AccueilWeGo de l'UserControlRequin
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void UcDesc_AccueilWeGo(object sender, AccueilWeGoEventArgs e)
{
var ucAccueil = new userControlAcceuil { zone = zonePage };
contentControl.Content = ucAccueil;
ucAccueil.AccueilWeChange += UcAccueil_AccueilWeChange;
}
/// <summary>
/// Evénement associé à l'EventHandler EditWeGo de l'UserControlDescription
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void UcDesc_EditWeGo(object sender, EditWeGoEventArgs e)
{
var ucEdit = new UserControlEdit { requin = e.Requin };
contentControl.Content = ucEdit; //Change le content control
ucEdit.DescWeGo += UcEdit_DescWeGo; //lie l'événement DescWeGo à l'UserControlEdit
}
/// <summary>
/// Evénement associé à l'EventHandler DescriptionWeGo de l'UserControlRequin
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void GoDesc_DescriptionWeGo(object sender, DescriptionWeGoEventArgs args)
{
var ucDesc = new userControlDescription { requin = args.Requin, zone = zonePage };
contentControl.Content = ucDesc; //Change le content control
ucDesc.EditWeGo += UcDesc_EditWeGo; //lie l'événement EditWeGo à l'UserControlDescription
ucDesc.AccueilWeGo += UcDesc_AccueilWeGo; //lie l'événement EditWeGo à l'UserControlAccueil
}
/// <summary>
/// Evénement associé à l'EventHandler DescWeGo de l'UserControlEdit
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void UcEdit_DescWeGo(object sender, DescWeGoEventArgs e)
{
var ucDesc = new userControlDescription { requin = e.Requin, zone = zonePage };
contentControl.Content = ucDesc; //Change le content control
ucDesc.EditWeGo += UcDesc_EditWeGo; //lie l'événement EditWeGo à l'UserControlDescription
ucDesc.AccueilWeGo += UcDesc_AccueilWeGo; //lie l'événement EditWeGo à l'UserControlAccueil
}
/// <summary>
/// Evénement qui est déclenché lorsque l'ObservableCollection change pour mettre à jour l'affichage
/// </summary>
@ -134,34 +207,6 @@ namespace WpfApp1
ChangerAffichage(z);
}
/// <summary>
/// Méthode qui permet de changer le content control en userControlDescription
/// </summary>
/// <param name="req"></param>
public void ContentControlSwapDes(Requin req)
{
contentControl.Content = new userControlDescription { requin = req };
}
/// <summary>
/// Méthode qui permet de changer le content control en userControlAcceuil
/// </summary>
public void ContentControlSwapAcc()
{
contentControl.Content = new userControlAcceuil { zone = zonePage };
}
/// <summary>
/// Méthode qui permet de changer le content control en userControlEdit
/// </summary>
/// <param name="req"></param>
public void ContentControlSwapEdit(Requin req)
{
contentControl.Content = new UserControlEdit { requin = req };
}
/// <summary>
@ -186,7 +231,9 @@ namespace WpfApp1
viderListBox();
foreach (Requin req in Mgr.Requins)
{
laListe.Items.Add(new UserControlRequin { requin = req , type = UCrequinType.normal }) ;
var goDesc = new UserControlRequin { requin = req, type = UCrequinType.normal };
goDesc.DescriptionWeGo += GoDesc_DescriptionWeGo; //lie l'événement DescriptionWeGo à tous les UserControlRequin de la listBox
laListe.Items.Add(goDesc);
}
}
@ -215,12 +262,16 @@ namespace WpfApp1
if (test > 0)
{
//Ajoute un userControlRequin si le requin a bien une zone en commun avec la zone donnée en paramètre
laListe.Items.Add(new UserControlRequin { requin = req });
var goDesc = new UserControlRequin { requin = req, type = UCrequinType.normal };
goDesc.DescriptionWeGo += GoDesc_DescriptionWeGo; //lie l'événement DescriptionWeGo à tous les UserControlRequin de la listBox
laListe.Items.Add(goDesc);
}
test = 0;
}
//Change le content control en userControlAcceuil
contentControl.Content = new userControlAcceuil { zone = zone };
var ucAccueil = new userControlAcceuil { zone = zone };
contentControl.Content = ucAccueil;
ucAccueil.AccueilWeChange += UcAccueil_AccueilWeChange; //Lie l'événement AccueilWeChange au nouvel userControlAccueil
}
/// <summary>
@ -249,7 +300,9 @@ namespace WpfApp1
nvReq = Mgr.RechercherRequins(Mgr.Requins, zonePage, rech);
foreach(Requin req in nvReq)
{
laListe.Items.Add(new UserControlRequin { requin = req });
var goDesc = new UserControlRequin { requin = req, type = UCrequinType.normal };
goDesc.DescriptionWeGo += GoDesc_DescriptionWeGo; //lie l'événement DescriptionWeGo à tous les UserControlRequin de la listBox
laListe.Items.Add(goDesc);
}
}
else
@ -258,7 +311,10 @@ namespace WpfApp1
}
if (rech == "Shrek" || rech=="shrek")
{
laListe.Items.Add(new UserControlRequin { requin = new Requin("Shrek", "Ogre", "I see you are a person of culture as well.\n\nFais ton grrrrr", "Images/shrekin.png", "Videos/shrekin.mp4", "Images/shrekMap.png", Conservation.EW, null, "GET OUT OF MY SEA") });
Requin req = new Requin("Shrek", "Ogre", "I see you are a person of culture as well.\n\nFais ton grrrrr", "Images/shrekin.png", "Videos/shrekin.mp4", "Images/shrekMap.png", Conservation.EW, null, "GET OUT OF MY SEA");
var goDesc = new UserControlRequin { requin = req, type = UCrequinType.normal };
goDesc.DescriptionWeGo += GoDesc_DescriptionWeGo; //lie l'événement DescriptionWeGo à tous les UserControlRequin de la listBox
laListe.Items.Add(goDesc);
}
}
}

@ -17,6 +17,14 @@ using System.Windows.Shapes;
namespace WpfApp1
{
public class DescWeGoEventArgs : EventArgs
{
public Requin Requin { get; private set; }
public DescWeGoEventArgs(Requin requin) => Requin = requin;
}
/// <summary>
/// Logique d'interaction pour UserControlEdit.xaml
/// </summary>
@ -60,6 +68,12 @@ namespace WpfApp1
Conservation.NE
};
public event EventHandler<DescWeGoEventArgs> DescWeGo;
protected virtual void OnDescWeGo(DescWeGoEventArgs args)
=> DescWeGo?.Invoke(this, args);
/// <summary>
/// Méthode qui permet de mettre à jour l'affichage de la page à partir d'un requin
@ -123,7 +137,7 @@ namespace WpfApp1
private void exit_Click(object sender, RoutedEventArgs e)
{
//Change le content control de la main window en UserControlDescription
((MainWindow)System.Windows.Application.Current.MainWindow).ContentControlSwapDes(requin);
OnDescWeGo(new DescWeGoEventArgs(requin));
}
@ -216,7 +230,7 @@ namespace WpfApp1
Mgr.ModifieRequin(Mgr.Requins.SingleOrDefault(r => r.Equals(req)), req);
}
//Change le content control de la main window en UserControlDesscription
((MainWindow)System.Windows.Application.Current.MainWindow).ContentControlSwapDes(requin);
OnDescWeGo(new DescWeGoEventArgs(requin));
}
else
{
@ -229,7 +243,7 @@ namespace WpfApp1
{
Mgr.ModifieRequin(Mgr.Requins.SingleOrDefault(r => r.Equals(req)), req);
}
((MainWindow)System.Windows.Application.Current.MainWindow).ContentControlSwapDes(requin);
OnDescWeGo(new DescWeGoEventArgs(requin));
}
}

@ -19,6 +19,7 @@ namespace WpfApp1
{
/// <summary>
/// Logique d'interaction pour UserControlPosition.xaml
/// Le userControl que l'on aurait utilisé pour afficher les zones des requins sur la carte
/// </summary>
public partial class UserControlPosition : UserControl
{

@ -18,6 +18,19 @@ 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
{
public Requin Requin { get; private set; }
public DescriptionWeGoEventArgs(Requin requin) => Requin = requin;
}
/// <summary>
/// Logique d'interaction pour UserControlRequin.xaml
/// </summary>
@ -30,25 +43,40 @@ namespace WpfApp1
public UserControlRequin()
{
InitializeComponent();
}
/// <summary>
/// Event Handler de DescriptionWeGoEventArgs
/// </summary>
public event EventHandler<DescriptionWeGoEventArgs> DescriptionWeGo;
//L'événement qui permet de passer à l'UserControlDescription
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)
{
((MainWindow)System.Windows.Application.Current.MainWindow).ContentControlSwapDes(requin);
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) };
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 };
var descAdd = new DescriptionAdd { requin = requin }; //Ouvre la page DescriptionAdd
descAdd.ShowDialog();
}
}
@ -65,11 +93,18 @@ namespace WpfApp1
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));

@ -29,20 +29,30 @@ namespace WpfApp1
{
InitializeComponent();
Mgr.RequinsEdit.CollectionChanged += RequinsEdit_CollectionChanged;
Mgr.RequinsAdd.CollectionChanged += RequinsAdd_CollectionChanged;
Mgr.RequinsEdit.CollectionChanged += RequinsEdit_CollectionChanged; //Lie l'événement RequinsEdit_CollectionChanged à la ObservableCollection RequinsEdit
Mgr.RequinsAdd.CollectionChanged += RequinsAdd_CollectionChanged; //Lie l'événement RequinsEdit_CollectionChanged à la ObservableCollection RequinsAdd
ChargerUCAdd();
ChargerUCEdit();
}
/// <summary>
/// Evénement qui se déclenche quand l'ObservableCollection RequinsAdd change puis met à jour l'affichage
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void RequinsAdd_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
laListeAdd.Items.Clear();
ChargerUCAdd();
}
/// <summary>
/// Evénement qui se déclenche quand l'ObservableCollection RequinsEdit change puis met à jour l'affichage
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void RequinsEdit_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
laListeEdit.Items.Clear();
@ -54,7 +64,10 @@ namespace WpfApp1
Close();
}
public void ChargerUCAdd()
/// <summary>
/// Méthode qui permet de remplir la listBox des requins ajoutés
/// </summary>
private void ChargerUCAdd()
{
foreach (Requin req in Mgr.RequinsAdd)
{
@ -62,7 +75,10 @@ namespace WpfApp1
}
}
public void ChargerUCEdit()
/// <summary>
/// Méthode qui permet de remplir la listBox des requins modifiés
/// </summary>
private void ChargerUCEdit()
{
foreach (Requin req in Mgr.RequinsEdit)
{
@ -70,7 +86,11 @@ namespace WpfApp1
}
}
/// <summary>
/// Evénement qui permet d'ouvrir la page AddAShark
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void addShark_Click(object sender, RoutedEventArgs e)
{
var AddSharkWindow = new AddAShark();

@ -17,6 +17,20 @@ using System.Windows.Shapes;
namespace WpfApp1
{
/// <summary>
/// Classe AccueilnWeChangeEventArgs qui implémente EventArgs
/// Elle permet de créer un argument qui permet de transformer le content control de la main window en UserControlAccueil après avoir cliquer sur la carte
/// </summary>
public class AccueilWeChangeEventArgs : EventArgs
{
public Zone Zone { get; private set; }
public AccueilWeChangeEventArgs(Zone zone) => Zone = zone;
}
/// <summary>
/// Logique d'interaction pour userControlAcceuil.xaml
/// UserControl qui permet d'afficher la carte du monde et le bandeau de l'application
@ -50,9 +64,17 @@ namespace WpfApp1
choixCarte(_zone);
}
}
/// <summary>
/// Event Handler de DescriptionWeGoEventArgs
/// </summary>
public event EventHandler<AccueilWeChangeEventArgs> AccueilWeChange;
//L'événement qui permet de passer à l'UserControlDescription
protected virtual void OnAccueilWeChange(AccueilWeChangeEventArgs args)
=> AccueilWeChange?.Invoke(this, args);
/// <summary>
@ -117,7 +139,7 @@ namespace WpfApp1
private void Arctique_MouseDown(object sender, MouseButtonEventArgs e)
{
//Appelle la fonction ChangeRegionAvecMap de la main window
((MainWindow)System.Windows.Application.Current.MainWindow).ChangeRegionAvecMap(Zone.ARCTIQUE);
OnAccueilWeChange(new AccueilWeChangeEventArgs(Zone.ARCTIQUE));
}
/// <summary>
/// Evénement qui est déclenché lorsque l'utilisateur appouye sur une partie de la carte correspondant à l'océan Atlantique
@ -127,7 +149,7 @@ namespace WpfApp1
private void Atlantique_MouseDown(object sender, MouseButtonEventArgs e)
{
//Appelle la fonction ChangeRegionAvecMap de la main window
((MainWindow)System.Windows.Application.Current.MainWindow).ChangeRegionAvecMap(Zone.ATLANTIQUE);
OnAccueilWeChange(new AccueilWeChangeEventArgs(Zone.ATLANTIQUE));
}
/// <summary>
/// Evénement qui est déclenché lorsque l'utilisateur appouye sur une partie de la carte correspondant à l'océan Indien
@ -137,7 +159,7 @@ namespace WpfApp1
private void Indien_MouseDown(object sender, MouseButtonEventArgs e)
{
//Appelle la fonction ChangeRegionAvecMap de la main window
((MainWindow)System.Windows.Application.Current.MainWindow).ChangeRegionAvecMap(Zone.INDIEN);
OnAccueilWeChange(new AccueilWeChangeEventArgs(Zone.INDIEN));
}
/// <summary>
/// Evénement qui est déclenché lorsque l'utilisateur appouye sur une partie de la carte correspondant à l'océan Pacifique
@ -147,7 +169,7 @@ namespace WpfApp1
private void Pacifique_MouseDown(object sender, MouseButtonEventArgs e)
{
//Appelle la fonction ChangeRegionAvecMap de la main window
((MainWindow)System.Windows.Application.Current.MainWindow).ChangeRegionAvecMap(Zone.PACIFIQUE);
OnAccueilWeChange(new AccueilWeChangeEventArgs(Zone.PACIFIQUE));
}

@ -21,6 +21,22 @@ using VideoLibrary;
namespace WpfApp1
{
public class EditWeGoEventArgs : EventArgs
{
public Requin Requin { get; private set; }
public EditWeGoEventArgs(Requin requin) => Requin = requin;
}
public class AccueilWeGoEventArgs : EventArgs
{
public Nullable<Zone> Zone { get; private set; }
public AccueilWeGoEventArgs(Zone? zone) => Zone = zone;
}
/// <summary>
/// Logique d'interaction pour userControlDescription.xaml
/// UserControl qui affiche la desription d'un requin
@ -45,6 +61,20 @@ namespace WpfApp1
}
}
public Zone? zone { get; set; }
public event EventHandler<EditWeGoEventArgs> EditWeGo;
protected virtual void OnEditWeGo(EditWeGoEventArgs args)
=> EditWeGo?.Invoke(this, args);
public event EventHandler<AccueilWeGoEventArgs> AccueilWeGo;
protected virtual void OnAccueilWeGo(AccueilWeGoEventArgs args)
=> AccueilWeGo?.Invoke(this, args);
public int cmp = 0;
@ -56,7 +86,7 @@ namespace WpfApp1
private void exit_Click(object sender, RoutedEventArgs e)
{
//Change le content control en UserControlAcceuil
((MainWindow)System.Windows.Application.Current.MainWindow).ContentControlSwapAcc();
OnAccueilWeGo(new AccueilWeGoEventArgs(zone));
}
@ -78,7 +108,7 @@ namespace WpfApp1
else
{
//Si il l'est changer le content control en UserControlEdit
((MainWindow)System.Windows.Application.Current.MainWindow).ContentControlSwapEdit(requin);
OnEditWeGo(new EditWeGoEventArgs(requin));
}
}
@ -157,5 +187,7 @@ namespace WpfApp1
vid.Source = new Uri("Videos/requin_Ash ley.mp4", UriKind.Relative);
}
}
}
}

Loading…
Cancel
Save