/*******************************************************************************
 * Copyright (c) 2004-2008 Istvan Rath and Daniel Varro
 * 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:
 *    Istvan Rath - initial API and implementation
 *******************************************************************************/

 package org.eclipse.viatra2.treeeditor.actions;

import org.eclipse.swt.widgets.Event;
import org.eclipse.viatra2.treeeditor.ViatraTreeEditor;




public abstract class ViatraRetargetAction extends org.eclipse.ui.actions.RetargetAction {

	protected ViatraTreeEditor iVTE;
	
	public ViatraRetargetAction(String actionID, String text) {
		super(actionID, text);
	}
	
	public void updateSelf(ViatraTreeEditor vte) {
		iVTE = vte;
	}

	
	@Override
	public void runWithEvent(Event event) {
		run();
	}

}
