Affiliation bateaux + bar de recherche pour toutes les pages + tests flex layout
continuous-integration/drone/push Build is passing Details

pull/15/head
Yoan 2 years ago
parent 2bdde35a30
commit f96143711e

@ -3,6 +3,7 @@
namespace Model.Classes
{
[DataContract(Name = "personnage")]
public class Personnage : ObjetOhara
{
[DataMember(Name = "prime")]
@ -20,7 +21,7 @@ namespace Model.Classes
[DataMember(Name = "citation")]
public string Citation { get; set; }
[DataMember(Name = "equipage", EmitDefaultValue = false)]
public List<Equipage> Equipage { get; set; } = new List<Equipage>();
public Equipage Equipage { get; set; }
[DataMember(Name = "fruit", EmitDefaultValue = false)]
public List<FruitDuDemon> Fruit { get; set; } = new List<FruitDuDemon>();
@ -59,7 +60,7 @@ namespace Model.Classes
{
Image = image;
}
public Personnage(string nom, double prime, string epithete, int age, double taille, string origine, string biographie, string citation, string image, List<Equipage> equipage, List<FruitDuDemon> fruit) : this(nom, prime, epithete, age, taille, origine, biographie, citation, image)
public Personnage(string nom, double prime, string epithete, int age, double taille, string origine, string biographie, string citation, string image, Equipage equipage, List<FruitDuDemon> fruit) : this(nom, prime, epithete, age, taille, origine, biographie, citation, image)
{
Equipage = equipage;
Fruit = fruit;

@ -210,7 +210,7 @@ namespace Model.Managers
{
if (b.Equals(obj))
{
b.EstFavori = true;
b.EstFavori = value;
DataManager.SetFDD(Fruits.ToList());
}
}

@ -12,11 +12,21 @@ namespace Model.Stub
{
public IEnumerable<Bateau> RecupererBateau()
{
Bateau sunny = new Bateau("Sunny", "Sauzando Sani-go", 435, 321, "Le Thousand Sunny est...", "Ce bateau a pour particularités ...", "sunny.png");
Bateau merry =new Bateau("Vogue Merry", "Goingu Merri-go", 41, 17, "Le Vogue Merry est...", "Ce bateau a pour particularités ...", "vogue_merry.png");
Bateau moby = new Bateau("Moby Dick", "Mobi Dikku-go", 234, 151, "Le Moby Dick est...", "Ce bateau a pour particularités ...", "moby_dick.png");
StubEquipage stubEquipage = new StubEquipage();
StubPersonnage stubPersonnage = new StubPersonnage();
stubEquipage.ChargerEquipage(stubPersonnage.RecupererPersonnage().ToList());
List<Equipage> equipages = stubEquipage.RecupererEquipage().ToList();
sunny.Affiliation = equipages.FirstOrDefault(p => p.Nom == "Équipage au chapeau de paille");
merry.Affiliation = equipages.FirstOrDefault(p => p.Nom == "Équipage au chapeau de paille");
moby.Affiliation = equipages.FirstOrDefault(p => p.Nom == "Équipage de Barbe Blanche");
List<Bateau> bateau = new List<Bateau>()
{
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"),
sunny,
merry,
moby,
};
return bateau;
}

@ -41,28 +41,28 @@ namespace Model.Stub
brook,
};
stubEquipage.ChargerEquipage(persos);
List<Equipage> equipages = new List<Equipage>(stubEquipage.RecupererEquipage());
var equip = equipages.Where(p => p.Nom == "Équipage au chapeau de paille");
luffy.Equipage.AddRange(equip);
nami.Equipage.AddRange(equip);
usopp.Equipage.AddRange(equip);
zoro.Equipage.AddRange(equip);
robin.Equipage.AddRange(equip);
brook.Equipage.AddRange(equip);
chopper.Equipage.AddRange(equip);
List<Personnage> persos2 = new List<Personnage>()
{
luffy,
nami,
usopp,
zoro,
robin,
chopper,
brook,
//stubEquipage.ChargerEquipage(persos);
//List<Equipage> equipages = new List<Equipage>(stubEquipage.RecupererEquipage());
//var equip = equipages.Where(p => p.Nom == "Équipage au chapeau de paille");
//luffy.Equipage.AddRange(equip);
//nami.Equipage.AddRange(equip);
//usopp.Equipage.AddRange(equip);
//zoro.Equipage.AddRange(equip);
//robin.Equipage.AddRange(equip);
//brook.Equipage.AddRange(equip);
//chopper.Equipage.AddRange(equip);
//List<Personnage> persos2 = new List<Personnage>()
//{
// luffy,
// nami,
// usopp,
// zoro,
// robin,
// chopper,
// brook,
};
return persos2;
//};
return persos;
}
}
}

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Ohara.ModalFDD"
Title="ModalFDD"
BackgroundColor="#e2edf1">
<StackLayout>
<Button Text="Annuler" Clicked="Button_Clicked"/>
</StackLayout>
</ContentPage>

