From 1c35626e4547e193614ffbf0c10f446349acba0b Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Sat, 5 May 2018 22:23:42 +0200 Subject: [PATCH] Nettoyage / renommage --- AideDeJeu/AideDeJeu/AideDeJeu.csproj | 14 +- AideDeJeu/AideDeJeu/App.xaml.cs | 3 +- .../AideDeJeu/ViewModels/ItemsViewModel.cs | 20 +++ .../AideDeJeu/ViewModels/MainViewModel.cs | 50 ++---- .../AideDeJeu/ViewModels/MonstersViewModel.cs | 30 ++-- .../AideDeJeu/ViewModels/SpellsViewModel.cs | 41 +---- AideDeJeu/AideDeJeu/Views/ItemsPage.xaml | 170 ------------------ AideDeJeu/AideDeJeu/Views/ItemsPage.xaml.cs | 64 ------- AideDeJeu/AideDeJeu/Views/MainPage.xaml | 155 +++++++++++++++- AideDeJeu/AideDeJeu/Views/MainPage.xaml.cs | 50 +++++- AideDeJeu/AideDeJeu/Views/MonstersPage.xaml | 124 ------------- .../AideDeJeu/Views/MonstersPage.xaml.cs | 49 ----- AideDeJeu/AideDeJeu/Views/SpellsPage.xaml | 132 -------------- AideDeJeu/AideDeJeu/Views/SpellsPage.xaml.cs | 49 ----- 14 files changed, 251 insertions(+), 700 deletions(-) create mode 100644 AideDeJeu/AideDeJeu/ViewModels/ItemsViewModel.cs delete mode 100644 AideDeJeu/AideDeJeu/Views/ItemsPage.xaml delete mode 100644 AideDeJeu/AideDeJeu/Views/ItemsPage.xaml.cs delete mode 100644 AideDeJeu/AideDeJeu/Views/MonstersPage.xaml delete mode 100644 AideDeJeu/AideDeJeu/Views/MonstersPage.xaml.cs delete mode 100644 AideDeJeu/AideDeJeu/Views/SpellsPage.xaml delete mode 100644 AideDeJeu/AideDeJeu/Views/SpellsPage.xaml.cs diff --git a/AideDeJeu/AideDeJeu/AideDeJeu.csproj b/AideDeJeu/AideDeJeu/AideDeJeu.csproj index c12df7c8..48e53de6 100644 --- a/AideDeJeu/AideDeJeu/AideDeJeu.csproj +++ b/AideDeJeu/AideDeJeu/AideDeJeu.csproj @@ -21,24 +21,14 @@ Code - - MainPage.xaml - - - MonstersPage.xaml - MonsterDetailPage.xaml SpellDetailPage.xaml - - ItemsPage.xaml - - - Code - SpellsPage.xaml + + MainPage.xaml diff --git a/AideDeJeu/AideDeJeu/App.xaml.cs b/AideDeJeu/AideDeJeu/App.xaml.cs index 9c54e826..01a55a87 100644 --- a/AideDeJeu/AideDeJeu/App.xaml.cs +++ b/AideDeJeu/AideDeJeu/App.xaml.cs @@ -12,8 +12,7 @@ namespace AideDeJeu { InitializeComponent(); - //MainPage = new ItemsPage(); - MainPage = new NavigationPage(new ItemsPage()); + MainPage = new NavigationPage(new MainPage()); } protected override void OnStart () diff --git a/AideDeJeu/AideDeJeu/ViewModels/ItemsViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/ItemsViewModel.cs new file mode 100644 index 00000000..ea7e6b19 --- /dev/null +++ b/AideDeJeu/AideDeJeu/ViewModels/ItemsViewModel.cs @@ -0,0 +1,20 @@ +using AideDeJeuLib; +using System.Collections.ObjectModel; +using System.Threading.Tasks; +using System.Windows.Input; +using Xamarin.Forms; + +namespace AideDeJeu.ViewModels +{ + public abstract class ItemsViewModel : BaseViewModel + { + public ItemsViewModel(ObservableCollection items) + { + Items = items; + LoadItemsCommand = new Command(async () => await ExecuteLoadItemsCommandAsync()); + } + public ObservableCollection Items { get; protected set; } + public ICommand LoadItemsCommand { get; protected set; } + public abstract Task ExecuteLoadItemsCommandAsync(); + } +} diff --git a/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs index 2289848d..45172f30 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs @@ -1,14 +1,7 @@ -using System; +using AideDeJeuLib; using System.Collections.ObjectModel; -using System.Diagnostics; -using System.Threading.Tasks; - using Xamarin.Forms; -using AideDeJeuLib.Spells; -using System.Collections.Generic; -using AideDeJeuLib; - namespace AideDeJeu.ViewModels { public class MainViewModel : BaseViewModel @@ -18,8 +11,8 @@ namespace AideDeJeu.ViewModels Spell, Monster, } - public SpellsViewModel Spells { get; set; } = new SpellsViewModel(); - public MonstersViewModel Monsters { get; set; } = new MonstersViewModel(); + public SpellsViewModel Spells { get; private set; } + public MonstersViewModel Monsters { get; private set; } private ItemType _ItemsType = ItemType.Spell; public ItemType ItemsType @@ -31,53 +24,42 @@ namespace AideDeJeu.ViewModels set { SetProperty(ref _ItemsType, value); - OnPropertyChanged(nameof(Items)); + OnPropertyChanged(nameof(CurrentViewModel)); LoadItemsCommand.Execute(null); } } - public ObservableCollection Items + public ItemsViewModel CurrentViewModel { get { - if(ItemsType == ItemType.Spell) + if (ItemsType == ItemType.Spell) { - return Spells.Items; + return Spells; } if (ItemsType == ItemType.Monster) { - return Monsters.Items; + return Monsters; } return null; } } + public ObservableCollection Items { get; private set; } = new ObservableCollection(); - public Command LoadItemsCommand { get; set; } + public Command LoadItemsCommand { get; private set; } - public Command SwitchToSpells { get; set; } - public Command SwitchToMonsters { get; set; } - public Command AboutCommand { get; set; } + public Command SwitchToSpells { get; private set; } + public Command SwitchToMonsters { get; private set; } + public Command AboutCommand { get; private set; } public MainViewModel(INavigation navigation) { - //Title = "Browse"; - //Items = new ObservableCollection(); - LoadItemsCommand = new Command(async () => await ExecuteLoadItemsCommand()); + Spells = new SpellsViewModel(Items); + Monsters = new MonstersViewModel(Items); + LoadItemsCommand = new Command(async () => await CurrentViewModel.ExecuteLoadItemsCommandAsync()); SwitchToSpells = new Command(() => ItemsType = ItemType.Spell); SwitchToMonsters = new Command(() => ItemsType = ItemType.Monster); AboutCommand = new Command(async() => await navigation.PushAsync(new Views.AboutPage())); } - - async Task ExecuteLoadItemsCommand() - { - if(ItemsType == ItemType.Spell) - { - await Spells.ExecuteLoadItemsCommand(); - } - else if (ItemsType == ItemType.Monster) - { - await Monsters.ExecuteLoadItemsCommand(); - } - } } } \ No newline at end of file diff --git a/AideDeJeu/AideDeJeu/ViewModels/MonstersViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/MonstersViewModel.cs index 27643f8e..2af7a522 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/MonstersViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/MonstersViewModel.cs @@ -1,20 +1,15 @@ -using System; +using AideDeJeuLib; +using AideDeJeuLib.Monsters; +using System; +using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Threading.Tasks; -using Xamarin.Forms; - -using System.Collections.Generic; -using AideDeJeuLib.Monsters; -using AideDeJeuLib; - namespace AideDeJeu.ViewModels { - public class MonstersViewModel : BaseViewModel + public class MonstersViewModel : ItemsViewModel { - public ObservableCollection Items { get; set; } - public List> Categories { get; set; } = new List>() { new KeyValuePair("", "Toutes" ), @@ -186,15 +181,12 @@ namespace AideDeJeu.ViewModels } - public Command LoadItemsCommand { get; set; } - - public MonstersViewModel() + public MonstersViewModel(ObservableCollection items) + : base(items) { - Items = new ObservableCollection(); - LoadItemsCommand = new Command(async () => await ExecuteLoadItemsCommand()); } - public async Task ExecuteLoadItemsCommand() + public override async Task ExecuteLoadItemsCommandAsync() { if (IsBusy) return; @@ -204,10 +196,10 @@ namespace AideDeJeu.ViewModels try { Items.Clear(); - var items = await new MonstersScrappers().GetMonsters(category: Categories[Category].Key, type: Types[Type].Key, minPower: Powers[MinPower].Key, maxPower: Powers[MaxPower].Key, size: Sizes[Size].Key, legendary:Legendaries[Legendary].Key, source: Sources[Source].Key); - foreach (var item in items) + var monsters = await new MonstersScrappers().GetMonsters(category: Categories[Category].Key, type: Types[Type].Key, minPower: Powers[MinPower].Key, maxPower: Powers[MaxPower].Key, size: Sizes[Size].Key, legendary:Legendaries[Legendary].Key, source: Sources[Source].Key); + foreach (var monster in monsters) { - Items.Add(item); + Items.Add(monster); } } catch (Exception ex) diff --git a/AideDeJeu/AideDeJeu/ViewModels/SpellsViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/SpellsViewModel.cs index dc8300f2..963065a6 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/SpellsViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/SpellsViewModel.cs @@ -1,20 +1,15 @@ -using System; +using AideDeJeuLib; +using AideDeJeuLib.Spells; +using System; +using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Threading.Tasks; -using Xamarin.Forms; - -using AideDeJeuLib.Spells; -using System.Collections.Generic; -using AideDeJeuLib; - namespace AideDeJeu.ViewModels { - public class SpellsViewModel : BaseViewModel + public class SpellsViewModel : ItemsViewModel { - public ObservableCollection Items { get; set; } - public List> Classes { get; set; } = new List>() { new KeyValuePair("", "Toutes" ), @@ -157,23 +152,12 @@ namespace AideDeJeu.ViewModels } - public Command LoadItemsCommand { get; set; } - - public SpellsViewModel() + public SpellsViewModel(ObservableCollection items) + : base(items) { - //Title = "Browse"; - Items = new ObservableCollection(); - LoadItemsCommand = new Command(async () => await ExecuteLoadItemsCommand()); - - //MessagingCenter.Subscribe(this, "AddItem", async (obj, item) => - //{ - // var _item = item as Item; - // Items.Add(_item); - // await DataStore.AddItemAsync(_item); - //}); } - public async Task ExecuteLoadItemsCommand() + public override async Task ExecuteLoadItemsCommandAsync() { if (IsBusy) return; @@ -182,15 +166,6 @@ namespace AideDeJeu.ViewModels try { - // - // - // - // - // - // - // - // - Items.Clear(); var items = await SpellsScrappers.GetSpells(classe: Classes[Classe].Key, niveauMin: NiveauMin, niveauMax: NiveauMax, ecole: Ecoles[Ecole].Key, rituel: Rituels[Rituel].Key, source: Sources[Source].Key); foreach (var item in items) diff --git a/AideDeJeu/AideDeJeu/Views/ItemsPage.xaml b/AideDeJeu/AideDeJeu/Views/ItemsPage.xaml deleted file mode 100644 index 955cf39f..00000000 --- a/AideDeJeu/AideDeJeu/Views/ItemsPage.xaml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/AideDeJeu/AideDeJeu/Views/ItemsPage.xaml.cs b/AideDeJeu/AideDeJeu/Views/ItemsPage.xaml.cs deleted file mode 100644 index 2cb186d9..00000000 --- a/AideDeJeu/AideDeJeu/Views/ItemsPage.xaml.cs +++ /dev/null @@ -1,64 +0,0 @@ -using AideDeJeu.ViewModels; -using AideDeJeuLib.Monsters; -using AideDeJeuLib.Spells; -using System; - -using Xamarin.Forms; -using Xamarin.Forms.Xaml; - -namespace AideDeJeu.Views -{ - [XamlCompilation(XamlCompilationOptions.Compile)] - public partial class ItemsPage : MasterDetailPage //TabbedPage - { - MainViewModel viewModel; - - public ItemsPage () - { - InitializeComponent (); - BindingContext = viewModel = new MainViewModel(Navigation); - } - - protected override bool OnBackButtonPressed() - { - IsPresented = !IsPresented; - return true; - } - - - async void OnItemSelected(object sender, SelectedItemChangedEventArgs args) - { - if (args.SelectedItem is Spell) - { - var item = args.SelectedItem as Spell; - if (item == null) - return; - - var vm = new SpellDetailViewModel(item); - vm.LoadItemCommand.Execute(null); - await Navigation.PushAsync(new SpellDetailPage(vm)); - } - else if (args.SelectedItem is Monster) - { - var item = args.SelectedItem as Monster; - if (item == null) - return; - - var vm = new MonsterDetailViewModel(item); - vm.LoadItemCommand.Execute(null); - await Navigation.PushAsync(new MonsterDetailPage(vm)); - } - - // Manually deselect item. - ItemsListView.SelectedItem = null; - } - - protected override void OnAppearing() - { - base.OnAppearing(); - - if (viewModel.Items.Count == 0) - viewModel.LoadItemsCommand.Execute(null); - } - } -} \ No newline at end of file diff --git a/AideDeJeu/AideDeJeu/Views/MainPage.xaml b/AideDeJeu/AideDeJeu/Views/MainPage.xaml index 0adc116d..a27c144d 100644 --- a/AideDeJeu/AideDeJeu/Views/MainPage.xaml +++ b/AideDeJeu/AideDeJeu/Views/MainPage.xaml @@ -2,22 +2,169 @@ + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + -