mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-30 23:16:09 +00:00 
			
		
		
		
	Design
This commit is contained in:
		
							parent
							
								
									bbf8acc06d
								
							
						
					
					
						commit
						87438c69c4
					
				
					 13 changed files with 294 additions and 21 deletions
				
			
		|  | @ -20,6 +20,9 @@ | ||||||
|     <Compile Update="Views\AboutPage.xaml.cs"> |     <Compile Update="Views\AboutPage.xaml.cs"> | ||||||
|       <SubType>Code</SubType> |       <SubType>Code</SubType> | ||||||
|     </Compile> |     </Compile> | ||||||
|  |     <Compile Update="Views\SpellDetailPage.xaml.cs"> | ||||||
|  |       <DependentUpon>SpellDetailPage.xaml</DependentUpon> | ||||||
|  |     </Compile> | ||||||
|     <Compile Update="Views\ItemDetailPage.xaml.cs"> |     <Compile Update="Views\ItemDetailPage.xaml.cs"> | ||||||
|       <SubType>Code</SubType> |       <SubType>Code</SubType> | ||||||
|     </Compile> |     </Compile> | ||||||
|  |  | ||||||
|  | @ -23,6 +23,8 @@ | ||||||
|             <Color x:Key="titlered">#58180D</Color>	<!--% titles--> |             <Color x:Key="titlered">#58180D</Color>	<!--% titles--> | ||||||
|             <Color x:Key="titlegold">#C9AD6A</Color> <!--% titlerules--> |             <Color x:Key="titlegold">#C9AD6A</Color> <!--% titlerules--> | ||||||
|             <Color x:Key="rulered">#9C2B1B</Color>		<!--% triangular rule in statsblock--> |             <Color x:Key="rulered">#9C2B1B</Color>		<!--% triangular rule in statsblock--> | ||||||
|  |             <Color x:Key="contentblack">#000000</Color> <!--% ajout --> | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|             <!--% Trim (affects tables and paperboxes)--> |             <!--% Trim (affects tables and paperboxes)--> | ||||||
|             <Color x:Key="PhbLightGreen">#E0E5C1</Color> <!--% PHB Part 1--> |             <Color x:Key="PhbLightGreen">#E0E5C1</Color> <!--% PHB Part 1--> | ||||||
|  | @ -68,11 +70,17 @@ | ||||||
|             <Style TargetType="ContentPage"> |             <Style TargetType="ContentPage"> | ||||||
|                 <Setter Property="BackgroundColor" Value="{StaticResource bgtan}" /> |                 <Setter Property="BackgroundColor" Value="{StaticResource bgtan}" /> | ||||||
|             </Style> |             </Style> | ||||||
|  |             <Style TargetType="StackLayout"> | ||||||
|  |                 <Setter Property="BackgroundColor" Value="{StaticResource bgtan}" /> | ||||||
|  |             </Style> | ||||||
|  |             <Style TargetType="ScrollView"> | ||||||
|  |                 <Setter Property="BackgroundColor" Value="{StaticResource bgtan}" /> | ||||||
|  |             </Style> | ||||||
| 
 | 
 | ||||||
|             <OnPlatform x:Key="LinuxLibertineCapitals" x:TypeArguments="x:String"> |             <OnPlatform x:Key="LinuxLibertineCapitals" x:TypeArguments="x:String"> | ||||||
|                 <On Platform="iOS" Value="Linux Libertine Capitals" /> |                 <On Platform="iOS" Value="Linux Libertine Capitals" /> | ||||||
|                 <On Platform="Android" Value="LinLibertine_aS.ttf#Linux Libertine Capitals" /> |                 <On Platform="Android" Value="LinLibertine_aS.ttf#Linux Libertine Capitals" /> | ||||||
|                 <On Platform="UWP, WinRT, WinPhone" Value="Assets/Fonts/LinLibertine_aS.ttf#Linux Libertine Capitals" /> |                 <On Platform="UWP, WinRT, WinPhone" Value="Assets/Fonts/LinLibertine_R.ttf#Linux Libertine" /> | ||||||
|             </OnPlatform> |             </OnPlatform> | ||||||
| 
 | 
 | ||||||