@ -0,0 +1,14 @@
namespace Ohara;
public partial class ModalFDD : ContentPage
{
public ModalFDD()
{
InitializeComponent();
}
private async void Button_Clicked(object sender, EventArgs e)
{
await Navigation.PopModalAsync();
}
}

@ -58,6 +58,9 @@
</ItemGroup>
<ItemGroup>
<Compile Update="ModalFDD.xaml.cs">
<DependentUpon>ModalFDD.xaml</DependentUpon>
</Compile>
<Compile Update="PageFavoris.xaml.cs">
<DependentUpon>PageFavoris.xaml</DependentUpon>
</Compile>
@ -88,6 +91,9 @@
</ItemGroup>
<ItemGroup>
<MauiXaml Update="ModalFDD.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="PageFavoris.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>

@ -13,7 +13,12 @@ public partial class PageBateau : ContentPage
{
InitializeComponent();
BindingContext = manager;
void OnTextChanged(object sender, EventArgs e)
{
SearchBar searchBar = (SearchBar)sender;
listeBateau.ItemsSource = manager.RechercheObjetOhara(searchBar.Text, new List<ObjetOhara>(manager.Bateaux.ToList()));
}
searchBar.TextChanged += OnTextChanged;
}
async void listeBateau_SelectionChanged(object sender, SelectionChangedEventArgs e)

@ -14,6 +14,12 @@ public partial class PageBestiaire : ContentPage
{
InitializeComponent();
BindingContext = manager;
void OnTextChanged(object sender, EventArgs e)
{
SearchBar searchBar = (SearchBar)sender;
listeBest.ItemsSource = manager.RechercheObjetOhara(searchBar.Text, new List<ObjetOhara>(manager.Bestiaire.ToList()));
}
searchBar.TextChanged += OnTextChanged;
}
async void listeBest_SelectionChanged(object sender, SelectionChangedEventArgs e)

