From 77e2eff0920b37d128727574f384c98b9592206c Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Sun, 8 Jul 2018 23:36:40 +0200 Subject: [PATCH] =?UTF-8?q?D=C3=A9but=20refonte=20navigation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AideDeJeu/AideDeJeu/App.xaml.cs | 8 ++- AideDeJeu/AideDeJeu/Models/HomeItem.cs | 23 +++++++ .../AideDeJeu/ViewModels/MainViewModel.cs | 27 +++++--- AideDeJeu/AideDeJeu/ViewModels/Navigator.cs | 9 +++ AideDeJeu/AideDeJeu/Views/MainPage.xaml | 67 ++++++++++--------- AideDeJeu/AideDeJeu/Views/MainPage.xaml.cs | 7 ++ 6 files changed, 96 insertions(+), 45 deletions(-) create mode 100644 AideDeJeu/AideDeJeu/Models/HomeItem.cs diff --git a/AideDeJeu/AideDeJeu/App.xaml.cs b/AideDeJeu/AideDeJeu/App.xaml.cs index 469e0c1a..9709cfee 100644 --- a/AideDeJeu/AideDeJeu/App.xaml.cs +++ b/AideDeJeu/AideDeJeu/App.xaml.cs @@ -1,6 +1,7 @@ using System; using AideDeJeu.ViewModels; using AideDeJeu.Views; +using AideDeJeuLib.Models; using Xamarin.Forms; using Xamarin.Forms.Xaml; @@ -16,9 +17,10 @@ namespace AideDeJeu DependencyService.Register(); var vm = DependencyService.Get(); - var mainPage = new MainPage(); - vm.Navigator = new Navigator(mainPage.Detail.Navigation); - MainPage = mainPage; + var mainPage = new ItemDetailPage(new ItemDetailViewModel(new HomeItem()));// new MainPage(); + var navigationPage = new NavigationPage(mainPage); + vm.Navigator = new Navigator(navigationPage.Navigation); //mainPage.Detail.Navigation); + MainPage = navigationPage; } protected override void OnStart () diff --git a/AideDeJeu/AideDeJeu/Models/HomeItem.cs b/AideDeJeu/AideDeJeu/Models/HomeItem.cs new file mode 100644 index 00000000..cf7e0722 --- /dev/null +++ b/AideDeJeu/AideDeJeu/Models/HomeItem.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace AideDeJeuLib.Models +{ + public class HomeItem : Item + { + public override string Markdown + { + get + { + return + "# [Sorts](spells_hd.md)\n\n" + + "# [Créatures](monsters_hd.md)\n\n" + + "# [Etats spéciaux](conditions_hd.md)\n\n" + + "# [Spells](spells_vo.md)\n\n" + + "# [Monsters](monsters_vo.md)\n\n" + + "# [Conditions](conditions_vo.md)\n\n"; + } + } + } +} diff --git a/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs index eeec45aa..fdf0a8de 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs @@ -195,17 +195,24 @@ namespace AideDeJeu.ViewModels public async Task NavigateToLink(string s) { if (s != null) - { - var regex = new Regex("/(?.*)\\.md#(?.*)"); - var match = regex.Match(s); - var file = match.Groups["file"].Value; - var anchor = match.Groups["anchor"].Value; - var itemSourceType = MDFileToItemSourceType(file); - var spells = await GetItemsViewModel(itemSourceType).GetAllItemsAsync(); - var spell = spells.Where(i => Tools.Helpers.IdFromName(i.Name) == anchor).FirstOrDefault(); - if (spell != null) + { + if (s.Contains("#")) { - await Navigator.GotoItemDetailPageAsync(spell); + var regex = new Regex("/(?.*)\\.md#(?.*)"); + var match = regex.Match(s); + var file = match.Groups["file"].Value; + var anchor = match.Groups["anchor"].Value; + var itemSourceType = MDFileToItemSourceType(file); + var spells = await GetItemsViewModel(itemSourceType).GetAllItemsAsync(); + var spell = spells.Where(i => Tools.Helpers.IdFromName(i.Name) == anchor).FirstOrDefault(); + if (spell != null) + { + await Navigator.GotoItemDetailPageAsync(spell); + } + } + else + { + await Navigator.GotoItemsPageAsync(null); } } } diff --git a/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs b/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs index ab52af6f..fd0c3be6 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs @@ -40,6 +40,15 @@ namespace AideDeJeu.ViewModels await Navigation.PushAsync(new ItemDetailPage(vm)); } + public async Task GotoItemsPageAsync(Item item) + { + //if (item == null) + // return; + + //var vm = new ItemDetailViewModel(item); + //vm.LoadItemCommand.Execute(null); + await Navigation.PushAsync(new MainPage()); + } } } diff --git a/AideDeJeu/AideDeJeu/Views/MainPage.xaml b/AideDeJeu/AideDeJeu/Views/MainPage.xaml index 9b03d3c9..a0f64bcb 100644 --- a/AideDeJeu/AideDeJeu/Views/MainPage.xaml +++ b/AideDeJeu/AideDeJeu/Views/MainPage.xaml @@ -1,5 +1,13 @@ - + @@ -31,37 +39,32 @@ - - - - - + + + + +