blob: d226cac3f33cb231e2f90abef097c37f8aba64a4 [file] [log] [blame]
/***************************************************************************************************
* Copyright (c) 2005 Eteration A.S. 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
* https://www.eclipse.org/legal/epl-2.0/
*
* Contributors: Eteration A.S. - initial API and implementation
**************************************************************************************************/
package org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.action;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceVisitor;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
import org.eclipse.ui.actions.ActionDelegate;
public abstract class XDocletActionDelegate extends ActionDelegate {
public static final String BUILDERID = "org.eclipse.jst.j2ee.ejb.annotations.xdoclet.xdocletbuilder";
protected IProject project;
protected IFile aFile = null;
class SourceFinder implements IResourceVisitor {
IFile sourceFile = null;
public boolean visit(IResource resource) throws org.eclipse.core.runtime.CoreException {
if (sourceFile != null)
return false;
if (resource instanceof IFile) {
sourceFile = (IFile) resource;
return false;
}
return true;
}
public IFile getSourceFile() {
return sourceFile;
}
}
public void selectionChanged(IAction action, ISelection selection) {
super.selectionChanged(action, selection);
if (selection == null)
return;
if (selection instanceof IStructuredSelection) {
Object firstSelection = ((IStructuredSelection) selection).getFirstElement();
if (firstSelection instanceof IProject)
project = (IProject) firstSelection;
if (firstSelection instanceof IFile) {
aFile = (IFile) firstSelection;
project = aFile.getProject();
}
}
}
public IProject getProject() {
return project;
}
protected IFile getFirstSourceFile() {
IFolder resource = (IFolder) J2EEProjectUtilities.getSourceFolderOrFirst(project, null);
SourceFinder finder = new SourceFinder();
try {
if (resource != null)
resource.accept(finder);
} catch (CoreException e) {
}
return finder.getSourceFile();
}
public IFile getFile() {
return aFile;
}
}