/*
 * (c) Copyright IBM Corp. 2000, 2001.
 * All Rights Reserved.
 */
package org.eclipse.compare.internal;

import org.eclipse.swt.widgets.Composite;

import org.eclipse.jface.viewers.Viewer;
import org.eclipse.compare.CompareConfiguration;

/**
 * A factory object for creating a <code>Viewer</code>s from a descriptor.
 * <p>
 * It is used when registering a viewer for a specific type
 * in <code>CompareUIPlugin.registerContentViewerDescriptor</code> and
 * in <code>CompareUIPlugin.registerStructureViewerDescriptor</code>.
 *
 * @see org.eclipse.compare.structuremergeviewer.IStructureCreator
 * @see CompareUIPlugin
 */
public interface IViewerDescriptor {

	/**
	 * Creates a new viewer from this descriptor under the given STW parent control.
	 * If the current viewer has the same type as a new viewer
	 * the implementation of this method is free to return the current viewer instead.
	 *
	 * @param currentViewer the current viewer which is going to be replaced with a new viewer.
	 * @param parent the SWT parent control under which the new viewer has to be created.
	 * @param config a compare configuration the new viewer might be interested in.
	 * @return a new viewer or the current viewer.
	 */
	Viewer createViewer(Viewer currentViewer, Composite parent, CompareConfiguration config);
}
