/******************************************************************************* * Copyright (C) 2010, Mathias Kinzler <mathias.kinzler@sap.com> * * 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.merge; import org.eclipse.egit.ui.Activator; import org.eclipse.egit.ui.UIPreferences; import org.eclipse.egit.ui.internal.UIText; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Shell; /** * Asks the user whether to use the workspace or HEAD */ public class MergeModeDialog extends Dialog { private boolean useWs = false; Button dontAskAgain; /** * @param parentShell */ public MergeModeDialog(Shell parentShell) { super(parentShell); } /** * @return whether the workspace should be used */ public boolean useWorkspace() { return useWs; } @Override protected Control createDialogArea(Composite parent) { Composite main = new Composite(parent, SWT.NONE); main.setLayout(new GridLayout(1, false)); final Button useWorkspace = new Button(main, SWT.RADIO); useWorkspace.setText(UIText.MergeModeDialog_MergeMode_1_Label); useWorkspace.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { useWs = useWorkspace.getSelection(); } }); final Button useHead = new Button(main, SWT.RADIO); useHead.setText(UIText.MergeModeDialog_MergeMode_2_Label); useHead.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { useWs = !useHead.getSelection(); } }); dontAskAgain = new Button(main, SWT.CHECK); dontAskAgain.setText(UIText.MergeModeDialog_DontAskAgainLabel); useWorkspace.setSelection(useWs); useHead.setSelection(!useWs); return main; } @Override protected void okPressed() { boolean save = dontAskAgain.getSelection(); super.okPressed(); if (save) { int value = 1; if (!useWs) value = 2; IPreferenceStore store = Activator.getDefault() .getPreferenceStore(); store.setValue(UIPreferences.MERGE_MODE, value); } } @Override protected void configureShell(Shell newShell) { super.configureShell(newShell); newShell.setText(UIText.MergeModeDialog_DialogTitle); } }