/*******************************************************************************
 * Copyright (c) 2000, 2003 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Common Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.ui.tests.dialogs;

 

/**
 * FOR USE BY TESTS ONLY!
 * <p>
 * Stub class that provides access to classes visible to the package
 * <code>org.eclipse.ui.texteditor</code>.  For the purpose of
 * testing.
 * </p>
 * @private
 */

public class TextEditorTestStub {
	//Prevent instantiation
	private TextEditorTestStub(){}
	
	/**
	 * Gives access to an instance of FindReplaceDialog.
	 * @return FindReplaceDialog an instance of FindReplaceDialog.
	 */
/**
 * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public packages.
 * 
	public static FindReplaceDialog newFindReplaceDialog(Shell parentShell) {
		return new FindReplaceDialog(parentShell);
	}
 */
}

