1
0
Fork 0
mirror of https://github.com/Nioux/AideDeJeu.git synced 2025-10-30 15:06:06 +00:00

Switch VF/VO/H&D

This commit is contained in:
Yan Maniez 2018-05-27 23:53:32 +02:00
parent 64e236bb8f
commit 37198340ec
3 changed files with 39 additions and 14 deletions

View file

@ -37,7 +37,7 @@ namespace AideDeJeu.ViewModels
public class MainViewModel : BaseViewModel
{
private ItemSourceType _ItemSourceType = ItemSourceType.SpellVF;
private ItemSourceType _ItemSourceType = ItemSourceType.SpellHD;
public ItemSourceType ItemSourceType
{
get
@ -49,8 +49,8 @@ namespace AideDeJeu.ViewModels
//CurrentViewModel.SearchText = "";
SetProperty(ref _ItemSourceType, value);
//CurrentViewModel.SearchText = "";
LoadItemsCommand.Execute(null);
OnPropertyChanged(nameof(Items));
//LoadItemsCommand.Execute(null);
}
}
@ -73,7 +73,12 @@ namespace AideDeJeu.ViewModels
public Dictionary<ItemSourceType, Lazy<ItemsViewModel>> AllItemsViewModel = new Dictionary<ItemSourceType, Lazy<ItemsViewModel>>()
{
{ ItemSourceType.SpellVF, new Lazy<ItemsViewModel>(() => new SpellsViewModel()) },
{ ItemSourceType.SpellVF, new Lazy<ItemsViewModel>(() => new SpellsViewModel(ItemSourceType.SpellVF)) },
{ ItemSourceType.SpellVO, new Lazy<ItemsViewModel>(() => new SpellsViewModel(ItemSourceType.SpellVO)) },
{ ItemSourceType.SpellHD, new Lazy<ItemsViewModel>(() => new SpellsViewModel(ItemSourceType.SpellHD)) },
{ ItemSourceType.MonsterVF, new Lazy<ItemsViewModel>(() => new MonstersViewModel()) },
{ ItemSourceType.MonsterVO, new Lazy<ItemsViewModel>(() => new MonstersViewModel()) },
{ ItemSourceType.MonsterHD, new Lazy<ItemsViewModel>(() => new MonstersViewModel()) },
};
public ItemsViewModel GetItemsViewModel(ItemSourceType itemSourceType)
@ -84,6 +89,8 @@ namespace AideDeJeu.ViewModels
public Dictionary<ItemSourceType, Lazy<FilterViewModel>> AllFiltersViewModel = new Dictionary<ItemSourceType, Lazy<FilterViewModel>>()
{
{ ItemSourceType.SpellVF, new Lazy<FilterViewModel>(() => new VFSpellFilterViewModel()) },
{ ItemSourceType.SpellVO, new Lazy<FilterViewModel>(() => new VOSpellFilterViewModel()) },
{ ItemSourceType.SpellHD, new Lazy<FilterViewModel>(() => new HDSpellFilterViewModel()) },
};
public FilterViewModel GetFilterViewModel(ItemSourceType itemSourceType)
@ -137,6 +144,9 @@ namespace AideDeJeu.ViewModels
public Command SwitchToSpells { get; private set; }
public Command SwitchToMonsters { get; private set; }
public Command SwitchToVF { get; private set; }
public Command SwitchToVO { get; private set; }
public Command SwitchToHD { get; private set; }
public Command AboutCommand { get; private set; }
public Command<string> SearchCommand { get; private set; }
@ -145,10 +155,13 @@ namespace AideDeJeu.ViewModels
{
//Spells = new SpellsViewModel(navigator, Items);
//Monsters = new MonstersViewModel(navigator, Items);
LoadItemsCommand = new Command(async () => GetItemsViewModel(ItemSourceType).ExecuteLoadItemsCommand(GetFilterViewModel(ItemSourceType)));
LoadItemsCommand = new Command(() => GetItemsViewModel(ItemSourceType).ExecuteLoadItemsCommand(GetFilterViewModel(ItemSourceType)));
GotoItemCommand = new Command<Item>(async (item) => await GetItemsViewModel(ItemSourceType).ExecuteGotoItemCommandAsync(item));
SwitchToSpells = new Command(() => ItemSourceType = (ItemSourceType & ~ ItemSourceType.Monster) | ItemSourceType.Spell);
SwitchToMonsters = new Command(() => ItemSourceType = (ItemSourceType & ~ItemSourceType.Spell) | ItemSourceType.Monster);
SwitchToVF = new Command(() => ItemSourceType = (ItemSourceType & ~ItemSourceType.VO & ~ItemSourceType.HD) | ItemSourceType.VF);
SwitchToVO = new Command(() => ItemSourceType = (ItemSourceType & ~ItemSourceType.VF & ~ItemSourceType.HD) | ItemSourceType.VO);
SwitchToHD = new Command(() => ItemSourceType = (ItemSourceType & ~ItemSourceType.VF & ~ItemSourceType.VO) | ItemSourceType.HD);
//AboutCommand = new Command(async() => await navigator.GotoAboutPageAsync());
//SearchCommand = new Command<string>((text) => GetItemsViewModel(ItemSourceType).SearchText = text);
}

