/* * Created on Apr 6, 2007 Copyright (C) 2001-5, Anthony Harrison anh23@pitt.edu * (jactr.org) This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of the License, * or (at your option) any later version. This library is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See * the GNU Lesser General Public License for more details. You should have * received a copy of the GNU Lesser General Public License along with this * library; if not, write to the Free Software Foundation, Inc., 59 Temple * Place, Suite 330, Boston, MA 02111-1307 USA */ package org.jactr.eclipse.ui.handlers; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; 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.runtime.IAdaptable; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.handlers.HandlerUtil; import org.jactr.eclipse.core.project.ACTRProjectUtils; public class ConvertToACTRProjectHandler extends AbstractHandler { /** * Logger definition */ static private final transient Log LOGGER = LogFactory .getLog(ConvertToACTRProjectHandler.class); public Object execute(ExecutionEvent event) throws ExecutionException { ISelection selection = HandlerUtil.getCurrentSelection(event); IProject project = null; if (selection instanceof IStructuredSelection) { IStructuredSelection sSelection = (IStructuredSelection) selection; Object first = sSelection.getFirstElement(); if (first instanceof IAdaptable) project = (IProject) ((IAdaptable) first).getAdapter(IProject.class); } if (project != null) { if (LOGGER.isDebugEnabled()) LOGGER.debug("Attempting to convert project " + project); try { ACTRProjectUtils.addNature(project); } catch (Exception e) { LOGGER.error("Could not add jactrProject nature", e); } } else LOGGER.error("Could not get project from current selection "); return null; } }