:🩹 fix selectLine OutOfRange

pull/38/head
Alexandre AGOSTINHO 2 years ago
parent 7c66b30f7c
commit c5b717a6ff

@ -24,8 +24,8 @@ namespace ConsoleApp.Menu
private set private set
{ {
_currentLine = value; _currentLine = value;
if (_currentLine < 0) _currentLine = 0; if (_currentLine <= 0) _currentLine = 0;
if (_currentLine > _selectList.Count) _currentLine = _selectList.Count-1; else if (_currentLine >= _selectList.Count) _currentLine = _selectList.Count-1;
} }
} }
@ -59,6 +59,9 @@ namespace ConsoleApp.Menu
public virtual void Display() public virtual void Display()
{ {
_screenDisplay.Clear();
Console.Clear();
_screenDisplay.AppendLine($"[ {Title} ]"); _screenDisplay.AppendLine($"[ {Title} ]");
_screenDisplay.AppendLine("-------------------------------------------"); _screenDisplay.AppendLine("-------------------------------------------");
@ -78,13 +81,15 @@ namespace ConsoleApp.Menu
_screenDisplay.AppendLine($"{_selectList[i].Line}"); _screenDisplay.AppendLine($"{_selectList[i].Line}");
} }
Console.Clear(); if (_selectList == null || _selectList.Count == 0)
_screenDisplay.AppendLine("Empty...");
Console.WriteLine(_screenDisplay); Console.WriteLine(_screenDisplay);
} }
public void SelectNext() => CurrentSelected = _selectList[++CurrentLine].Item; public void SelectNext() => CurrentSelected = _selectList[CurrentLine++].Item;
public void SelectPrevious() => CurrentSelected = _selectList[--CurrentLine].Item; public void SelectPrevious() => CurrentSelected = _selectList[CurrentLine--].Item;
public void EnableWriteMode() => WriteMode = true; public void EnableWriteMode() => WriteMode = true;

@ -19,33 +19,29 @@ namespace ConsoleApp.Menu
public SearcherRecipe(RecipeCollection recipeCollection) : base("Search recipe") public SearcherRecipe(RecipeCollection recipeCollection) : base("Search recipe")
{ {
_recipeCollectionOnSearch = recipeCollection; _recipeCollectionOnSearch = recipeCollection;
UpdateSelection(_recipeCollectionOnSearch); Update();
} }
#region Methodes #region Methodes
private void UpdateSelection(RecipeCollection recipeCollection) public override void Update()
{ {
RecipeCollection newRCSearchView =
_recipeCollectionOnSearch.ResearchByName(InputStr.ToString());
_selectList.Clear(); _selectList.Clear();
if (recipeCollection == null || recipeCollection.Count == 0)
foreach (Recipe recipe in newRCSearchView)
{ {
Console.WriteLine("Empty menu..."); _selectList.Add(new Selector<Recipe>(recipe, $"[{recipe.Id}]: {recipe.Title}"));
return;
} }
foreach (Recipe recipe in recipeCollection) if (_selectList == null || _selectList.Count == 0)
{ {
_selectList.Add(new Selector<Recipe>(recipe, $"[{recipe.Id}]: {recipe.Title}")); CurrentSelected = null;
return;
} }
CurrentSelected = _selectList[0].Item; CurrentSelected = _selectList[0].Item;
} }
public override void Update()
{
RecipeCollection newRCSearchView =
_recipeCollectionOnSearch.ResearchByName(InputStr.ToString());
UpdateSelection(newRCSearchView);
}
public override void Return() public override void Return()
{ {
Console.WriteLine(CurrentSelected); Console.WriteLine(CurrentSelected);

@ -27,7 +27,7 @@ namespace ConsoleApp
return; return;
} }
if (cki.Key == ConsoleKey.Backspace) if (cki.Key == ConsoleKey.Backspace && menu.InputStr.Length > 0)
{ {
menu.InputStr.Remove(menu.InputStr.Length-1, 1); menu.InputStr.Remove(menu.InputStr.Length-1, 1);
return; return;

Loading…
Cancel
Save