diff --git a/io.sloeber.ui/src/io/sloeber/ui/actions/BuildHandler.java b/io.sloeber.ui/src/io/sloeber/ui/actions/BuildHandler.java index ad59d8150..bc5a30b6b 100644 --- a/io.sloeber.ui/src/io/sloeber/ui/actions/BuildHandler.java +++ b/io.sloeber.ui/src/io/sloeber/ui/actions/BuildHandler.java @@ -18,16 +18,12 @@ /** * This id a handler to connect the plugin.xml to the code for building the code * This method forces a save all before building - * + * * @author jan - * + * */ class BuildJobHandler extends Job { - IProject myBuildProject = null; - - public BuildJobHandler(String name) { - super(name); - } + IProject myBuildProject = null; public BuildJobHandler(IProject buildProject) { super(Messages.BuildHandler_Build_Code_of_project + buildProject.getName()); @@ -39,6 +35,12 @@ protected IStatus run(IProgressMonitor monitor) { Sketch.verify(this.myBuildProject, monitor); return Status.OK_STATUS; } + + @Override + public boolean belongsTo(Object family) { + return myBuildProject.equals(family); + } + } public class BuildHandler extends AbstractHandler { @@ -57,8 +59,9 @@ public Object execute(ExecutionEvent event) throws ExecutionException { break; default: PlatformUI.getWorkbench().saveAllEditors(false); - for (int curProject = 0; curProject < SelectedProjects.length; curProject++) { - this.mBuildJob = new BuildJobHandler(SelectedProjects[curProject]); + for (IProject selectedProject : SelectedProjects) { + Job.getJobManager().cancel(selectedProject); + this.mBuildJob = new BuildJobHandler(selectedProject); this.mBuildJob.setPriority(Job.INTERACTIVE); this.mBuildJob.schedule(); } diff --git a/io.sloeber.ui/src/io/sloeber/ui/actions/UploadProjectHandler.java b/io.sloeber.ui/src/io/sloeber/ui/actions/UploadProjectHandler.java index 462820d9d..b4db5f65a 100644 --- a/io.sloeber.ui/src/io/sloeber/ui/actions/UploadProjectHandler.java +++ b/io.sloeber.ui/src/io/sloeber/ui/actions/UploadProjectHandler.java @@ -51,14 +51,19 @@ public void run() { Sketch.upload(UploadJobHandler.this.myBuildProject); return Status.OK_STATUS; } + + @Override + public boolean belongsTo(Object family) { + return myBuildProject.equals(family); + } } /** * This is a handler to connect the plugin.xml to the code for uploading code to * arduino teensy .. - * + * * @author jan - * + * */ public class UploadProjectHandler extends AbstractHandler { @@ -90,6 +95,7 @@ public Object execute(ExecutionEvent event) throws ExecutionException { public static void uploadProject(IProject project) { PlatformUI.getWorkbench().saveAllEditors(false); + Job.getJobManager().cancel(project); Job mBuildJob = new UploadJobHandler(project); mBuildJob.setPriority(Job.INTERACTIVE); mBuildJob.schedule();