Completata search libera (senza debounce da sistemare)

This commit is contained in:
Samuele Locatelli
2021-09-16 10:55:09 +02:00
parent c27b81f506
commit 27100c7d65
10 changed files with 128 additions and 53 deletions
+61 -19
View File
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Timers;
namespace MP.Prog.Data
{
@@ -12,11 +13,17 @@ namespace MP.Prog.Data
private SelectData _fileFilter = SelectData.Init(5, 15);
private string _pageIcon;
private string _pageName;
private string _searchVal;
private string _searchVal = "";
private bool showSearch;
#endregion Private Fields
#region Protected Fields
protected Timer SearchTimer;
#endregion Protected Fields
#region Public Events
public event Action EA_FilterUpdated;
@@ -41,11 +48,7 @@ namespace MP.Prog.Data
if (_fileFilter != value)
{
_fileFilter = value;
if (EA_FilterUpdated != null)
{
EA_FilterUpdated?.Invoke();
}
ReportFilter();
}
}
}
@@ -84,11 +87,8 @@ namespace MP.Prog.Data
if (_searchVal != value)
{
_searchVal = value;
if (EA_SearchUpdated != null)
{
EA_SearchUpdated?.Invoke();
}
//TriggerSearch();
ReportSearch();
}
}
}
@@ -103,17 +103,11 @@ namespace MP.Prog.Data
showSearch = value;
if (showSearch)
{
if (EA_ShowSearch != null)
{
EA_ShowSearch?.Invoke();
}
ReportShowSearch();
}
else
{
if (EA_HideSearch != null)
{
EA_HideSearch?.Invoke();
}
ReportHideSearch();
}
}
}
@@ -123,6 +117,22 @@ namespace MP.Prog.Data
#region Private Methods
private void ReportFilter()
{
if (EA_FilterUpdated != null)
{
EA_FilterUpdated?.Invoke();
}
}
private void ReportHideSearch()
{
if (EA_HideSearch != null)
{
EA_HideSearch?.Invoke();
}
}
private void ReportPageUpd()
{
if (EA_PageUpdated != null)
@@ -139,6 +149,38 @@ namespace MP.Prog.Data
}
}
private void ReportShowSearch()
{
if (EA_ShowSearch != null)
{
EA_ShowSearch?.Invoke();
}
}
private void SearchTimerElapsed_TickAsync(object sender, EventArgs e)
{
DisposeSearchTimer();
ReportSearch();
}
private void TriggerSearch()
{
DisposeSearchTimer();
SearchTimer = new Timer(150);
SearchTimer.Elapsed += SearchTimerElapsed_TickAsync;
SearchTimer.Enabled = true;
SearchTimer.Start();
}
#endregion Private Methods
#region Protected Methods
protected void DisposeSearchTimer()
{
SearchTimer.Dispose();
}
#endregion Protected Methods
}
}