@ -3,12 +3,12 @@
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Ohara.PageFDD"
Title="PageFDD"
Appearing="ContentPage_Appearing"
BackgroundColor="#e2edf1">
<CollectionView x:Name="listeFDD" ItemsSource="{Binding Fruits}" EmptyView="Aucun résultat trouvé." SelectionMode="Single" SelectionChanged="listeFDD_SelectionChanged" >
<!--<CollectionView x:Name="listeFDD" ItemsSource="{Binding Fruits}" EmptyView="Aucun résultat trouvé." SelectionMode="Single" SelectionChanged="listeFDD_SelectionChanged" >
<CollectionView.ItemsLayout>
<GridItemsLayout Orientation="Vertical" Span="4" HorizontalItemSpacing="15" VerticalItemSpacing="15"/>
</CollectionView.ItemsLayout>
@ -42,14 +42,58 @@
<CollectionView.ItemTemplate >
<DataTemplate >
<Frame Style="{StaticResource frameObjet}">
<StackLayout Orientation="Vertical" Padding="5">
<Image
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>-->
<ScrollView>
<VerticalStackLayout>
<Grid ColumnDefinitions="200,*,150,10,150" BackgroundColor="#72a3b3" Padding="10">
<SearchBar x:Name="searchBar" Placeholder="Rechercher..." BackgroundColor="#bfe5ef" Grid.Column="0"/>
<Button Text="Ajouter" Clicked="Button_Clicked" />
<!--<Picker Title="Filtrer" Grid.Column="2" BackgroundColor="white" SelectedIndexChanged="PickerFiltre_SelectedIndexChanged" TitleColor="White" FontSize="15" >
<Picker.ItemsSource>
<x:Array Type="{x:Type x:String}">
<x:String>Aucun</x:String>
<x:String>Logia</x:String>
<x:String>Paramecia</x:String>
<x:String>Zoan Carnivore</x:String>
<x:String>Zoan Mythique</x:String>
</x:Array>
</Picker.ItemsSource>
</Picker>
<Picker Title="Trier" Grid.Column="4" BackgroundColor="White" TitleColor="White" FontSize="15">
<Picker.ItemsSource>
<x:Array Type="{x:Type x:String}">
<x:String>Nom croissant</x:String>
<x:String>Nom décroissant</x:String>
</x:Array>
</Picker.ItemsSource>
</Picker>-->
</Grid>
<FlexLayout x:Name="listeFDD" AlignItems="Center" Wrap="Wrap"
HorizontalOptions="Center"
BindableLayout.ItemsSource="{Binding Fruits}" JustifyContent="SpaceEvenly">
<BindableLayout.ItemTemplate>
<DataTemplate>
<Frame Style="{StaticResource frameObjet}" Margin="0,10,0,0" >
<Frame.GestureRecognizers>
<TapGestureRecognizer CommandParameter="{Binding Nom}" Tapped="TapGestureRecognizer_Tapped"/>
</Frame.GestureRecognizers>
<StackLayout Orientation="Vertical" Padding="5">
<Image
Source="{Binding Image}"
HeightRequest="280"
WidthRequest="280" />
<Label
<Label
HorizontalOptions="Center"
VerticalOptions="Start"
HorizontalTextAlignment="Center"
@ -59,16 +103,19 @@
TextColor="#72a3b3"
FontAttributes="Bold" />
<Label
<Label
VerticalOptions="Center"
HorizontalOptions="Center"
Text="{Binding Type}"
FontAttributes="Italic"
TextColor="#72a3b3"/>
</StackLayout>
</Frame>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</StackLayout>
</Frame>
</DataTemplate>
</BindableLayout.ItemTemplate>
</FlexLayout>
</VerticalStackLayout>
</ScrollView>
</ContentPage>

@ -16,12 +16,12 @@ public partial class PageFDD : ContentPage
InitializeComponent();
BindingContext = manager;
void OnTextChanged(object sender, EventArgs e)
{
SearchBar searchBar = (SearchBar)sender;
listeFDD.ItemsSource = manager.RechercheFDD(searchBar.Text,manager.Fruits.ToList());
}
searchBar.TextChanged += OnTextChanged;
//void OnTextChanged(object sender, EventArgs e)
//{
// SearchBar searchBar = (SearchBar)sender;
// listeFDD.ItemsSource = manager.RechercheFDD(searchBar.Text,manager.Fruits.ToList());
//}
//searchBar.TextChanged += OnTextChanged;
}
private void listeFDD_ScrollToRequested(object sender, ScrollToRequestEventArgs e)
@ -29,34 +29,52 @@ public partial class PageFDD : ContentPage
}
async void listeFDD_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.CurrentSelection.Count == 0) return;
manager.SelectedItem=(FruitDuDemon)listeFDD.SelectedItem;
await Navigation.PushAsync(new PageInfoFdd());
}
private void PickerFiltre_SelectedIndexChanged(object sender, EventArgs e)
private async void TapGestureRecognizer_Tapped(object sender, TappedEventArgs e)
{
var picker=(Picker)sender;
int selectedIndex = picker.SelectedIndex;
if(selectedIndex == 0)
{
listeFDD.ItemsSource=manager.Fruits.ToList();
}
else
FruitDuDemon SelectedItem = manager.Fruits.FirstOrDefault(p => p.Nom == (((TappedEventArgs)e).Parameter.ToString()));
if (SelectedItem != null)
{
listeFDD.ItemsSource = manager.FiltrerFDD((string)picker.ItemsSource[selectedIndex]).ToList();
//do something you want
manager.SelectedItem = SelectedItem;
await Navigation.PushAsync(new PageInfoFdd());
}
}
private void ContentPage_Appearing(object sender, EventArgs e)
private async void Button_Clicked(object sender, EventArgs e)
{
manager.SelectedItem = null;
listeFDD.SelectedItem = null;
await Navigation.PushModalAsync(new ModalFDD());
}
//async void listeFDD_SelectionChanged(object sender, SelectionChangedEventArgs e)
//{
// if (e.CurrentSelection.Count == 0) return;
// manager.SelectedItem=(FruitDuDemon)listeFDD.SelectedItem;
// await Navigation.PushAsync(new PageInfoFdd());
//}
//private void PickerFiltre_SelectedIndexChanged(object sender, EventArgs e)
//{
// var picker=(Picker)sender;
// int selectedIndex = picker.SelectedIndex;
// if(selectedIndex == 0)
// {
// listeFDD.=manager.Fruits.ToList();
// }
// else
// {
// listeFDD.ItemsSource = manager.FiltrerFDD((string)picker.ItemsSource[selectedIndex]).ToList();
// }
//}
//private void ContentPage_Appearing(object sender, EventArgs e)
//{
// manager.SelectedItem = null;
// listeFDD.SelectedItem = null;
//}
}

@ -11,10 +11,10 @@
<GridItemsLayout Orientation="Vertical" Span="4" HorizontalItemSpacing="15" VerticalItemSpacing="15"/>
</CollectionView.ItemsLayout>
<CollectionView.Header>
<Grid ColumnDefinitions="200,*,100,100,10,100" BackgroundColor="#72a3b3" Padding="10">
<Grid ColumnDefinitions="200,*,100,10,100" BackgroundColor="#72a3b3" Padding="10">
<SearchBar x:Name="searchBar" Placeholder="Rechercher..." BackgroundColor="#bfe5ef" Grid.Column="0"/>
<Button Text="Actualiser" Clicked="Button_Clicked" Grid.Column="2" CornerRadius="20" BackgroundColor="#bfe5ef" BorderColor="#bfe5ef"/>
<Picker Title="Filtrer" Grid.Column="3" BackgroundColor="white" SelectedIndexChanged="PickerFiltre_SelectedIndexChanged" TitleColor="White" FontSize="15" >
<Picker Title="Filtrer" Grid.Column="2" BackgroundColor="white" SelectedIndexChanged="PickerFiltre_SelectedIndexChanged" TitleColor="White" FontSize="15" >
<Picker.ItemsSource>
<x:Array Type="{x:Type x:String}">
<x:String>Aucun</x:String>
@ -26,7 +26,7 @@
</Picker.ItemsSource>
</Picker>
<Frame CornerRadius="20" BackgroundColor="#bfe5ef" BorderColor="#bfe5ef" Grid.Column="5">
<Frame CornerRadius="20" BackgroundColor="#bfe5ef" BorderColor="#bfe5ef" Grid.Column="4">
<Label Text="Trier" HorizontalTextAlignment="Center" />
</Frame>

