Class Finder
- All Implemented Interfaces:
Iterable<FinderColumn>, Attachable, ElementAttributeMethods<HTMLElement, Finder>, ElementClassListMethods<HTMLElement, Finder>, ElementConsumerMethods<HTMLElement, Finder>, ElementContainerMethods<HTMLElement, Finder>, ElementEventMethods<HTMLElement, Finder>, ElementIdMethods<HTMLElement, Finder>, ElementQueryMethods<HTMLElement>, HTMLElementAttributeMethods<HTMLElement, Finder>, HTMLElementDataMethods<HTMLElement, Finder>, HTMLElementStyleMethods<HTMLElement, Finder>, HTMLElementVisibilityMethods<HTMLElement, Finder>, IsElement<HTMLElement>, TypedBuilder<HTMLElement, Finder>, Component, HasItems<HTMLElement, Finder, FinderColumn>, OuiaSupport<HTMLElement, Finder>, Modifiers.Bordered<HTMLElement, Finder>
-
Method Summary
Modifier and TypeMethodDescriptionReturns the selection path up to and including the currently active (focused) column.add(FinderColumn item) Adds an item to the component.add(FinderPreview preview) Adds the specifiedFinderPreviewinstance to the finder.addColumn(FinderColumn column) Same asHasItems.addItem(HasIdentifier)<T> FinderaddColumns(Iterable<T> items, Function<T, FinderColumn> display) addPreview(FinderPreview preview) Adds the specifiedFinderPreviewinstance to the finder.voidattach(MutationRecord mutationRecord) voidclear()Clears all items from the component.booleanChecks whether the component contains an item associated with the given identifier.voiddetach(MutationRecord mutationRecord) static Finderfinder()booleanisEmpty()Checks whether the collection of items in the component is empty.Retrieves the item associated with the specified identifier from the component.iterator()onAdd(AddItemHandler<Finder, FinderColumn> onAdd) Registers a callback to be invoked whenever a new item is added to the component.onRemove(RemoveItemHandler<Finder, FinderColumn> onRemove) Registers a callback to be invoked whenever an item is removed from the component.onUpdate(UpdateItemHandler<Finder, FinderColumn> onUpdate) Registers a callback to be invoked whenever an item is updated in the component.path()Returns the full selection path across all columns, regardless of which column is currently active.voidremoveItem(String identifier) Removes an item from the component based on the provided identifier.Parses and selects items along the given finder path string, handling async column loading at each level.select(FinderPath path) Selects items along the given finder path, handling async column loading at each level.intsize()Retrieves the total number of items currently contained in the component.that()voidupdateItem(FinderColumn item) Updates an existing item in the component.Methods inherited from class BaseComponent
componentType, element, ouiaComponentType, registerComponentMethods inherited from class Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ElementAttributeMethods
aria, aria, aria, attr, attr, attr, role, roleMethods inherited from interface ElementClassListMethods
classList, classList, css, toggle, toggle, toggleMethods inherited from interface ElementConsumerMethods
apply, runMethods inherited from interface ElementContainerMethods
add, add, add, add, addAll, addAll, addAll, addAll, addAll, addAllMethods inherited from interface ElementEventMethods
on, on, onMethods inherited from interface ElementIdMethods
id, uniqueIdMethods inherited from interface ElementQueryMethods
closest, querySelector, querySelectorAllMethods inherited from interface HasItems
addItem, addItems, items, replaceItemElement, updateItem, updateItemMethods inherited from interface HTMLElementAttributeMethods
titleMethods inherited from interface HTMLElementDataMethods
data, dataMethods inherited from interface HTMLElementVisibilityMethods
hiddenMethods inherited from interface Iterable
forEach, spliteratorMethods inherited from interface Modifiers.Bordered
bordered, borderedMethods inherited from interface OuiaSupport
initOuia, initOuia, ouiaId, ouiaSafe, ouiaTransition
-
Method Details
-
finder
-
attach
- Specified by:
attachin interfaceAttachable
-
detach
- Specified by:
detachin interfaceAttachable
-
addColumns
-
addColumn
Same asHasItems.addItem(HasIdentifier) -
add
Description copied from interface:HasItemsAdds an item to the component.- Specified by:
addin interfaceHasItems<HTMLElement, Finder, FinderColumn>- Parameters:
item- the item to be added to the component- Returns:
- the builder instance after the item has been added
-
addPreview
Adds the specifiedFinderPreviewinstance to the finder. This method ensures that any previously added preview is safely removed before adding the new one.- Parameters:
preview- theFinderPreviewinstance to add. Represents the preview component to be added to the finder.- Returns:
- the current
Finderinstance, allowing for method chaining.
-
add
Adds the specifiedFinderPreviewinstance to the finder. This method ensures that any previously added preview is safely removed before adding the new one.Preview can be managed on a column basis by using
FinderColumn.onPreview(PreviewHandler)or on an item basis by usingFinderItem.onPreview(PreviewHandler).- Parameters:
preview- theFinderPreviewinstance to add. Represents the preview component to be added to the finder.- Returns:
- the current
Finderinstance, allowing for method chaining.
-
that
- Specified by:
thatin interfaceTypedBuilder<HTMLElement, Finder>
-
onAdd
Description copied from interface:HasItemsRegisters a callback to be invoked whenever a new item is added to the component.- Specified by:
onAddin interfaceHasItems<HTMLElement, Finder, FinderColumn>- Parameters:
onAdd- aAddItemHandlerthat takes the builder instance and the item being added as arguments- Returns:
- the builder instance after adding the callback
-
onUpdate
Description copied from interface:HasItemsRegisters a callback to be invoked whenever an item is updated in the component.- Specified by:
onUpdatein interfaceHasItems<HTMLElement, Finder, FinderColumn>- Parameters:
onUpdate- aUpdateItemHandlerthat takes the component, the previous state of the item, and the updated state of the item as arguments- Returns:
- the builder instance after adding the callback
-
onRemove
Description copied from interface:HasItemsRegisters a callback to be invoked whenever an item is removed from the component.- Specified by:
onRemovein interfaceHasItems<HTMLElement, Finder, FinderColumn>- Parameters:
onRemove- aRemoveItemHandlerthat takes the component and the item being removed as arguments- Returns:
- the builder instance after adding the callback
-
path
Returns the full selection path across all columns, regardless of which column is currently active. The path includes a segment for every column that has a selected item, stopping at the first column without a selection.Use this method when you need the complete selection state of the finder. If you need the path only up to the currently active (focused) column — for example to synchronise the browser URL during keyboard navigation — use
activePath()instead.- See Also:
-
activePath
Returns the selection path up to and including the currently active (focused) column. Columns to the right of the active column are excluded even if they still have selected items. This is useful for synchronising the browser URL during arrow-left keyboard navigation, where columns to the right are preserved in the DOM but should no longer be reflected in the URL.When no arrow-left navigation has occurred, the active column is the deepest column with a selection, so this method returns the same result as
path().- See Also:
-
select
Parses and selects items along the given finder path string, handling async column loading at each level. The path must use the format produced byFinderPath.toString():col1=item1/col2=item2/col3. The last segment may omit the item identifier to represent a column with no selected item.- Parameters:
path- the encoded finder path string- Returns:
- a
Promisethat resolves with theResolvedFinderPathof successfully selected items - See Also:
-
select
Selects items along the given finder path, handling async column loading at each level. The first column in the path must already be present in this finder. Each item selection may trigger creation and async loading of the next column (viaFinderItem.nextColumn(java.util.function.Supplier)).Select and preview events are fired only for the deepest successfully resolved item, not for intermediate segments. If a segment cannot be resolved (column not found, item not found after loading), the promise resolves with a partial
ResolvedFinderPathcontaining only the successfully selected segments, and events are fired for the last resolved item.- Parameters:
path- the finder path to select- Returns:
- a
Promisethat resolves with theResolvedFinderPathof successfully selected items
-
iterator
- Specified by:
iteratorin interfaceIterable<FinderColumn>
-
size
public int size()Description copied from interface:HasItemsRetrieves the total number of items currently contained in the component.- Specified by:
sizein interfaceHasItems<HTMLElement, Finder, FinderColumn>- Returns:
- the number of items contained in the component
-
isEmpty
public boolean isEmpty()Description copied from interface:HasItemsChecks whether the collection of items in the component is empty.- Specified by:
isEmptyin interfaceHasItems<HTMLElement, Finder, FinderColumn>- Returns:
trueif the component contains no items;falseotherwise
-
contains
Description copied from interface:HasItemsChecks whether the component contains an item associated with the given identifier.- Specified by:
containsin interfaceHasItems<HTMLElement, Finder, FinderColumn>- Parameters:
identifier- the identifier of the item to be checked- Returns:
- true if the component contains an item associated with the provided identifier, false otherwise
-
item
Description copied from interface:HasItemsRetrieves the item associated with the specified identifier from the component.- Specified by:
itemin interfaceHasItems<HTMLElement, Finder, FinderColumn>- Parameters:
identifier- the identifier of the item to be retrieved- Returns:
- the item associated with the given identifier, or
nullif no item is found
-
updateItem
Description copied from interface:HasItemsUpdates an existing item in the component.- Specified by:
updateItemin interfaceHasItems<HTMLElement, Finder, FinderColumn>- Parameters:
item- the item to be updated
-
removeItem
Description copied from interface:HasItemsRemoves an item from the component based on the provided identifier.- Specified by:
removeItemin interfaceHasItems<HTMLElement, Finder, FinderColumn>- Parameters:
identifier- the identifier of the item to be removed
-
clear
public void clear()Description copied from interface:HasItemsClears all items from the component. This method removes any existing items within the component, leaving it empty. Any associated or registered callbacks related to the removal of items may be invoked as part of this operation.- Specified by:
clearin interfaceHasItems<HTMLElement, Finder, FinderColumn>
-