:🩹 fix selectLine OutOfRange

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

@ -24,8 +24,8 @@ namespace ConsoleApp.Menu
private set
{
_currentLine = value;
if (_currentLine < 0) _currentLine = 0;
if (_currentLine > _selectList.Count) _currentLine = _selectList.Count-1;
if (_currentLine <= 0) _currentLine = 0;
else if (_currentLine >= _selectList.Count) _currentLine = _selectList.Count-1;
}
}
@ -59,6 +59,9 @@ namespace ConsoleApp.Menu
public virtual void Display()
{
_screenDisplay.Clear();
Console.Clear();
_screenDisplay.AppendLine($"[ {Title} ]");
_screenDisplay.AppendLine("-------------------------------------------");
@ -77,14 +80,16 @@ namespace ConsoleApp.Menu
_screenDisplay.AppendLine($"{_selectList[i].Line}");
}
Console.Clear();
if (_selectList == null || _selectList.Count == 0)
_screenDisplay.AppendLine("Empty...");
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;

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

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

Loading…
Cancel
Save