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.core.expressions.IEvaluationContext;
10 import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode;
11 import org.eclipse.jface.viewers.ISelection;
12 import org.eclipse.jface.viewers.IStructuredSelection;
13 import org.eclipse.jface.window.Window;
14 import org.eclipse.jface.wizard.WizardDialog;
15 import org.eclipse.jgit.lib.Repository;
16 import org.eclipse.swt.widgets.Shell;
17 import org.eclipse.ui.ISources;
18 import org.eclipse.ui.handlers.HandlerUtil;
19 import org.slf4j.Logger;
20 import org.slf4j.LoggerFactory;
22 @SuppressWarnings(
"restriction")
23 public class CherryPickHandler<T extends RepositoryTreeNode<?>> extends AbstractHandler {
25 private final Logger logger = LoggerFactory.getLogger(this.getClass());
27 private IEvaluationContext evaluationContext;
30 public Object execute(ExecutionEvent event)
throws ExecutionException {
32 RepositoryTreeNode<?> treenode = (RepositoryTreeNode<?>) getSelectedNodes(event).get(0);
34 Repository repository = treenode.getRepository();
36 WizardDialog wdl =
new WizardDialog(getShell(event), wizz);
37 if (wdl.open() == Window.OK) {
38 logger.debug(
"Ok pressed");
40 logger.debug(
"Cancel pressed");
46 @SuppressWarnings(
"unchecked")
47 protected List<T> getSelectedRepo() {
48 if (evaluationContext !=
null) {
49 Object selection = evaluationContext.getVariable(ISources.ACTIVE_MENU_SELECTION_NAME);
50 if (selection ==
null || !(selection instanceof IStructuredSelection))
51 selection = evaluationContext.getVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME);
52 if (selection instanceof IStructuredSelection) {
53 return ((IStructuredSelection) selection).toList();
59 @SuppressWarnings(
"unchecked")
60 public List<T> getSelectedNodes(ExecutionEvent event)
61 throws ExecutionException {
62 ISelection selection = HandlerUtil.getCurrentSelectionChecked(event);
63 if (selection instanceof IStructuredSelection)
64 return ((IStructuredSelection) selection).toList();
66 return Collections.emptyList();
69 public Shell getShell(ExecutionEvent event) {
70 return HandlerUtil.getActiveShell(event);
74 public void setEnabled(Object evaluationContext) {
75 if (evaluationContext instanceof IEvaluationContext)
76 this.evaluationContext = (IEvaluationContext) evaluationContext;
78 this.evaluationContext =
null;