Package: RemoveSourceFolderFromBuildPathCommandHandler$1

RemoveSourceFolderFromBuildPathCommandHandler$1

nameinstructionbranchcomplexitylinemethod
run(IProgressMonitor)
M: 20 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 5 C: 0
0%
M: 1 C: 0
0%
{...}
M: 10 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /*
2: * #%~
3: * org.overture.ide.ui
4: * %%
5: * Copyright (C) 2008 - 2014 Overture
6: * %%
7: * This program is free software: you can redistribute it and/or modify
8: * it under the terms of the GNU General Public License as
9: * published by the Free Software Foundation, either version 3 of the
10: * License, or (at your option) any later version.
11: *
12: * This program is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15: * GNU General Public License for more details.
16: *
17: * You should have received a copy of the GNU General Public
18: * License along with this program. If not, see
19: * <http://www.gnu.org/licenses/gpl-3.0.html>.
20: * #~%
21: */
22: package org.overture.ide.ui.handlers;
23:
24: import org.eclipse.core.commands.AbstractHandler;
25: import org.eclipse.core.commands.ExecutionEvent;
26: import org.eclipse.core.commands.ExecutionException;
27: import org.eclipse.core.resources.IContainer;
28: import org.eclipse.core.resources.IProject;
29: import org.eclipse.core.resources.IncrementalProjectBuilder;
30: import org.eclipse.core.runtime.CoreException;
31: import org.eclipse.core.runtime.IProgressMonitor;
32: import org.eclipse.core.runtime.IStatus;
33: import org.eclipse.core.runtime.Status;
34: import org.eclipse.core.runtime.jobs.Job;
35: import org.eclipse.jface.viewers.IStructuredSelection;
36: import org.eclipse.ui.handlers.HandlerUtil;
37: import org.overture.ide.core.resources.IVdmProject;
38: import org.overture.ide.ui.IVdmUiConstants;
39: import org.overture.ide.ui.VdmUIPlugin;
40:
41: public class RemoveSourceFolderFromBuildPathCommandHandler extends
42:                 AbstractHandler
43: {
44:
45:         public Object execute(ExecutionEvent event) throws ExecutionException
46:         {
47:                 IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelectionChecked(event);
48:                 final IContainer c = (IContainer) selection.getFirstElement();
49:
50:                 final IProject project = c.getProject();
51:
52:                 final IVdmProject vdmProject = (IVdmProject) project.getAdapter(IVdmProject.class);
53:                 if (vdmProject != null)
54:                 {
55:                         vdmProject.getModelBuildPath().remove(c);
56:                         try
57:                         {
58:                                 vdmProject.getModelBuildPath().save();
59:                                 vdmProject.getModel().clean();
60:                                 Job job = new Job("Rebuild")
61:                                 {
62:
63:                                         @Override
64:                                         protected IStatus run(IProgressMonitor monitor)
65:                                         {
66:                                                 try
67:                                                 {
68:                                                         project.build(IncrementalProjectBuilder.FULL_BUILD, monitor);
69:                                                 } catch (CoreException e)
70:                                                 {
71:                                                         VdmUIPlugin.log("Faild to save model path changed", e);
72:                                                         return new Status(IStatus.ERROR, IVdmUiConstants.PLUGIN_ID, "Faild to rebuild after model path removed", e);
73:                                                 }
74:                                                 return Status.OK_STATUS;
75:                                         }
76:                                 };
77:                                 job.schedule();
78:                         } catch (CoreException e)
79:                         {
80:                                 VdmUIPlugin.log("Faild to save model path changed", e);
81:                         }
82:                 }
83:                 return null;
84:         }
85:
86: }