@ -69,12 +69,10 @@ public partial class PageFavoris : ContentPage
}
private void ContentPage_Appearing(object sender, EventArgs e)
{
listeFavs.ItemsSource = manager.GetFavoris();
manager.SelectedItem = null;
listeFavs.SelectedItem = null;
}
private void Button_Clicked(object sender, EventArgs e)
{
listeFavs.ItemsSource = manager.GetFavoris();
}
private void PickerFiltre_SelectedIndexChanged(object sender, EventArgs e)
@ -93,8 +91,4 @@ public partial class PageFavoris : ContentPage
}
private void ContentPage_Appearing_1(object sender, EventArgs e)
{
}
}

@ -13,8 +13,13 @@ public partial class PageIle : ContentPage
{
InitializeComponent();
BindingContext = manager;
void OnTextChanged(object sender, EventArgs e)
{
SearchBar searchBar = (SearchBar)sender;
listeIle.ItemsSource = manager.RechercheObjetOhara(searchBar.Text, new List<ObjetOhara>(manager.Iles.ToList()));
}
searchBar.TextChanged += OnTextChanged;
}
async void listeIle_SelectionChanged(object sender, SelectionChangedEventArgs e)
{

@ -48,12 +48,8 @@
<Label Text="{Binding NomRomanise}" TextColor="#72a3b3"/>
</StackLayout>
</Frame>
<Frame Style="{StaticResource frameInfo}">
<StackLayout HorizontalOptions="Center" Orientation="Horizontal" Spacing="5">
<Label Text="Affiliation(s) :" TextColor="#72a3b3" FontAttributes="Bold"/>
<Label Text="{Binding Affiliation}" TextColor="#72a3b3"/>
</StackLayout>
</Frame>
<Button Text="{Binding Affiliation.Nom, StringFormat='Affiliation : {0}'}" Style="{StaticResource buttonFavsInfo}" Clicked="ButtonAffiliation_Clicked" ToolTipProperties.Text="Clickez pour en savoir plus..."/>
<Frame Style="{StaticResource frameInfo}">
<StackLayout HorizontalOptions="Center" Orientation="Horizontal" Spacing="5">
<Label Text="Première apparition manga :" TextColor="#72a3b3" FontAttributes="Bold"/>
@ -74,7 +70,6 @@
<Label Text="Caracteristiques :" TextColor="#72a3b3" FontSize="20" FontAttributes="Bold"/>
<Line X1="0" Y1="0" X2="3000" Y2="0" StrokeThickness="2" Stroke="#72a3b3" />
<Label Text="{Binding Caracteristique}" TextColor="#72a3b3" />
</VerticalStackLayout>
</ScrollView>

@ -38,4 +38,12 @@ public partial class PageInfoBateau : ContentPage
bouttonFav.Text = "Ajouter au favoris";
retirerFav.IsVisible = false;
}
private async void ButtonAffiliation_Clicked(object sender, EventArgs e)
{
Bateau bateau = (Bateau)manager.SelectedItem;
manager.SelectedItem = bateau.Affiliation;
await Navigation.PushAsync(new PageInfoEquipage());
}
}

@ -55,7 +55,7 @@ public partial class PageInfoEquipage : ContentPage
private void ContentPage_Appearing(object sender, EventArgs e)
{
manager.SelectedItem=null;
listAlle.SelectedItem=null;
listMembre.SelectedItem=null;
}

@ -55,7 +55,7 @@ public partial class PageInfoPersonnage : ContentPage
private void ContentPage_Appearing(object sender, EventArgs e)
{
manager.SelectedItem = null;
listEquip.SelectedItem = null;
listFruit.SelectedItem = null;
}

@ -13,9 +13,14 @@ public partial class PagePersonnage : ContentPage
{
InitializeComponent();
BindingContext = manager;
void OnTextChanged(object sender, EventArgs e)
{
SearchBar searchBar = (SearchBar)sender;
listePerso.ItemsSource = manager.RechercheObjetOhara(searchBar.Text, new List<ObjetOhara>(manager.Personnages.ToList()));
}
searchBar.TextChanged += OnTextChanged;
}
void listePerso_SelectionChanged(object sender, SelectionChangedEventArgs e)
{

Loading…
Cancel
Save