/******************************************************************************* * Copyright (c) 2010 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.jaxb.ui.internal.actions; import java.util.Iterator; import org.eclipse.core.resources.IFile; import org.eclipse.jface.action.IAction; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ITreeSelection; import org.eclipse.ui.IObjectActionDelegate; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.actions.ActionDelegate; /** * GenerateEntitiesAction */ public abstract class ObjectAction extends ActionDelegate implements IObjectActionDelegate { private ISelection currentSelection; public ObjectAction() { super(); } public void setActivePart(IAction action, IWorkbenchPart targetPart) { // do nothing } @Override public void selectionChanged(IAction action, ISelection selection) { this.currentSelection = selection; } @Override public void run(IAction action) { if (this.currentSelection instanceof ITreeSelection) { for (Iterator stream = ((ITreeSelection) this.currentSelection).iterator(); stream.hasNext(); ) { this.execute(stream.next()); } } } protected void execute(Object selection) { if(selection instanceof IFile) { this.execute((IFile)selection); } } @SuppressWarnings("unused") protected void execute(IFile file) { throw new UnsupportedOperationException(); } }