blob: 6024fcf9c3dacef09550d4d711d7031c459424c4 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2011 IBM Corporation and others.
* 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.internal.ui.compare;
import org.eclipse.team.ui.TeamUI;
import org.eclipse.team.ui.history.HistoryPageCompareEditorInput;
import org.eclipse.core.resources.IFile;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.PlatformUI;
import org.eclipse.compare.CompareConfiguration;
import org.eclipse.compare.CompareUI;
import org.eclipse.jdt.core.IMember;
import org.eclipse.jdt.internal.ui.IJavaHelpContextIds;
/**
* Provides "Replace from local history" for Java elements.
*/
class JavaCompareWithEditionActionImpl extends JavaHistoryActionImpl {
private static boolean USE_MODAL_COMPARE = false;
JavaCompareWithEditionActionImpl() {
super(false);
}
@Override
public void run(ISelection selection) {
IMember input= getEditionElement(selection);
if (input == null) {
MessageDialog.openInformation(getShell(), CompareMessages.CompareWithHistory_title, CompareMessages.CompareWithHistory_invalidSelectionMessage);
return;
}
JavaElementHistoryPageSource pageSource = JavaElementHistoryPageSource.getInstance();
final IFile file= pageSource.getFile(input);
if (file == null) {
MessageDialog.openError(getShell(), CompareMessages.CompareWithHistory_title, CompareMessages.CompareWithHistory_internalErrorMessage);
return;
}
if (USE_MODAL_COMPARE) {
CompareConfiguration cc = new CompareConfiguration();
cc.setLeftEditable(false);
cc.setRightEditable(false);
HistoryPageCompareEditorInput ci = new HistoryPageCompareEditorInput(cc, pageSource, input);
ci.setTitle(CompareMessages.JavaCompareWithEditionActionImpl_0);
ci.setHelpContextId(IJavaHelpContextIds.COMPARE_ELEMENT_WITH_HISTORY_DIALOG);
CompareUI.openCompareDialog(ci);
} else {
TeamUI.showHistoryFor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(), input, pageSource);
}
}
}