From a80e43f9f936b5efe6221c910e45e86ff9b6d5eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoan=20BRUGI=C3=88RE?= Date: Wed, 24 May 2023 11:55:58 +0200 Subject: [PATCH 1/8] Quelques modification de styles --- Sources/Model/ObjetOhara.cs | 2 +- Sources/Ohara/AppShell.xaml | 28 +++-- Sources/Ohara/MainPage.xaml | 40 +++---- Sources/Ohara/PageBestiaire.xaml | 50 ++++++--- Sources/Ohara/PageEquipage.xaml | 83 ++++++++------ Sources/Ohara/PageFDD.xaml | 121 ++++++++++----------- Sources/Ohara/PageFavoris.xaml | 28 ++--- Sources/Ohara/Resources/Styles/Styles.xaml | 16 +++ 8 files changed, 195 insertions(+), 173 deletions(-) diff --git a/Sources/Model/ObjetOhara.cs b/Sources/Model/ObjetOhara.cs index 31a4d3e..62b2dbf 100644 --- a/Sources/Model/ObjetOhara.cs +++ b/Sources/Model/ObjetOhara.cs @@ -14,7 +14,7 @@ namespace Model public string Nom { get; set; } [DataMember (Name ="image")] public string? Image { get; set;} - + [DataMember(Name = "estfavori")] public bool EstFavori { get; set; } public ObjetOhara(string nom,string image = "baseimage.png", bool estFavori = false) diff --git a/Sources/Ohara/AppShell.xaml b/Sources/Ohara/AppShell.xaml index 04d8f36..36a8ef4 100644 --- a/Sources/Ohara/AppShell.xaml +++ b/Sources/Ohara/AppShell.xaml @@ -5,29 +5,25 @@ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:Ohara" Shell.FlyoutBehavior="Locked" - Shell.NavBarIsVisible="False" - Shell.Background="#72a3b3" + Shell.NavBarIsVisible="False" + Shell.FlyoutWidth="300" > - - - - - + + + + + - + @@ -37,6 +33,8 @@ - + + diff --git a/Sources/Ohara/MainPage.xaml b/Sources/Ohara/MainPage.xaml index a21a3e5..caceff8 100644 --- a/Sources/Ohara/MainPage.xaml +++ b/Sources/Ohara/MainPage.xaml @@ -3,25 +3,25 @@ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Ohara.MainPage" BackgroundColor="#e2edf1"> + + + + + + diff --git a/Sources/Ohara/PageBestiaire.xaml b/Sources/Ohara/PageBestiaire.xaml index b987382..5fb9aae 100644 --- a/Sources/Ohara/PageBestiaire.xaml +++ b/Sources/Ohara/PageBestiaire.xaml @@ -6,27 +6,41 @@ BackgroundColor="#e2edf1"> - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/Sources/Ohara/PageEquipage.xaml b/Sources/Ohara/PageEquipage.xaml index 03c8d63..ff56f12 100644 --- a/Sources/Ohara/PageEquipage.xaml +++ b/Sources/Ohara/PageEquipage.xaml @@ -5,8 +5,13 @@ Title="PageEquipage" BackgroundColor="#e2edf1"> - - + + + + + + + @@ -17,44 +22,52 @@ - - - - - - - - - - - - - - - - - + FontSize="19" + TextColor="White" + FontAttributes="Bold" /> + + + + + + + \ No newline at end of file diff --git a/Sources/Ohara/PageFDD.xaml b/Sources/Ohara/PageFDD.xaml index 6ed942d..318705f 100644 --- a/Sources/Ohara/PageFDD.xaml +++ b/Sources/Ohara/PageFDD.xaml @@ -6,84 +6,73 @@ BackgroundColor="#e2edf1"> - - - - - - - - - - - - - - - + + - - - \ No newline at end of file diff --git a/Sources/Ohara/PageFavoris.xaml b/Sources/Ohara/PageFavoris.xaml index d84c21f..1234d22 100644 --- a/Sources/Ohara/PageFavoris.xaml +++ b/Sources/Ohara/PageFavoris.xaml @@ -5,37 +5,29 @@ Title="PageFavoris" BackgroundColor="#e2edf1"> - - - + + + - - - - - - - - - - - - + + + + + - + + + From d5d25d045366d909405049019ffe70e8c4977741 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoan=20BRUGI=C3=88RE?= Date: Wed, 24 May 2023 13:28:01 +0200 Subject: [PATCH 2/8] Nouveau header collection view --- Sources/Model/Manager.cs | 36 +++++++++- Sources/Ohara/AppShell.xaml | 4 +- Sources/Ohara/PageBestiaire.xaml | 43 ++++-------- Sources/Ohara/PageFDD.xaml | 43 ++++-------- Sources/Ohara/PageFavoris.xaml | 106 +++++++++++++++--------------- Sources/Ohara/PageFavoris.xaml.cs | 8 ++- 6 files changed, 120 insertions(+), 120 deletions(-) diff --git a/Sources/Model/Manager.cs b/Sources/Model/Manager.cs index 7ffb8a8..8dfaa81 100644 --- a/Sources/Model/Manager.cs +++ b/Sources/Model/Manager.cs @@ -1,6 +1,8 @@ -using Model.Stub; +using Microsoft.VisualBasic; +using Model.Stub; using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -12,9 +14,10 @@ namespace Model { public IDataManager DataManager { get; set; } - + public ObservableCollection Bateaux { get; private set; } public Manager() { + Bateaux = new ObservableCollection(); DataManager = new StubManager(); } @@ -84,7 +87,36 @@ namespace Model } return listeFDD; } + public List RechercheObjetOhara(string text, List liste) + { + if (text == "") + { + return liste; + } + foreach (ObjetOhara f in liste.ToList()) + { + bool correspondance = false; + int textPos = 0; + for (int i = 0; i < (f.Nom.Length); i++) + { + if (string.Equals(text[textPos].ToString(), f.Nom[i].ToString(), StringComparison.OrdinalIgnoreCase)) + { + textPos++; + } + if (textPos == text.Length) + { + correspondance = true; + break; + } + } + if (!correspondance) + { + liste.Remove(f); + } + } + return liste; + } public List GetFavoris() { List listeFavoris = new List(); diff --git a/Sources/Ohara/AppShell.xaml b/Sources/Ohara/AppShell.xaml index 36a8ef4..3ba963e 100644 --- a/Sources/Ohara/AppShell.xaml +++ b/Sources/Ohara/AppShell.xaml @@ -17,13 +17,13 @@ - - + diff --git a/Sources/Ohara/PageBestiaire.xaml b/Sources/Ohara/PageBestiaire.xaml index 5fb9aae..1173da4 100644 --- a/Sources/Ohara/PageBestiaire.xaml +++ b/Sources/Ohara/PageBestiaire.xaml @@ -9,37 +9,18 @@ - - - - - - - - - - - - - - - + + + + + diff --git a/Sources/Ohara/PageFDD.xaml b/Sources/Ohara/PageFDD.xaml index 318705f..1145731 100644 --- a/Sources/Ohara/PageFDD.xaml +++ b/Sources/Ohara/PageFDD.xaml @@ -11,37 +11,18 @@ - - - - - - - - - - - - - - - + + + + + diff --git a/Sources/Ohara/PageFavoris.xaml b/Sources/Ohara/PageFavoris.xaml index 1234d22..367b89d 100644 --- a/Sources/Ohara/PageFavoris.xaml +++ b/Sources/Ohara/PageFavoris.xaml @@ -1,55 +1,55 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Sources/Ohara/PageFavoris.xaml.cs b/Sources/Ohara/PageFavoris.xaml.cs index 7b17aa6..f02747e 100644 --- a/Sources/Ohara/PageFavoris.xaml.cs +++ b/Sources/Ohara/PageFavoris.xaml.cs @@ -10,7 +10,13 @@ public partial class PageFavoris : ContentPage public PageFavoris() { InitializeComponent(); - listeFavs.ItemsSource = manager.GetFavoris(); + listeFavs.ItemsSource = manager.GetFavoris(); + void OnTextChanged(object sender, EventArgs e) + { + SearchBar searchBar = (SearchBar)sender; + listeFavs.ItemsSource = manager.RechercheObjetOhara(searchBar.Text, manager.GetFavoris()); + } + searchBar.TextChanged += OnTextChanged; } async void listeFavs_SelectionChanged(object sender, SelectionChangedEventArgs e) From 185db847cf9f4906e9b4c31872831e6c86234b9b Mon Sep 17 00:00:00 2001 From: Guillaume REY Date: Wed, 24 May 2023 15:11:29 +0200 Subject: [PATCH 3/8] modif readme, ajout de : tous les stub, stubManager, Serializer, Manager, IDataManager. Reste a faire les jointures et les descriptions --- README.md | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/README.md b/README.md index 82ce2e2..249e77a 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,95 @@ classDiagram } + class Serializer { + + SetPersonnage(listePerso : List~Personnage~) : void + + SetFDD(listeFDD : List~FruitDuDemon~) : void + + SetBestiaire(listeBest : List~Bestiaire~) : void + + SetEquipage(listeEquip : List~Equipage~) : void + + SetIle(listeIle : List~Ile~) : void + + SetBateau(listeBateau : List~Bateau~) : void + + GetBateaux() : IEnumerable~Bateau~ + + GetBestiaires() : IEnumerable~Bestiaire~ + + GetEquipages() : IEnumerable~Equipage~ + + GetFruits() : IEnumerable~FruitDuDemon~ + + GetIles() : IEnumerable~Ile~ + + GetPersonnages() : IEnumerable~Personnage~ + } + + + + class Manager { + + DataManager : IDataManager + + Bateaux : ObservableCollection~Bateau~ + + Manager() + + GetPersonnages() : List~Personnage~ + + GetFruits() : List~FruitDuDemon~ + + GetEquipages() : List~Equipage~ + + GetBateaux() : List~Bateau~ + + GetBestiaires() : List~Bestiaire~ + + GetIles() : List~Ile~ + + FiltrerFDD(type : string) : List~FruitDuDemon~ + + RechercheFDD(text : string, listeFDD : List~FruitDuDemon~) : List~FruitDuDemon~ + + RechercheObjetOhara(text : string, liste List~ObjetOhara~) : List~ObjetOhara~ + + GetFavoris() : List~ObjetOhara~ + + AddBateauFavoris(bateau : Bateau) : void + } + + + class IDataManager { + <> + GetBateaux() : IEnumerable~Bateau~ + GetBestiaires() : IEnumerable~Bestiaire~ + GetEquipages() : IEnumerable~Equipage~ + GetFruits() : IEnumerable~FruitDuDemon~ + GetIles() : IEnumerable~Ile~ + GetPersonnages() : IEnumerable~Personnage~ + } + + + class StubManager { + + StubPersonnage : StubPersonnage + + StubFruitDuDemon : StubFruitDuDemon + + StubEquipage : StubEquipage + + StubBateau : StubBateau + + StubBestiaire : StubBestiaire + + StubIle : StubIle + + StubManager() + + GetPersonnages() : IEnumerable~Personnage~ + + GetFruits() : IEnumerable~FruitDuDemon~ + + GetEquipages() : IEnumerable~Equipage~ + + GetBateaux() : IEnumerable~Bateau~ + + GetBestiaires() : IEnumerable~Bestiaire~ + + GetIles() : IEnumerable~Ile~ + } + + + class StubBateau { + + RecupererBateau : IEnumerable~Bateau~ + } + + class StubBestiaire { + + RecupererBestiaire : IEnumerable~Bestiaire~ + } + + class StubEquipage { + + RecupererEquipage : IEnumerable~Equipage~ + } + + class StubFruitDuDemon { + + RecupererFruit : IEnumerable~FruitDuDemon~ + } + + class StubIle { + + RecupererIle : IEnumerable~Ile~ + } + + class StubPersonnage { + + RecupererPersonnage : IEnumerable~Personnage~ + } + + + FruitDuDemon --> Personnage : + Utilisateur Personnage --> Equipage : + Equipage Personnage --> FruitDuDemon : + Fruit From 6ea4177079753feedcb18901a4d5123d0a1c449f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoan=20BRUGI=C3=88RE?= Date: Wed, 24 May 2023 17:35:55 +0200 Subject: [PATCH 4/8] =?UTF-8?q?Debut=20de=20la=20fonctionnalit=C3=A9=20ajo?= =?UTF-8?q?ut=C3=A9=20favoris?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sources/Model/Manager.cs | 82 +++++++++++++++++-- Sources/Model/ObjetOhara.cs | 11 +++ Sources/Model/Stub/StubBateau.cs | 3 + Sources/Ohara/PageBateau.xaml | 4 +- Sources/Ohara/PageBateau.xaml.cs | 10 ++- Sources/Ohara/PageFDD.xaml | 94 +++++++++++----------- Sources/Ohara/PageFDD.xaml.cs | 4 +- Sources/Ohara/PageFavoris.xaml | 11 +-- Sources/Ohara/PageFavoris.xaml.cs | 81 ++++++++++--------- Sources/Ohara/PageInfoBateau.xaml | 2 +- Sources/Ohara/PageInfoBateau.xaml.cs | 19 +++-- Sources/Ohara/Resources/Styles/Styles.xaml | 9 +++ Sources/TestConsole/Program.cs | 24 +++--- 13 files changed, 230 insertions(+), 124 deletions(-) diff --git a/Sources/Model/Manager.cs b/Sources/Model/Manager.cs index 8dfaa81..3c8ce05 100644 --- a/Sources/Model/Manager.cs +++ b/Sources/Model/Manager.cs @@ -14,11 +14,24 @@ namespace Model { public IDataManager DataManager { get; set; } - public ObservableCollection Bateaux { get; private set; } + public ObservableCollection Bateaux { get; set; } + public ObservableCollection Personnages { get; set; } + public ObservableCollection Fruits { get; set; } + public ObservableCollection Iles { get; set; } + public ObservableCollection Bestiaire { get; set; } + public ObservableCollection Equipages { get; set; } + + public ObjetOhara? SelectedItem { get; set; } = null; public Manager() { - Bateaux = new ObservableCollection(); DataManager = new StubManager(); + Bateaux = new ObservableCollection(DataManager.GetBateaux()); + Personnages = new ObservableCollection(DataManager.GetPersonnages()); + Fruits = new ObservableCollection(DataManager.GetFruits()); + Iles = new ObservableCollection(DataManager.GetIles()); + Bestiaire = new ObservableCollection(DataManager.GetBestiaires()); + Equipages = new ObservableCollection(DataManager.GetEquipages()); + } public List GetPersonnages() @@ -120,15 +133,15 @@ namespace Model public List GetFavoris() { List listeFavoris = new List(); - listeFavoris.AddRange(GetBateaux()); - listeFavoris.AddRange(GetIles()); + listeFavoris.AddRange(Bateaux); + listeFavoris.AddRange(Equipages); listeFavoris.AddRange(GetEquipages()); listeFavoris.AddRange(GetFruits()); listeFavoris.AddRange(GetBestiaires()); listeFavoris.AddRange(GetPersonnages()); foreach(ObjetOhara obj in listeFavoris.ToList()) { - if (obj.EstFavori == true) + if (obj.EstFavori == false) { listeFavoris.Remove(obj); } @@ -136,9 +149,64 @@ namespace Model return listeFavoris; } - public void AddBateauFavoris(Bateau bateau) + public void AddFavoris(ObjetOhara obj) { - bateau.EstFavori = true; + Type t = obj.GetType(); + + if (t.Equals(typeof(Bateau))) + foreach(Bateau b in Bateaux) + { + if (b.Equals(obj)) + { + b.EstFavori = true; + } + } + else if (t.Equals(typeof(Equipage))) + foreach (Equipage b in Equipages) + { + if (b.Equals(obj)) + { + b.EstFavori = true; + } + } + + else if (t.Equals(typeof(Personnage))) + foreach (Personnage b in Personnages) + { + if (b.Equals(obj)) + { + b.EstFavori = true; + } + } + + else if (t.Equals(typeof(Ile))) + foreach (Ile b in Iles) + { + if (b.Equals(obj)) + { + b.EstFavori = true; + } + } + + else if (t.Equals(typeof(FruitDuDemon))) + foreach (FruitDuDemon b in Fruits) + { + if (b.Equals(obj)) + { + b.EstFavori = true; + } + } + + else if (t.Equals(typeof(Bestiaire))) + foreach (Bestiaire b in Bestiaire) + { + if (b.Equals(obj)) + { + b.EstFavori = true; + } + } + } + } } diff --git a/Sources/Model/ObjetOhara.cs b/Sources/Model/ObjetOhara.cs index 62b2dbf..e2f41d6 100644 --- a/Sources/Model/ObjetOhara.cs +++ b/Sources/Model/ObjetOhara.cs @@ -23,6 +23,17 @@ namespace Model Image = image; EstFavori = estFavori; } + + public override bool Equals(object? obj) + { + if (obj == null) return false; + else + { + ObjetOhara o = (ObjetOhara)obj; + return o.Nom == Nom; + } + + } } } diff --git a/Sources/Model/Stub/StubBateau.cs b/Sources/Model/Stub/StubBateau.cs index a5c1e4d..350b5cb 100644 --- a/Sources/Model/Stub/StubBateau.cs +++ b/Sources/Model/Stub/StubBateau.cs @@ -16,6 +16,9 @@ namespace Model.Stub new Bateau("Sunny", "Sauzando Sani-go", 435, 321, "Le Thousand Sunny est...", "Ce bateau a pour particularités ...", "sunny.png"), new Bateau("Vogue Merry", "Goingu Merri-go", 41, 17, "Le Vogue Merry est...", "Ce bateau a pour particularités ...", "vogue_merry.png"), new Bateau("Moby Dick", "Mobi Dikku-go", 234, 151, "Le Moby Dick est...", "Ce bateau a pour particularités ...", "moby_dick.png"), + new Bateau("Test", "Mobi Dikku-go", 234, 151, "Le Moby Dick est...", "Ce bateau a pour particularités ...", "moby_dick.png"), + new Bateau("Test2", "Mobi Dikku-go", 234, 151, "Le Moby Dick est...", "Ce bateau a pour particularités ...", "moby_dick.png"), + }; return bateau; } diff --git a/Sources/Ohara/PageBateau.xaml b/Sources/Ohara/PageBateau.xaml index f50c5db..a8403dc 100644 --- a/Sources/Ohara/PageBateau.xaml +++ b/Sources/Ohara/PageBateau.xaml @@ -21,14 +21,14 @@