@Override public void update(IChildrenUpdate[] updates) { // See if we can delegate to a model specific content provider Map<IElementContentProvider, List<IViewerUpdate>> delegateMap = new HashMap<>(); List<IViewerUpdate> notDelegated = new ArrayList<>(); findDelegates(delegateMap, notDelegated, updates); // Batch the updates and send them to the delegates for (IElementContentProvider delegate : delegateMap.keySet()) { List<IViewerUpdate> updateList = delegateMap.get(delegate); delegate.update(updateList.toArray(new IChildrenUpdate[updateList.size()])); } if (notDelegated.size() > 0){ super.update(notDelegated.toArray(new IChildrenUpdate[notDelegated.size()])); } }
@Override public void update(IChildrenCountUpdate[] updates) { // See if we can delegate to a model specific content provider Map<IElementContentProvider, List<IViewerUpdate>> delegateMap = new HashMap<>(); List<IViewerUpdate> notDelegated = new ArrayList<>(); findDelegates(delegateMap, notDelegated, updates); // Batch the updates and send them to the delegates for (IElementContentProvider delegate : delegateMap.keySet()) { List<IViewerUpdate> updateList = delegateMap.get(delegate); delegate.update(updateList.toArray(new IChildrenCountUpdate[updateList.size()])); } if (notDelegated.size() > 0){ super.update(notDelegated.toArray(new IChildrenCountUpdate[notDelegated.size()])); } }
@Override public void update(IHasChildrenUpdate[] updates) { // See if we can delegate to a model specific content provider Map<IElementContentProvider, List<IViewerUpdate>> delegateMap = new HashMap<>(); List<IViewerUpdate> notDelegated = new ArrayList<>(); findDelegates(delegateMap, notDelegated, updates); // Batch the updates and send them to the delegates for (IElementContentProvider delegate : delegateMap.keySet()) { List<IViewerUpdate> updateList = delegateMap.get(delegate); delegate.update(updateList.toArray(new IHasChildrenUpdate[updateList.size()])); } if (notDelegated.size() > 0){ super.update(notDelegated.toArray(new IHasChildrenUpdate[notDelegated.size()])); } }