/** * Adds a {@link FeatureEventListener} to all the {@link AdapterViewTypeDelegate} returned by * {@link #getAdapterViewTypeDelegates()}. * * @param featureEventListener the listener to be added. */ public void addFeatureEventListener(FeatureEventListener featureEventListener) { featureEventSource.addFeatureEventListener(featureEventListener); for (AdapterViewTypeDelegate adapterViewTypeDelegate : getAdapterViewTypeDelegates()) { adapterViewTypeDelegate.addFeatureEventListener(featureEventListener); } }
/** * Removes a {@link FeatureEventListener} from all the {@link AdapterViewTypeDelegate} returned by * {@link #getAdapterViewTypeDelegates()}. * * @param featureEventListener the listener to be removed. */ public void removeFeatureEventListener(FeatureEventListener featureEventListener) { featureEventSource.removeFeatureEventListener(featureEventListener); for (AdapterViewTypeDelegate adapterViewTypeDelegate : getAdapterViewTypeDelegates()) { adapterViewTypeDelegate.removeFeatureEventListener(featureEventListener); } }
private void registerAdapterViewTypeDelegates(List<FeatureController<MODEL>> featureControllers) { for (FeatureController<MODEL> featureController : featureControllers) { for (AdapterViewTypeDelegate delegate : featureController.getAdapterViewTypeDelegates()) { // assign unique view type delegate.setViewType(mapViewTypeToAdapterViewTypeDelegate.size()); // register delegate mapViewTypeToAdapterViewTypeDelegate.put(delegate.getViewType(), delegate); // register item comparator mapViewTypeToItemComparator.put( delegate.getViewType(), delegate.createDiffUtilComparator()); } } }