mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-30 15:06:06 +00:00
Préparation conditions
This commit is contained in:
parent
cac8ea4fae
commit
6906ddbd32
3 changed files with 87 additions and 14 deletions
|
|
@ -88,6 +88,45 @@ namespace AideDeJeu.ViewModels
|
|||
}
|
||||
}
|
||||
|
||||
public class SearchFilterViewModel : FilterViewModel
|
||||
{
|
||||
private IEnumerable<Filter> _Filters = null;
|
||||
public override IEnumerable<Filter> Filters
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_Filters == null)
|
||||
{
|
||||
_Filters = new List<Filter>()
|
||||
{
|
||||
};
|
||||
}
|
||||
return _Filters;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default)
|
||||
{
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
return items.Where(item =>
|
||||
{
|
||||
var spell = item as Spell;
|
||||
return
|
||||
(
|
||||
(Helpers.RemoveDiacritics(spell.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) ||
|
||||
(Helpers.RemoveDiacritics(spell.NameVOText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower()))
|
||||
);
|
||||
}).OrderBy(spell => spell.Name)
|
||||
.AsEnumerable();
|
||||
}, token);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
#region Spells
|
||||
public abstract class SpellFilterViewModel : FilterViewModel
|
||||
{
|
||||
|
|
|
|||
|
|
@ -44,12 +44,38 @@ namespace AideDeJeu.ViewModels
|
|||
set => SetProperty(ref _isLoading, value);
|
||||
}
|
||||
|
||||
public List<KeyValuePair<ItemSourceType, string>> ItemsSources { get; set; } = new List<KeyValuePair<ItemSourceType, string>>()
|
||||
{
|
||||
new KeyValuePair<ItemSourceType, string>(ItemSourceType.SpellHD, "Sorts (H&D)"),
|
||||
new KeyValuePair<ItemSourceType, string>(ItemSourceType.SpellVO, "Spells (VO)"),
|
||||
new KeyValuePair<ItemSourceType, string>(ItemSourceType.MonsterHD, "Créatures (H&D)"),
|
||||
new KeyValuePair<ItemSourceType, string>(ItemSourceType.MonsterVO, "Monsters (VO)"),
|
||||
new KeyValuePair<ItemSourceType, string>(ItemSourceType.ConditionHD, "Etats spéciaux (H&D)"),
|
||||
new KeyValuePair<ItemSourceType, string>(ItemSourceType.ConditionVO, "Conditions (VO)"),
|
||||
};
|
||||
|
||||
private int _ItemsSourcesIndex = 0;
|
||||
public int ItemsSourcesIndex
|
||||
{
|
||||
get
|
||||
{
|
||||
return _ItemsSourcesIndex;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _ItemsSourcesIndex, value);
|
||||
ItemSourceType = ItemsSources[value].Key;
|
||||
}
|
||||
}
|
||||
|
||||
public Dictionary<ItemSourceType, Lazy<ItemsViewModel>> AllItemsViewModel = new Dictionary<ItemSourceType, Lazy<ItemsViewModel>>()
|
||||
{
|
||||
{ ItemSourceType.SpellVO, new Lazy<ItemsViewModel>(() => new ItemsViewModel(ItemSourceType.SpellVO)) },
|
||||
{ ItemSourceType.SpellHD, new Lazy<ItemsViewModel>(() => new ItemsViewModel(ItemSourceType.SpellHD)) },
|
||||
{ ItemSourceType.MonsterVO, new Lazy<ItemsViewModel>(() => new ItemsViewModel(ItemSourceType.MonsterVO)) },
|
||||
{ ItemSourceType.MonsterHD, new Lazy<ItemsViewModel>(() => new ItemsViewModel(ItemSourceType.MonsterHD)) },
|
||||
{ ItemSourceType.ConditionHD, new Lazy<ItemsViewModel>(() => new ItemsViewModel(ItemSourceType.ConditionHD)) },
|
||||
{ ItemSourceType.ConditionVO, new Lazy<ItemsViewModel>(() => new ItemsViewModel(ItemSourceType.ConditionVO)) },
|
||||
};
|
||||
|
||||
public ItemsViewModel GetItemsViewModel(ItemSourceType itemSourceType)
|
||||
|
|
@ -63,6 +89,8 @@ namespace AideDeJeu.ViewModels
|
|||
{ ItemSourceType.SpellHD, new Lazy<FilterViewModel>(() => new HDSpellFilterViewModel()) },
|
||||
{ ItemSourceType.MonsterVO, new Lazy<FilterViewModel>(() => new VOMonsterFilterViewModel()) },
|
||||
{ ItemSourceType.MonsterHD, new Lazy<FilterViewModel>(() => new HDMonsterFilterViewModel()) },
|
||||
{ ItemSourceType.ConditionHD, new Lazy<FilterViewModel>(() => new SearchFilterViewModel()) },
|
||||
{ ItemSourceType.ConditionVO, new Lazy<FilterViewModel>(() => new SearchFilterViewModel()) },
|
||||
};
|
||||
|
||||
public FilterViewModel GetFilterViewModel(ItemSourceType itemSourceType)
|
||||
|
|
|
|||
|
|
@ -8,20 +8,26 @@
|
|||
</MasterDetailPage.Resources>
|
||||
<MasterDetailPage.Master>
|
||||
<ContentPage Title=" ">
|
||||
<ListView SelectionMode="None" ItemsSource="{Binding ItemSourceType, Converter={StaticResource ItemSourceTypeToFilterConverter}}" HasUnevenRows="True" RowHeight="-1" SeparatorVisibility="None" IsPullToRefreshEnabled="False">
|
||||
<ListView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ViewCell>
|
||||
<ViewCell.View>
|
||||
<StackLayout Margin="10,5,10,0" Padding="0" Spacing="0">
|
||||
<Label BindingContext="{Binding}" Text="{Binding Name}" Style="{StaticResource Key=subsubsection}" />
|
||||
<Picker HorizontalOptions="FillAndExpand" ItemsSource="{Binding KeyValues, Mode=OneWay}" ItemDisplayBinding="{Binding Value, Mode=OneWay}" SelectedIndex="{Binding Index}" />
|
||||
</StackLayout>
|
||||
</ViewCell.View>
|
||||
</ViewCell>
|
||||
</DataTemplate>
|
||||
</ListView.ItemTemplate>
|
||||
</ListView>
|
||||
<StackLayout Orientation="Vertical">
|
||||
<StackLayout Margin="10,5,10,0" Padding="0" Spacing="0">
|
||||
<Label Text="Listes" Style="{StaticResource Key=subsubsection}" />
|
||||
<Picker HorizontalOptions="FillAndExpand" ItemsSource="{Binding ItemsSources, Mode=OneWay}" ItemDisplayBinding="{Binding Value, Mode=OneWay}" SelectedIndex="{Binding ItemsSourcesIndex}" />
|
||||
</StackLayout>
|
||||
<ListView SelectionMode="None" ItemsSource="{Binding ItemSourceType, Converter={StaticResource ItemSourceTypeToFilterConverter}}" HasUnevenRows="True" RowHeight="-1" SeparatorVisibility="None" IsPullToRefreshEnabled="False" HorizontalOptions="FillAndExpand" >
|
||||
<ListView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ViewCell>
|
||||
<ViewCell.View>
|
||||
<StackLayout Margin="10,5,10,0" Padding="0" Spacing="0">
|
||||
<Label BindingContext="{Binding}" Text="{Binding Name}" Style="{StaticResource Key=subsubsection}" />
|
||||
<Picker HorizontalOptions="FillAndExpand" ItemsSource="{Binding KeyValues, Mode=OneWay}" ItemDisplayBinding="{Binding Value, Mode=OneWay}" SelectedIndex="{Binding Index}" />
|
||||
</StackLayout>
|
||||
</ViewCell.View>
|
||||
</ViewCell>
|
||||
</DataTemplate>
|
||||
</ListView.ItemTemplate>
|
||||
</ListView>
|
||||
</StackLayout>
|
||||
</ContentPage>
|
||||
</MasterDetailPage.Master>
|
||||
<MasterDetailPage.Detail>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue