/* * Copyright (c) 2010-2012 Research In Motion Limited. All rights reserved. * * This program and the accompanying materials are made available * under the terms of the Eclipse Public License, Version 1.0, * which accompanies this distribution and is available at * * http://www.eclipse.org/legal/epl-v10.html * */ package net.rim.ejde.internal.menu; import java.util.HashSet; import net.rim.ejde.internal.core.ContextManager; import net.rim.ejde.internal.model.BlackBerryProject; import net.rim.ejde.internal.model.preferences.SignatureToolPreferences; import net.rim.ejde.internal.packaging.PackagingJob; import net.rim.ejde.internal.packaging.PackagingJobWrapper; import net.rim.ejde.internal.util.Messages; import net.rim.ejde.internal.util.ProjectUtils; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.IWorkingSet; import org.eclipse.ui.IWorkingSetManager; import org.eclipse.ui.dialogs.IWorkingSetSelectionDialog; public class PackageWorkingSetCommandHandler extends AbstractHandler { @Override public Object execute( ExecutionEvent event ) throws ExecutionException { IWorkingSet[] workingSets = getWorkingSet(); HashSet< BlackBerryProject > projects = ProjectUtils.extractBBProjects( workingSets ); PackagingJobWrapper job = new PackagingJobWrapper( Messages.PackagingJob_Name, projects, SignatureToolPreferences.getRunSignatureToolAutomatically() ? PackagingJob.SIGN_IF_NECESSARY : PackagingJob.SIGN_NO ); job.setUser( true ); job.schedule(); return null; } private IWorkingSet[] getWorkingSet() { IWorkbenchWindow window = ContextManager.getActiveWorkbenchWindow(); IWorkingSetManager manager = window.getWorkbench().getWorkingSetManager(); IWorkingSetSelectionDialog dialog = manager.createWorkingSetSelectionDialog( window.getShell(), false ); dialog.open(); IWorkingSet[] sets = dialog.getSelection(); // check for cancel if( sets == null || sets.length == 0 ) { return null; } return sets; } }