/******************************************************************************* * Copyright (C) 2007, Dave Watson <dwatson@mimvista.com> * Copyright (C) 2007, Robin Rosenberg <robin.rosenberg@dewire.com> * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org> * Copyright (C) 2010, Chris Aniszczyk <caniszczyk@gmail.com> * Copyright (C) 2010, Mathias Kinzler <mathias.kinzler@sap.com> * Copyright (C) 2011, Dariusz Luksza <dariusz@luksza.org> * Copyright (C) 2016, Thomas Wolf <thomas.wolf@paranor.ch> * * 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 *******************************************************************************/ package org.eclipse.egit.ui.internal.dialogs; import org.eclipse.egit.ui.internal.UIText; import org.eclipse.jface.window.Window; import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Ref; import org.eclipse.jgit.lib.Repository; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.PlatformUI; /** * The branch and reset selection dialog */ public class RenameBranchDialog extends AbstractBranchSelectionDialog { /** * Construct a dialog to select a branch to reset to or check out * * @param parentShell * @param repo */ public RenameBranchDialog(Shell parentShell, Repository repo) { super(parentShell, repo, SHOW_LOCAL_BRANCHES | SHOW_REMOTE_BRANCHES | EXPAND_LOCAL_BRANCHES_NODE); } @Override protected void okPressed() { final Ref toRename = refFromDialog(); if (toRename != null) { PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { @Override public void run() { BranchRenameDialog dialog = new BranchRenameDialog( PlatformUI.getWorkbench().getActiveWorkbenchWindow() .getShell(), repo, toRename); dialog.open(); } }); } super.okPressed(); } @Override protected void createButtonsForButtonBar(Composite parent) { super.createButtonsForButtonBar(parent); getButton(Window.OK).setText( UIText.RenameBranchDialog_RenameButtonLabel); // can't advance without a selection getButton(Window.OK).setEnabled(!branchTree.getSelection().isEmpty()); } /** * @return the message shown above the refs tree */ @Override protected String getMessageText() { return UIText.RenameBranchDialog_DialogMessage; } /** * Subclasses may add UI elements * * @param parent */ @Override protected void createCustomArea(Composite parent) { // do nothing } /** * Subclasses may change the title of the dialog * * @return the title of the dialog */ @Override protected String getTitle() { return UIText.RenameBranchDialog_DialogTitle; } @Override protected String getWindowTitle() { return UIText.RenameBranchDialog_WindowTitle; } @Override protected int getShellStyle() { return super.getShellStyle() | SWT.RESIZE; } @Override protected void refNameSelected(String refName) { boolean branchSelected = refName != null && (refName.startsWith(Constants.R_HEADS) || refName .startsWith(Constants.R_REMOTES)); getButton(Window.OK).setEnabled(branchSelected); } }