/*******************************************************************************
 * Copyright (c) 2006, 2008 Oracle. 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:
 *     Oracle - initial API and implementation
 ******************************************************************************/
package org.eclipse.jpt.jpa.ui.internal.selection;

import org.eclipse.jpt.jpa.ui.internal.views.JpaDetailsView;


public class JpaDetailsSelectionParticipant
	implements JpaSelectionParticipant 
{
	private final JpaDetailsView detailsView;
	
	
	public JpaDetailsSelectionParticipant(JpaDetailsView detailsView) {
		super();
		this.detailsView = detailsView;
	}

	public JpaSelection getSelection() {
		return this.detailsView.getSelection();
	}

	public void selectionChanged(JpaSelectionEvent evt) {
		this.detailsView.select(evt.getSelection());
	}

	public boolean disposeOnHide() {
		return false;
	}

	public void dispose() {
		// NOP
	}

}