View file

@ -14,6 +14,11 @@ namespace AideDeJeu.ViewModels
{
public class SpellsViewModel : ItemsViewModel
{
ItemSourceType ItemSourceType;
public SpellsViewModel(ItemSourceType itemSourceType)
{
this.ItemSourceType = itemSourceType;
}
private IEnumerable<Spell> _AllSpells = null;
private IEnumerable<Spell> AllSpells
{
@ -21,16 +26,20 @@ namespace AideDeJeu.ViewModels
{
if(_AllSpells == null)
{
_AllSpells = Tools.Helpers.GetResourceObject<IEnumerable<Spell>>("AideDeJeu.Data.spells_vf.json");
//var serializer = new DataContractJsonSerializer(typeof(IEnumerable<Spell>));
//var assembly = typeof(AboutViewModel).GetTypeInfo().Assembly;
////var names = assembly.GetManifestResourceNames();
////using (var stream = assembly.GetManifestResourceStream("AideDeJeu.Data.spells_hd.json"))
//using (var stream = assembly.GetManifestResourceStream("AideDeJeu.Data.spells_vf.json"))
////using (var stream = assembly.GetManifestResourceStream("AideDeJeu.Data.spells_vo.json"))
//{
// _AllSpells = serializer.ReadObject(stream) as IEnumerable<Spell>;
//}
string resourceName = null;
switch(ItemSourceType)
{
case ItemSourceType.SpellVF:
resourceName = "AideDeJeu.Data.spells_vf.json";
break;
case ItemSourceType.SpellVO:
resourceName = "AideDeJeu.Data.spells_vo.json";
break;
case ItemSourceType.SpellHD:
resourceName = "AideDeJeu.Data.spells_hd.json";
break;
}
_AllSpells = Tools.Helpers.GetResourceObject<IEnumerable<Spell>>(resourceName);
}
return _AllSpells;
}

View file

@ -87,6 +87,9 @@
<ToolbarItem Name="Spells" Text="Sorts" Order="Primary" Icon="spell_book.png" Command="{Binding SwitchToSpells}" />
<ToolbarItem Name="Monsters" Text="Monstres" Order="Primary" Icon="dragon_head.png" Command="{Binding SwitchToMonsters}" />
<ToolbarItem Name="About" Text="À propos de..." Order="Primary" Icon="wooden_sign.png" Command="{Binding AboutCommand}" />
<ToolbarItem Name="VF" Text="VF AideDD" Order="Secondary" Command="{Binding SwitchToVF}" />
<ToolbarItem Name="VO" Text="VO AideDD/SRD" Order="Secondary" Command="{Binding SwitchToVO}" />
<ToolbarItem Name="HD" Text="VF H&amp;D" Order="Secondary" Command="{Binding SwitchToHD}" />
</ContentPage.ToolbarItems>
<StackLayout Orientation="Vertical">
<SearchBar x:Name="SearchBar" SearchCommand="{Binding SearchCommand}" SearchCommandParameter="{Binding Text, Source={x:Reference SearchBar}}">