/******************************************************************************* * Copyright (c) 2013 SAP AG. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Tobias Pfeifer (SAP AG) - initial implementation *******************************************************************************/ package org.eclipse.egit.ui.internal.rebase; import java.util.List; import org.eclipse.jface.window.Window; import org.eclipse.jgit.api.RebaseCommand.InteractiveHandler; import org.eclipse.jgit.lib.RebaseTodoLine; import org.eclipse.ui.PlatformUI; /** * Singleton {@link InteractiveHandler} */ public enum RebaseInteractiveHandler implements InteractiveHandler { /** * Commonly used {@link InteractiveHandler} for (interactive) rebase */ INSTANCE; @Override public String modifyCommitMessage(final String commitMessage) { final String[] result = new String[1]; result[0] = commitMessage; PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() { @Override public void run() { CommitMessageEditorDialog dialog = new CommitMessageEditorDialog( PlatformUI.getWorkbench() .getDisplay().getActiveShell(), commitMessage); if (dialog.open() == Window.OK) { result[0] = dialog.getCommitMessage(); } } }); return result[0]; } @Override public void prepareSteps(List<RebaseTodoLine> steps) { // do not change list of steps here. Instead change the list via // writeRebaseTodoFile of class Repository } }