Package: AddSourceFolderToBuildPathCommandHandler$1

AddSourceFolderToBuildPathCommandHandler$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 AddSourceFolderToBuildPathCommandHandler extends AbstractHandler
42: {
43:
44:         public Object execute(ExecutionEvent event) throws ExecutionException
45:         {
46:                 IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelectionChecked(event);
47:                 final IContainer c = (IContainer) selection.getFirstElement();
48:
49:                 final IProject project = c.getProject();
50:
51:                 final IVdmProject vdmProject = (IVdmProject) project.getAdapter(IVdmProject.class);
52:                 if (vdmProject != null)
53:                 {
54:                         vdmProject.getModelBuildPath().add(c);
55:                         try
56:                         {
57:                                 vdmProject.getModelBuildPath().save();
58:                                 vdmProject.getModel().clean();
59:                                 Job job = new Job("Rebuild")
60:                                 {
61:
62:                                         @Override
63:                                         protected IStatus run(IProgressMonitor monitor)
64:                                         {
65:                                                 try
66:                                                 {
67:                                                         project.build(IncrementalProjectBuilder.FULL_BUILD, monitor);
68:                                                 } catch (CoreException e)
69:                                                 {
70:                                                         VdmUIPlugin.log("Faild to save model path changed", e);
71:                                                         return new Status(IStatus.ERROR, IVdmUiConstants.PLUGIN_ID, "Faild to rebuild after model path added", e);
72:                                                 }
73:                                                 return Status.OK_STATUS;
74:                                         }
75:                                 };
76:                                 job.schedule();
77:
78:                         } catch (CoreException e)
79:                         {
80:                                 VdmUIPlugin.log("Faild to save model path changed", e);
81:                         }
82:                 }
83:                 return null;
84:         }
85:
86: }