ArrayBasedComboModel.java
- package swingtree;
- import org.jspecify.annotations.Nullable;
- import sprouts.Var;
- import java.util.Objects;
- final class ArrayBasedComboModel<E extends @Nullable Object> extends AbstractComboModel<E>
- {
- private final E[] _items;
- ArrayBasedComboModel(E[] items) {
- this(Var.ofNullable(_findCommonType( items ), null), items);
- }
- ArrayBasedComboModel(Var<E> selection, E @Nullable[] items) {
- super(selection);
- _items = Objects.requireNonNull(items);
- _selectedIndex = _indexOf(_selectedItem.orElseNull());
- }
- @Override
- public AbstractComboModel<E> withVar( Var<E> newVar ) {
- return new ArrayBasedComboModel<>(newVar, _items);
- }
- @Override protected void setAt( int index, @Nullable E element ) { _items[index] = element; }
- @Override public int getSize() { return _items.length; }
- @Override public @Nullable E getElementAt( int index ) { return _items[index]; }
- }