It may be not clear which one of these two classes to use when we want to add selection functionality for a listbox, however conceptually:
- SelectableListBoxWrapper is a base class for adding highlight/selection funtionality for ListBox, it is used in all tree grids
- FilterableListBoxWrapper is an inheritor of SelectableListBoxWrapper and is a base class for input dropdowns where we stage preselection and apply it after hitting 'Apply' button
'addKeyNavigation' is used only in dropdowns for moving focus using key navigation in dropdowns, tree grids use other navigation for immediately highlighting/selecting items, so:
- Move 'addKeyNavigation' and 'addKeyNavigation' to FilterableListBoxWrapper
- Rename
SelectableListBoxNavigator to ListBoxFocusNavigator or pick another more suitable name
To differentiate between tree grids and dropdowns:
- Revamp FilterableListBoxWrapper, make a DropdownList class that will contain input/filter/dropdown arrow and ! a FilterableListBoxWrapper, thus all input types classes like ContentSelectorDropdown or CustomSelectorComboBox are going to inherit from this new class and not from a selection wrapper!
- Rename FilterableListBoxWrapper -> SelectableDropdownList or remove it totally if it is not needed after the previous step
It may be not clear which one of these two classes to use when we want to add selection functionality for a listbox, however conceptually:
'addKeyNavigation' is used only in dropdowns for moving focus using key navigation in dropdowns, tree grids use other navigation for immediately highlighting/selecting items, so:
SelectableListBoxNavigatorto ListBoxFocusNavigator or pick another more suitable nameTo differentiate between tree grids and dropdowns: