/*******************************************************************************
 * 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.views.tasklist</code>.  For the purpose
 * of testing.
 * </p>
 * @private
 */
public class TaskListTestStub {
	//Prevent instantiation
	private TaskListTestStub(){}
	
	/**
	 * Gives access to an instance of FiltersDialog.
	 * @return FiltersDialog an instance of FiltersDialog.
	 */
/**
 * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public packages.
 * 
	public static FiltersDialog newFiltersDialog(Shell parentShell) {
		return new FiltersDialog(parentShell);
	}
 */
}

