/*******************************************************************************
 * Copyright (c) 2008,2011 IBM Corporation and others.
 * 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:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.stem.ui.wizards;

import org.eclipse.core.resources.IProject;
import org.eclipse.stem.core.logger.Logger;
import org.eclipse.stem.ui.adapters.loggerpropertyeditor.LoggerPropertyEditor;
import org.eclipse.stem.ui.adapters.loggerpropertyeditor.SimulationLoggerPropertyEditorAdapter;
import org.eclipse.swt.events.ModifyListener;

public class CSVLoggerPropertyEditorAdapter extends
		SimulationLoggerPropertyEditorAdapter {

	@Override
	public LoggerPropertyEditor createLoggerPropertyEditor(
			final LoggerPropertyComposite loggerPropertyComposite,
			final int style, final ModifyListener projectValidator, IProject project) {
		return new CSVLoggerPropertyEditor(
				loggerPropertyComposite, style,
				(Logger) getTarget(), projectValidator, project);
	}

}
