1 package com.proalpha.pds.gitutils.common;
3 import java.util.ArrayList;
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.swt.SWT;
13 import org.eclipse.swt.widgets.Shell;
14 import org.eclipse.ui.handlers.HandlerUtil;
16 public class OpenMergeToolHandler<T
extends RepositoryTreeNode<?>> extends AbstractHandler {
19 public Object execute(ExecutionEvent event)
throws ExecutionException {
21 com.proalpha.pds.gitutils.common.Repository repository = com.proalpha.pds.gitutils.common.Repository
24 Object repo = getSelectedNodes(event).getFirstElement();
25 if (repo instanceof RepositoryTreeNode) {
26 repository.setRepositoryPath(((RepositoryTreeNode) repo).getRepository().getDirectory());
29 List<String> fileList = repository.getConflictingFiles();
30 if (fileList ==
null) {
31 fileList =
new ArrayList<String>();
34 SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL, repository.getRepositoryPath(), fileList);
40 private IStructuredSelection getSelectedNodes(ExecutionEvent event)
throws ExecutionException {
41 ISelection selection = HandlerUtil.getCurrentSelectionChecked(event);
42 if (selection instanceof IStructuredSelection)
43 return ((IStructuredSelection) selection);