Bug 271799 Replace IBackgroundRunner/IRunnableWithProgress with equinox.concurrent APIs
These basic abstractions of "something I want to run", and "someone who can run things" tend to get reinvented in various components. We should consolidate on the simple low level Equinox APIs for consistency.
examples/org.eclipse.e4.demo.e4photo/src/org/eclipse/e4/demo/e4photo/Thumbnails.java
import java.util.List;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.e4.core.services.IBackgroundRunner;
import org.eclipse.e4.core.services.context.IEclipseContext;
import org.eclipse.e4.demo.e4photo.annotations.In;
import org.eclipse.e4.ui.services.IServiceConstants;
import org.eclipse.e4.ui.services.IStylingEngine;
import org.eclipse.nebula.widgets.gallery.DefaultGalleryItemRenderer;
import org.eclipse.nebula.widgets.gallery.Gallery;
import org.eclipse.nebula.widgets.gallery.GalleryItem;
import org.eclipse.nebula.widgets.gallery.NoGroupRenderer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTException;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.program.Program;
import org.eclipse.swt.widgets.Composite;
public class Thumbnails {
	private Gallery gallery;
	private GalleryItem group;
	private final IEclipseContext outputContext;
	private final IBackgroundRunner backgroundRunner;
	private IContainer input;