/* * $Id */ package net.sourceforge.texlipse.actions; import net.sourceforge.texlipse.TexlipsePlugin; import net.sourceforge.texlipse.properties.TexlipseProperties; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IncrementalProjectBuilder; import org.eclipse.core.runtime.CoreException; import org.eclipse.jface.action.IAction; import org.eclipse.jface.viewers.ISelection; import org.eclipse.ui.IEditorActionDelegate; import org.eclipse.ui.IEditorPart; /** * Forces a (partial) rebuild of the current project * @author Boris von Loesch * */ public class ForceRebuildAction implements IEditorActionDelegate { private IEditorPart editor; public void setActiveEditor(IAction action, IEditorPart targetEditor) { editor = targetEditor; } public void run(IAction action) { IResource res = (IResource) editor.getEditorInput().getAdapter(IResource.class); if (res == null) return; IProject project = res.getProject(); TexlipseProperties.setSessionProperty(project, TexlipseProperties.FORCED_REBUILD, true); try { project.getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, null); } catch (CoreException e) { TexlipsePlugin.log("Force rebuild CoreException", e); } TexlipseProperties.setSessionProperty(project, TexlipseProperties.FORCED_REBUILD, null); } public void selectionChanged(IAction action, ISelection selection) { //Nothing to do } }