|             <OnPlatform x:Key="LinuxLibertine" x:TypeArguments="x:String"> |             <OnPlatform x:Key="LinuxLibertine" x:TypeArguments="x:String"> | ||||||
|  | @ -81,6 +89,18 @@ | ||||||
|                 <On Platform="UWP, WinRT, WinPhone" Value="Assets/Fonts/LinLibertine_R.ttf#Linux Libertine" /> |                 <On Platform="UWP, WinRT, WinPhone" Value="Assets/Fonts/LinLibertine_R.ttf#Linux Libertine" /> | ||||||
|             </OnPlatform> |             </OnPlatform> | ||||||
| 
 | 
 | ||||||
|  |             <OnPlatform x:Key="LinuxLibertineBold" x:TypeArguments="x:String"> | ||||||
|  |                 <On Platform="iOS" Value="Linux Libertine" /> | ||||||
|  |                 <On Platform="Android" Value="LinLibertine_RB.ttf#Linux Libertine" /> | ||||||
|  |                 <On Platform="UWP, WinRT, WinPhone" Value="Assets/Fonts/LinLibertine_RB.ttf#Linux Libertine" /> | ||||||
|  |             </OnPlatform> | ||||||
|  | 
 | ||||||
|  |             <OnPlatform x:Key="LinuxLibertineItal" x:TypeArguments="x:String"> | ||||||
|  |                 <On Platform="iOS" Value="Linux Libertine" /> | ||||||
|  |                 <On Platform="Android" Value="LinLibertine_RI.ttf#Linux Libertine" /> | ||||||
|  |                 <On Platform="UWP, WinRT, WinPhone" Value="Assets/Fonts/LinLibertine_RI.ttf#Linux Libertine" /> | ||||||
|  |             </OnPlatform> | ||||||
|  | 
 | ||||||
|             <Style TargetType="Label"> |             <Style TargetType="Label"> | ||||||
|                 <Setter Property="FontFamily" Value="{DynamicResource LinuxLibertine}" /> |                 <Setter Property="FontFamily" Value="{DynamicResource LinuxLibertine}" /> | ||||||
|             </Style> |             </Style> | ||||||
|  | @ -88,23 +108,43 @@ | ||||||
|             <Style TargetType="Label"  x:Key="section"> |             <Style TargetType="Label"  x:Key="section"> | ||||||
|                 <Setter Property="FontSize" Value="Large" /> |                 <Setter Property="FontSize" Value="Large" /> | ||||||
|                 <Setter Property="TextColor" Value="{StaticResource titlered}" /> |                 <Setter Property="TextColor" Value="{StaticResource titlered}" /> | ||||||
|  |                 <Setter Property="FontFamily" Value="{DynamicResource LinuxLibertineCapitals}" /> | ||||||
|             </Style> |             </Style> | ||||||
| 
 | 
 | ||||||
|             <Style TargetType="Label" x:Key="subsection"> |             <Style TargetType="Label" x:Key="subsection"> | ||||||
|                 <Setter Property="FontSize" Value="Medium" /> |                 <Setter Property="FontSize" Value="Large" /> | ||||||
|                 <Setter Property="TextColor" Value="{StaticResource titlered}" /> |  | ||||||
|             </Style> |  | ||||||
| 
 |  | ||||||
|             <Style TargetType="Label" x:Key="subsubsection"> |  | ||||||
|                 <Setter Property="FontSize" Value="Small" /> |  | ||||||
|                 <Setter Property="TextColor" Value="{StaticResource titlered}" /> |                 <Setter Property="TextColor" Value="{StaticResource titlered}" /> | ||||||
|                 <Setter Property="FontFamily" Value="{DynamicResource LinuxLibertineCapitals}" /> |                 <Setter Property="FontFamily" Value="{DynamicResource LinuxLibertineCapitals}" /> | ||||||
|             </Style> |             </Style> | ||||||
| 
 | 
 | ||||||
