package com.aptana.rdt.internal.rake.actions; import java.text.MessageFormat; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.action.Action; import com.aptana.rdt.rake.IRakeHelper; import com.aptana.rdt.rake.RakePlugin; public class RunRakeAction extends Action { private IProject project; private String task; private String description; public RunRakeAction(IProject project, String task, String description) { this.project = project; this.task = task; this.description = description; } @Override public void run() { Job job = new Job(MessageFormat.format("Running rake task {0}", task)) { @Override protected IStatus run(IProgressMonitor monitor) { getRakeHelper().runRakeTask(project, task, "", monitor); return Status.OK_STATUS; } }; job.setUser(true); job.schedule(); } protected IRakeHelper getRakeHelper() { return RakePlugin.getDefault().getRakeHelper(); } @Override public String getText() { String[] parts = task.split(":"); return parts[parts.length - 1]; } @Override public String getToolTipText() { return description; } }