/** * Copyright (c) 2014 - 2017 Frank Appel * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Frank Appel - initial API and implementation */ package com.codeaffine.eclipse.ui.progress; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.ui.progress.IElementCollector; class ElementCollector implements IElementCollector { private final PendingUpdatePlaceHolder placeHolder; private final DeferredContentManager contentManager; private final Object parent; ElementCollector( DeferredContentManager contentManager, Object parent, PendingUpdatePlaceHolder placeHolder ) { this.contentManager = contentManager; this.placeHolder = placeHolder; this.parent = parent; } @Override public void add( Object element, IProgressMonitor monitor ) { add( new Object[] { element }, monitor ); } @Override public void add( Object[] elements, IProgressMonitor monitor ) { contentManager.addChildren( parent, elements ); } @Override public void done() { contentManager.clearPlaceholder( placeHolder ); } }