1 package com.proalpha.pds.gitutils.cherrypick;
3 import java.util.Collections;
6 import org.eclipse.core.commands.AbstractHandler;
7 import org.eclipse.core.commands.ExecutionEvent;
8 import org.eclipse.core.commands.ExecutionException;
9 import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode;
10 import org.eclipse.jface.viewers.ISelection;
11 import org.eclipse.jface.viewers.IStructuredSelection;
12 import org.eclipse.jface.window.Window;
13 import org.eclipse.jface.wizard.WizardDialog;
14 import org.eclipse.jgit.lib.Repository;
15 import org.eclipse.swt.widgets.Shell;
16 import org.eclipse.ui.handlers.HandlerUtil;
17 import org.slf4j.Logger;
18 import org.slf4j.LoggerFactory;
20 public class MultiCherryPickHandler<T
extends RepositoryTreeNode<?>> extends AbstractHandler {
22 private final Logger logger = LoggerFactory.getLogger(this.getClass());
25 public Object execute(ExecutionEvent event)
throws ExecutionException {
27 RepositoryTreeNode<?> treenode = (RepositoryTreeNode<?>) getSelectedNodes(event).get(0);
29 Repository repository = treenode.getRepository();
31 WizardDialog wdl =
new WizardDialog(getShell(event), wizz);
32 if (wdl.open() == Window.OK) {
33 logger.debug(
"Ok pressed");
35 logger.debug(
"Cancel pressed");
41 @SuppressWarnings(
"unchecked")
42 public List<T> getSelectedNodes(ExecutionEvent event)
43 throws ExecutionException {
44 ISelection selection = HandlerUtil.getCurrentSelectionChecked(event);
45 if (selection instanceof IStructuredSelection)
46 return ((IStructuredSelection) selection).toList();
48 return Collections.emptyList();
51 public Shell getShell(ExecutionEvent event) {
52 return HandlerUtil.getActiveShell(event);