Restructured Mograsim project nature and introduced project context
[Mograsim.git] / plugins / net.mograsim.plugin.core / src / net / mograsim / plugin / nature / AddRemoveMograsimNatureHandler.java
diff --git a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/nature/AddRemoveMograsimNatureHandler.java b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/nature/AddRemoveMograsimNatureHandler.java
deleted file mode 100644 (file)
index e8b38e9..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-package net.mograsim.plugin.nature;
-
-import java.util.Iterator;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-public class AddRemoveMograsimNatureHandler extends AbstractHandler
-{
-       @Override
-       public Object execute(ExecutionEvent event) throws ExecutionException
-       {
-               ISelection selection = HandlerUtil.getCurrentSelection(event);
-               //
-               if (selection instanceof IStructuredSelection)
-               {
-                       for (Iterator<?> it = ((IStructuredSelection) selection).iterator(); it.hasNext();)
-                       {
-                               Object element = it.next();
-                               IProject project = null;
-                               if (element instanceof IProject)
-                               {
-                                       project = (IProject) element;
-                               } else if (element instanceof IAdaptable)
-                               {
-                                       project = ((IAdaptable) element).getAdapter(IProject.class);
-                               }
-                               if (project != null)
-                               {
-                                       try
-                                       {
-                                               toggleNature(project);
-                                       }
-                                       catch (CoreException e)
-                                       {
-                                               // TODO log something
-                                               throw new ExecutionException("Failed to toggle nature", e);
-                                       }
-                               }
-                       }
-               }
-
-               return null;
-       }
-
-       /**
-        * Toggles sample nature on a project
-        *
-        * @param project to have sample nature added or removed
-        */
-       private void toggleNature(IProject project) throws CoreException
-       {
-               IProjectDescription description = project.getDescription();
-               String[] natures = description.getNatureIds();
-
-               for (int i = 0; i < natures.length; ++i)
-               {
-                       if (MograsimNature.NATURE_ID.equals(natures[i]))
-                       {
-                               // Remove the nature
-                               String[] newNatures = new String[natures.length - 1];
-                               System.arraycopy(natures, 0, newNatures, 0, i);
-                               System.arraycopy(natures, i + 1, newNatures, i, natures.length - i - 1);
-                               description.setNatureIds(newNatures);
-                               project.setDescription(description, null);
-                               return;
-                       }
-               }
-
-               // Add the nature
-               String[] newNatures = new String[natures.length + 1];
-               System.arraycopy(natures, 0, newNatures, 0, natures.length);
-               newNatures[natures.length] = MograsimNature.NATURE_ID;
-               description.setNatureIds(newNatures);
-               project.setDescription(description, null);
-       }
-}
\ No newline at end of file