|  |             <Style TargetType="Label" x:Key="subsubsection"> | ||||||
|  |                 <Setter Property="FontSize" Value="Large" /> | ||||||
|  |                 <Setter Property="TextColor" Value="{StaticResource titlered}" /> | ||||||
|  |                 <Setter Property="FontFamily" Value="{DynamicResource LinuxLibertineCapitals}" /> | ||||||
|  |             </Style> | ||||||
|  | 
 | ||||||
|  |             <Style TargetType="Label" x:Key="content"> | ||||||
|  |                 <Setter Property="FontSize" Value="Medium" /> | ||||||
|  |                 <Setter Property="TextColor" Value="{StaticResource contentblack}" /> | ||||||
|  |                 <Setter Property="FontFamily" Value="{DynamicResource LinuxLibertine}" /> | ||||||
|  |             </Style> | ||||||
|  | 
 | ||||||
|  |             <Style TargetType="Label" x:Key="contentbold"> | ||||||
|  |                 <Setter Property="FontSize" Value="Medium" /> | ||||||
|  |                 <Setter Property="TextColor" Value="{StaticResource contentblack}" /> | ||||||
|  |                 <Setter Property="FontFamily" Value="{DynamicResource LinuxLibertineBold}" /> | ||||||
|  |             </Style> | ||||||
|  | 
 | ||||||
|  |             <Style TargetType="Label" x:Key="contentital"> | ||||||
|  |                 <Setter Property="FontSize" Value="Medium" /> | ||||||
|  |                 <Setter Property="TextColor" Value="{StaticResource contentblack}" /> | ||||||
|  |                 <Setter Property="FontFamily" Value="{DynamicResource LinuxLibertineItal}" /> | ||||||
|  |             </Style> | ||||||
| 
 | 
 | ||||||
