package com.mobilesorcery.sdk.capabilities.ui; import java.util.List; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.ui.handlers.HandlerUtil; import com.mobilesorcery.sdk.capabilities.core.CapabilitiesPlugin; import com.mobilesorcery.sdk.capabilities.core.ICapabilitiesAnalyzer; import com.mobilesorcery.sdk.capabilities.core.ICapabilitiesMatcher; import com.mobilesorcery.sdk.ui.MoSyncCommandHandler; public class PerformCapabilitiesAnalysisHandler extends MoSyncCommandHandler { public PerformCapabilitiesAnalysisHandler() { } public Object execute(ExecutionEvent event) throws ExecutionException { try { List<IResource> projects = extractResources(HandlerUtil.getCurrentSelection(event), IResource.PROJECT); ICapabilitiesAnalyzer analyzer = CapabilitiesPlugin.getDefault().createAnalyzer(); ICapabilitiesMatcher matcher = CapabilitiesPlugin.getDefault().getMatcher(); CapabilitiesJob job = new CapabilitiesJob(HandlerUtil.getActiveShell(event), analyzer, matcher, projects.toArray(new IProject[0])); job.setUser(true); job.schedule(); } catch (Exception e) { throw new ExecutionException(e.getMessage(), e); } return null; } }