public <V> OptionsBinding<V> bind(Options<V> options, Component component, OptionsTarget<V> optionsTarget) { OptionBindingImpl<V> binding = new OptionBindingImpl<>(options, component, optionsTarget); binding.bind(); return binding; }
/** * @return an options object */ @SuppressWarnings("unchecked") @Nullable public Options getOptions() { return options == null && optionsDatasource != null ? new DatasourceOptions(optionsDatasource) : options; }
public static <V> ListOptions<V> empty() { return new ListOptions<>(Collections.emptyList()); }
@Override public void setOptions(Options<V> options) { if (this.optionsBinding != null) { this.optionsBinding.unbind(); this.optionsBinding = null; } if (options != null) { OptionsBinder optionsBinder = beanLocator.get(OptionsBinder.NAME); this.optionsBinding = optionsBinder.bind(options, this, this::setItemsToPresentation); this.optionsBinding.activate(); } }
/** * @return options datasource * @deprecated Use {@link #getOptions()} instead. */ @Deprecated default CollectionDatasource getOptionsDatasource() { Options<I> options = getOptions(); if (options instanceof DatasourceOptions) { return ((DatasourceOptions) options).getDatasource(); } return null; }
protected void optionsSourceOptionsChanged(@SuppressWarnings("unused") Options.OptionsChangeEvent<V> event) { optionsTarget.setOptions(source.getOptions()); }
/** * @param optionsMap options map */ @SuppressWarnings("unchecked") default void setOptionsMap(Map<String, ?> optionsMap) { setOptions(new MapOptions(optionsMap)); }
/** * @return options list * @deprecated Use {@link #getOptions()} instead. */ @Deprecated default List getOptionsList() { Options options = getOptions(); if (options instanceof ListOptions) { return (List) ((ListOptions) options).getItemsCollection(); } return null; }
/** * Sets the given {@code datasource} as options datasource. * * @param datasource options datasource * * @deprecated use {@link TokenList#setOptions(Options)} instead */ @SuppressWarnings("unchecked") @Deprecated default void setOptionsDatasource(CollectionDatasource datasource) { setOptions(datasource == null ? null : new DatasourceOptions(datasource)); }
@Override public void setOptions(Options<V> options) { if (this.optionsBinding != null) { this.optionsBinding.unbind(); this.optionsBinding = null; } if (options != null) { OptionsBinder optionsBinder = beanLocator.get(OptionsBinder.NAME); this.optionsBinding = optionsBinder.bind(options, this, this::setItemsToPresentation); this.optionsBinding.activate(); } }
@Override public void activate() { if (source.getState() == BindingState.ACTIVE) { optionsTarget.setOptions(source.getOptions()); } }
/** * @param optionsList options list */ @SuppressWarnings("unchecked") default void setOptionsList(List optionsList) { setOptions(new ListOptions<>(optionsList)); }
public DatasourceOptions(CollectionDatasource<E, K> datasource) { this.datasource = datasource; this.datasource.addStateChangeListener(this::datasourceStateChanged); this.datasource.addItemPropertyChangeListener(this::datasourceItemPropertyChanged); this.datasource.addCollectionChangeListener(this::datasourceCollectionChanged); CollectionDsHelper.autoRefreshInvalid(datasource, true); if (datasource.getState() == Datasource.State.VALID) { setState(BindingState.ACTIVE); } }
@Override public void setOptions(Options<V> options) { if (this.optionsBinding != null) { this.optionsBinding.unbind(); this.optionsBinding = null; } if (options != null) { OptionsBinder optionsBinder = beanLocator.get(OptionsBinder.NAME); this.optionsBinding = optionsBinder.bind(options, this, this::setItemsToPresentation); this.optionsBinding.activate(); } }
protected void optionsSourceStateChanged(Options.StateChangeEvent event) { if (event.getState() == BindingState.ACTIVE) { optionsTarget.setOptions(source.getOptions()); } }
/** * Sets options from the passed list. * * @param optionsList options * @see ListOptions#of(Object, Object[]) */ default void setOptionsList(List<I> optionsList) { setOptions(new ListOptions<>(optionsList)); }
@Override public void setOptions(Options<I> options) { if (this.optionsBinding != null) { this.optionsBinding.unbind(); this.optionsBinding = null; } if (options != null) { OptionsBinder optionsBinder = beanLocator.get(OptionsBinder.NAME, OptionsBinder.class); this.optionsBinding = optionsBinder.bind(options, this, this::setItemsToPresentation); this.optionsBinding.activate(); } }
@Override public void setOptions(Options<I> options) { if (this.optionsBinding != null) { this.optionsBinding.unbind(); this.optionsBinding = null; } if (options != null) { OptionsBinder optionsBinder = beanLocator.get(OptionsBinder.NAME, OptionsBinder.class); this.optionsBinding = optionsBinder.bind(options, this, this::setItemsToPresentation); this.optionsBinding.activate(); } }
@Override public void setOptions(Options<V> options) { if (this.optionsBinding != null) { this.optionsBinding.unbind(); this.optionsBinding = null; } if (options != null) { OptionsBinder optionsBinder = beanLocator.get(OptionsBinder.NAME); this.optionsBinding = optionsBinder.bind(options, this, this::setItemsToPresentation); this.optionsBinding.activate(); } }