|             <Style TargetType="NavigationPage"> |             <Style TargetType="NavigationPage"> | ||||||
|                 <Setter Property="BarBackgroundColor" Value="{StaticResource Primary}" /> |                 <Setter Property="BarBackgroundColor" Value="{StaticResource titlered}" /> | ||||||
|                 <Setter Property="BarTextColor" Value="White" /> |                 <Setter Property="BarTextColor" Value="{StaticResource bgtan}" /> | ||||||
|  |                 <Setter Property="BackgroundColor" Value="{StaticResource bgtan}" /> | ||||||
|             </Style> |             </Style> | ||||||
|         </ResourceDictionary> |         </ResourceDictionary> | ||||||
|     </Application.Resources> |     </Application.Resources> | ||||||
|  |  | ||||||
|  | @ -65,7 +65,7 @@ namespace AideDeJeu.Services | ||||||
|         { |         { | ||||||
|             var scrapper = new Scrappers(); |             var scrapper = new Scrappers(); | ||||||
|             var spells = await scrapper.GetSpells(await scrapper.GetSpellIds("c")); |             var spells = await scrapper.GetSpells(await scrapper.GetSpellIds("c")); | ||||||
|             items = spells.Select(spell => new Item() { Text = spell.Title, Description = spell.DescriptionText }).ToList(); |             items = spells.Select(spell => new Item() { Text = spell.Title, Description = spell.Description }).ToList(); | ||||||
|             return await Task.FromResult(items); |             return await Task.FromResult(items); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
							
								
								
									
										67
									
								
								AideDeJeu/AideDeJeu/Services/SpellDataStore.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								AideDeJeu/AideDeJeu/Services/SpellDataStore.cs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,67 @@ | ||||||
|  | using System; | ||||||
|  | using System.Collections.Generic; | ||||||
|  | using System.Linq; | ||||||
|  | using System.Threading.Tasks; | ||||||
|  | 
 | ||||||
|  | using AideDeJeu.Models; | ||||||
|  | using AideDeJeuLib; | ||||||
|  | 
 | ||||||
|  | [assembly: Xamarin.Forms.Dependency(typeof(AideDeJeu.Services.SpellDataStore))] | ||||||
|  | namespace AideDeJeu.Services | ||||||
|  | { | ||||||
|  |     public class SpellDataStore : IDataStore<Spell> | ||||||
|  |     { | ||||||
|  |         List<Spell> items; | ||||||
|  | 
 | ||||||
|  |         public SpellDataStore() | ||||||
|  |         { | ||||||
|  |             items = new List<Spell>(); | ||||||
|  |             var mockItems = new List<Spell> | ||||||
|  |             { | ||||||
|  |             }; | ||||||
|  | 
 | ||||||
|  |             foreach (var item in mockItems) | ||||||
|  |             { | ||||||
|  |                 items.Add(item); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public async Task<bool> AddItemAsync(Spell item) | ||||||
|  |         { | ||||||
|  |             items.Add(item); | ||||||
|  | 
 | ||||||
|  |             return await Task.FromResult(true); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public async Task<bool> UpdateItemAsync(Spell item) | ||||||
|  |         { | ||||||
|  |             var _item = items.Where((Spell arg) => arg.Id == item.Id).FirstOrDefault(); | ||||||
|  |             items.Remove(_item); | ||||||
|  |             items.Add(item); | ||||||
|  | 
 | ||||||
|  |             return await Task.FromResult(true); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public async Task<bool> DeleteItemAsync(Spell item) | ||||||
|  |         { | ||||||
|  |             var _item = items.Where((Spell arg) => arg.Id == item.Id).FirstOrDefault(); | ||||||
|  |             items.Remove(_item); | ||||||
|  | 
 | ||||||
|  |             return await Task.FromResult(true); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public async Task<Spell> GetItemAsync(string id) | ||||||
|  |         { | ||||||
|  |             return await Task.FromResult(items.FirstOrDefault(s => s.Id == id)); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public async Task<IEnumerable<Spell>> GetItemsAsync(bool forceRefresh = false) | ||||||
|  |         { | ||||||
|  |             var scrapper = new Scrappers(); | ||||||
|  |             items = (await scrapper.GetSpells(await scrapper.GetSpellIds(""))).ToList(); | ||||||
|  | 
 | ||||||
|  |             //items = spells.Select(spell => new Item() { Text = spell.Title, Description = spell.DescriptionText }).ToList(); | ||||||
|  |             return await Task.FromResult(items); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -7,12 +7,14 @@ using Xamarin.Forms; | ||||||
| 
 | 
 | ||||||
| using AideDeJeu.Models; | using AideDeJeu.Models; | ||||||
| using AideDeJeu.Services; | using AideDeJeu.Services; | ||||||
|  | using AideDeJeuLib; | ||||||
| 
 | 
 | ||||||
| namespace AideDeJeu.ViewModels | namespace AideDeJeu.ViewModels | ||||||
| { | { | ||||||
|     public class BaseViewModel : INotifyPropertyChanged |     public class BaseViewModel : INotifyPropertyChanged | ||||||
|     { |     { | ||||||
|         public IDataStore<Item> DataStore => DependencyService.Get<IDataStore<Item>>() ?? new MockDataStore(); |         public IDataStore<Item> DataStore => DependencyService.Get<IDataStore<Item>>() ?? new MockDataStore(); | ||||||
|  |         public IDataStore<Spell> SpellDataStore => DependencyService.Get<IDataStore<Spell>>() ?? new SpellDataStore(); | ||||||
| 
 | 
 | ||||||
|         bool isBusy = false; |         bool isBusy = false; | ||||||
|         public bool IsBusy |         public bool IsBusy | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								AideDeJeu/AideDeJeu/ViewModels/SpellDetailViewModel.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								AideDeJeu/AideDeJeu/ViewModels/SpellDetailViewModel.cs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,17 @@ | ||||||
|  | using System; | ||||||
|  | 
 | ||||||
|  | using AideDeJeu.Models; | ||||||
|  | using AideDeJeuLib; | ||||||
|  | 
 | ||||||
|  | namespace AideDeJeu.ViewModels | ||||||
|  | { | ||||||
|  |     public class SpellDetailViewModel : BaseViewModel | ||||||
|  |     { | ||||||
|  |         public Spell Item { get; set; } | ||||||
|  |         public SpellDetailViewModel(Spell item = null) | ||||||
|  |         { | ||||||
|  |             Title = item?.Title; | ||||||
|  |             Item = item; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										59
									
								
								AideDeJeu/AideDeJeu/ViewModels/SpellsViewModel.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								AideDeJeu/AideDeJeu/ViewModels/SpellsViewModel.cs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,59 @@ | ||||||
|  | using System; | ||||||
|  | using System.Collections.ObjectModel; | ||||||
|  | using System.Diagnostics; | ||||||
|  | using System.Threading.Tasks; | ||||||
|  | 
 | ||||||
|  | using Xamarin.Forms; | ||||||
|  | 
 | ||||||
|  | using AideDeJeu.Models; | ||||||
|  | using AideDeJeu.Views; | ||||||
|  | using AideDeJeuLib; | ||||||
|  | 
 | ||||||
|  | namespace AideDeJeu.ViewModels | ||||||
|  | { | ||||||
|  |     public class SpellsViewModel : BaseViewModel | ||||||
|  |     { | ||||||
|  |         public ObservableCollection<Spell> Items { get; set; } | ||||||
|  |         public Command LoadItemsCommand { get; set; } | ||||||
|  | 
 | ||||||
|  |         public SpellsViewModel() | ||||||
|  |         { | ||||||
|  |             Title = "Browse"; | ||||||
|  |             Items = new ObservableCollection<Spell>(); | ||||||
|  |             LoadItemsCommand = new Command(async () => await ExecuteLoadItemsCommand()); | ||||||
|  | 
 | ||||||
|  |             //MessagingCenter.Subscribe<NewItemPage, Spell>(this, "AddItem", async (obj, item) => | ||||||
|  |             //{ | ||||||
|  |             //    var _item = item as Item; | ||||||
|  |             //    Items.Add(_item); | ||||||
|  |             //    await DataStore.AddItemAsync(_item); | ||||||
|  |             //}); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         async Task ExecuteLoadItemsCommand() | ||||||
|  |         { | ||||||
|  |             if (IsBusy) | ||||||
|  |                 return; | ||||||
|  | 
 | ||||||
|  |             IsBusy = true; | ||||||
|  | 
 | ||||||
|  |             try | ||||||
|  |             { | ||||||
|  |                 Items.Clear(); | ||||||
|  |                 var items = await SpellDataStore.GetItemsAsync(true); | ||||||
|  |                 foreach (var item in items) | ||||||
|  |                 { | ||||||
|  |                     Items.Add(item); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             catch (Exception ex) | ||||||
|  |             { | ||||||
|  |                 Debug.WriteLine(ex); | ||||||
|  |             } | ||||||
|  |             finally | ||||||
|  |             { | ||||||
|  |                 IsBusy = false; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -104,9 +104,9 @@ | ||||||
|                         <DataTemplate> |                         <DataTemplate> | ||||||
|                             <ViewCell> |                             <ViewCell> | ||||||
|                                 <StackLayout Padding="10"> |                                 <StackLayout Padding="10"> | ||||||
|                                     <Label Text="{Binding Text}"  |                                     <Label Text="{Binding Title}"  | ||||||
|                        LineBreakMode="NoWrap"  |                        LineBreakMode="NoWrap"  | ||||||
|                        Style="{DynamicResource ListItemTextStyle}"  |                        Style="{DynamicResource subsubsection}"  | ||||||
|                        FontSize="16" /> |                        FontSize="16" /> | ||||||
|                                     <!--<Label Text="{Binding Description}"  |                                     <!--<Label Text="{Binding Description}"  | ||||||
|                        LineBreakMode="NoWrap" |                        LineBreakMode="NoWrap" | ||||||
|  |  | ||||||
|  | @ -1,5 +1,6 @@ | ||||||
| using AideDeJeu.Models; | using AideDeJeu.Models; | ||||||
| using AideDeJeu.ViewModels; | using AideDeJeu.ViewModels; | ||||||
|  | using AideDeJeuLib; | ||||||
| using System; | using System; | ||||||
| 
 | 
 | ||||||
| using Xamarin.Forms; | using Xamarin.Forms; | ||||||
|  | @ -10,22 +11,22 @@ namespace AideDeJeu.Views | ||||||
| 	[XamlCompilation(XamlCompilationOptions.Compile)] | 	[XamlCompilation(XamlCompilationOptions.Compile)] | ||||||
| 	public partial class MainPage : MasterDetailPage //TabbedPage | 	public partial class MainPage : MasterDetailPage //TabbedPage | ||||||
|     { |     { | ||||||
|         ItemsViewModel viewModel; |         SpellsViewModel viewModel; | ||||||
| 
 | 
 | ||||||
|         public MainPage () |         public MainPage () | ||||||
| 		{ | 		{ | ||||||
| 			InitializeComponent (); | 			InitializeComponent (); | ||||||
| 
 | 
 | ||||||
|             BindingContext = viewModel = new ItemsViewModel(); |             BindingContext = viewModel = new SpellsViewModel(); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         async void OnItemSelected(object sender, SelectedItemChangedEventArgs args) |         async void OnItemSelected(object sender, SelectedItemChangedEventArgs args) | ||||||
|         { |         { | ||||||
|             var item = args.SelectedItem as Item; |             var item = args.SelectedItem as Spell; | ||||||
|             if (item == null) |             if (item == null) | ||||||
|                 return; |                 return; | ||||||
| 
 | 
 | ||||||
|             await Navigation.PushAsync(new ItemDetailPage(new ItemDetailViewModel(item))); |             await Navigation.PushAsync(new SpellDetailPage(new SpellDetailViewModel(item))); | ||||||
| 
 | 
 | ||||||
|             // Manually deselect item. |             // Manually deselect item. | ||||||
|             ItemsListView.SelectedItem = null; |             ItemsListView.SelectedItem = null; | ||||||
|  |  | ||||||
							
								
								
									
										45
									
								
								AideDeJeu/AideDeJeu/Views/SpellDetailPage.xaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								AideDeJeu/AideDeJeu/Views/SpellDetailPage.xaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,45 @@ | ||||||
|  | <?xml version="1.0" encoding="utf-8" ?> | ||||||
|  | <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" | ||||||
|  |              xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" | ||||||
|  |              x:Class="AideDeJeu.Views.SpellDetailPage" | ||||||
|  |              Title="{Binding Title}"> | ||||||
|  |     <ScrollView> | ||||||
|  |         <StackLayout Orientation="Vertical" Padding="15"> | ||||||
|  |             <Label Text="{Binding Item.Title}" Style="{StaticResource Key=subsubsection}" /> | ||||||
|  | 
 | ||||||
|  |             <Label Text=" " /> | ||||||
|  | 
 | ||||||
|  |             <StackLayout Orientation="Horizontal"> | ||||||
|  |                 <Label Text="{Binding Item.Type}" Style="{StaticResource Key=contentital}" /> | ||||||
|  |                 <Label Text="{Binding Item.Level, StringFormat='de niveau {0}'}" Style="{StaticResource Key=contentital}" /> | ||||||
|  |             </StackLayout> | ||||||
|  | 
 | ||||||
|  |             <StackLayout Orientation="Horizontal"> | ||||||
|  |                 <Label Text="Durée d'incantation :" Style="{StaticResource Key=contentbold}" /> | ||||||
|  |                 <Label Text="{Binding Item.CastingTime}" Style="{StaticResource Key=content}" /> | ||||||
|  |             </StackLayout> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |             <StackLayout Orientation="Horizontal"> | ||||||
|  |                 <Label Text="Portée :" Style="{StaticResource Key=contentbold}" /> | ||||||
|  |                 <Label Text="{Binding Item.Range}" Style="{StaticResource Key=content}" /> | ||||||
|  |             </StackLayout> | ||||||
|  | 
 | ||||||
|  |             <StackLayout Orientation="Horizontal"> | ||||||
|  |                 <Label Text="Composantes :" Style="{StaticResource Key=contentbold}" /> | ||||||
|  |                 <Label Text="{Binding Item.Components}" Style="{StaticResource Key=content}" /> | ||||||
|  |             </StackLayout> | ||||||
|  | 
 | ||||||
|  |             <StackLayout Orientation="Horizontal"> | ||||||
|  |                 <Label Text="Durée :" Style="{StaticResource Key=contentbold}" /> | ||||||
|  |                 <Label Text="{Binding Item.Duration}" Style="{StaticResource Key=content}" /> | ||||||
|  |             </StackLayout> | ||||||
|  | 
 | ||||||
|  |             <Label Text=" " /> | ||||||
|  | 
 | ||||||
|  |             <Label Text="{Binding Item.Description}" Style="{StaticResource Key=content}" /> | ||||||
|  | 
 | ||||||
|  |             <Label Text="{Binding Item.Source}" Style="{StaticResource Key=content}" /> | ||||||
|  |         </StackLayout> | ||||||
|  |     </ScrollView> | ||||||
|  | </ContentPage> | ||||||
							
								
								
									
										38
									
								
								AideDeJeu/AideDeJeu/Views/SpellDetailPage.xaml.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								AideDeJeu/AideDeJeu/Views/SpellDetailPage.xaml.cs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,38 @@ | ||||||
|  | using System; | ||||||
|  | 
 | ||||||
|  | using Xamarin.Forms; | ||||||
|  | using Xamarin.Forms.Xaml; | ||||||
|  | 
 | ||||||
|  | using AideDeJeu.Models; | ||||||
|  | using AideDeJeu.ViewModels; | ||||||
|  | using AideDeJeuLib; | ||||||
|  | 
 | ||||||
|  | namespace AideDeJeu.Views | ||||||
|  | { | ||||||
|  | 	[XamlCompilation(XamlCompilationOptions.Compile)] | ||||||
|  | 	public partial class SpellDetailPage : ContentPage | ||||||
|  | 	{ | ||||||
|  |         SpellDetailViewModel viewModel; | ||||||
|  | 
 | ||||||
|  |         public SpellDetailPage(SpellDetailViewModel viewModel) | ||||||
|  |         { | ||||||
|  |             InitializeComponent(); | ||||||
|  | 
 | ||||||
|  |             BindingContext = this.viewModel = viewModel; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public SpellDetailPage() | ||||||
|  |         { | ||||||
|  |             InitializeComponent(); | ||||||
|  | 
 | ||||||
|  |             var item = new Spell | ||||||
|  |             { | ||||||
|  |                 Title = "", | ||||||
|  |                 //Description = "This is an item description." | ||||||
|  |             }; | ||||||
|  | 
 | ||||||
|  |             viewModel = new SpellDetailViewModel(item); | ||||||
|  |             BindingContext = viewModel; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -72,8 +72,8 @@ namespace AideDeJeuLib | ||||||
|                 newSpell.Components = spell.SelectSingleNode("div[strong/text()='Composantes']").InnerText.Split(new string[] { " : " }, StringSplitOptions.None)[1]; |                 newSpell.Components = spell.SelectSingleNode("div[strong/text()='Composantes']").InnerText.Split(new string[] { " : " }, StringSplitOptions.None)[1]; | ||||||
|                 newSpell.Duration = spell.SelectSingleNode("div[strong/text()='Durée']").InnerText.Split(new string[] { " : " }, StringSplitOptions.None)[1]; |                 newSpell.Duration = spell.SelectSingleNode("div[strong/text()='Durée']").InnerText.Split(new string[] { " : " }, StringSplitOptions.None)[1]; | ||||||
|                 newSpell.DescriptionDiv = spell.SelectSingleNode("div[contains(@class,'description')]"); |                 newSpell.DescriptionDiv = spell.SelectSingleNode("div[contains(@class,'description')]"); | ||||||
|                 newSpell.Description = newSpell.DescriptionDiv.InnerHtml; |                 //newSpell.DescriptionHtml = newSpell.DescriptionDiv.InnerHtml; | ||||||
|                 newSpell.DescriptionText = newSpell.DescriptionDiv.InnerText; |                 //newSpell.Description = newSpell.DescriptionDiv.InnerText; | ||||||
|                 newSpell.Overflow = spell.SelectSingleNode("div[@class='overflow']")?.InnerText; |                 newSpell.Overflow = spell.SelectSingleNode("div[@class='overflow']")?.InnerText; | ||||||
|                 newSpell.NoOverflow = spell.SelectSingleNode("div[@class='nooverflow']")?.InnerText; |                 newSpell.NoOverflow = spell.SelectSingleNode("div[@class='nooverflow']")?.InnerText; | ||||||
|                 newSpell.Source = spell.SelectSingleNode("div[@class='source']").InnerText; |                 newSpell.Source = spell.SelectSingleNode("div[@class='source']").InnerText; | ||||||
|  | @ -143,7 +143,7 @@ namespace AideDeJeuLib | ||||||
|                 newSpell.Components = spell.SelectSingleNode("div[strong/text()='Composantes']").InnerText.Split(new string[] { " : " }, StringSplitOptions.None)[1]; |                 newSpell.Components = spell.SelectSingleNode("div[strong/text()='Composantes']").InnerText.Split(new string[] { " : " }, StringSplitOptions.None)[1]; | ||||||
|                 newSpell.Duration = spell.SelectSingleNode("div[strong/text()='Durée']").InnerText.Split(new string[] { " : " }, StringSplitOptions.None)[1]; |                 newSpell.Duration = spell.SelectSingleNode("div[strong/text()='Durée']").InnerText.Split(new string[] { " : " }, StringSplitOptions.None)[1]; | ||||||
|                 newSpell.DescriptionDiv = spell.SelectSingleNode("div[contains(@class,'description')]"); |                 newSpell.DescriptionDiv = spell.SelectSingleNode("div[contains(@class,'description')]"); | ||||||
|                 newSpell.Description = newSpell.DescriptionDiv.InnerHtml; |                 //newSpell.Description = newSpell.DescriptionDiv.InnerHtml; | ||||||
|                 newSpell.Overflow = spell.SelectSingleNode("div[@class='overflow']")?.InnerText; |                 newSpell.Overflow = spell.SelectSingleNode("div[@class='overflow']")?.InnerText; | ||||||
|                 newSpell.NoOverflow = spell.SelectSingleNode("div[@class='nooverflow']")?.InnerText; |                 newSpell.NoOverflow = spell.SelectSingleNode("div[@class='nooverflow']")?.InnerText; | ||||||
|                 newSpell.Source = spell.SelectSingleNode("div[@class='source']").InnerText; |                 newSpell.Source = spell.SelectSingleNode("div[@class='source']").InnerText; | ||||||
|  |  | ||||||
|  | @ -7,6 +7,7 @@ namespace AideDeJeuLib | ||||||
| { | { | ||||||
|     public class Spell |     public class Spell | ||||||
|     { |     { | ||||||
|  |         public string Id { get; set; } | ||||||
|         public string Title { get; set; } |         public string Title { get; set; } | ||||||
|         public string TitleUS { get; set; } |         public string TitleUS { get; set; } | ||||||
|         public string LevelType { get; set; } |         public string LevelType { get; set; } | ||||||
|  | @ -16,8 +17,8 @@ namespace AideDeJeuLib | ||||||
|         public string Range { get; set; } |         public string Range { get; set; } | ||||||
|         public string Components { get; set; } |         public string Components { get; set; } | ||||||
|         public string Duration { get; set; } |         public string Duration { get; set; } | ||||||
|         public string Description { get; set; } |         public string DescriptionHtml { get { return DescriptionDiv.InnerHtml; } } | ||||||
|         public string DescriptionText { get; set; } |         public string Description { get { return DescriptionDiv.InnerHtml.Replace("<br>", "\r\n").Replace("<strong>","").Replace("</strong>", "").Replace("<em>", "").Replace("</em>", ""); } } | ||||||
|         public HtmlNode DescriptionDiv { get; set; } |         public HtmlNode DescriptionDiv { get; set; } | ||||||
|         public string Overflow { get; set; } |         public string Overflow { get; set; } | ||||||
|         public string NoOverflow { get; set; } |         public string NoOverflow { get; set; } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Yan Maniez
						Yan Maniez