blob: 888001a09e1d904b7e75c5b58e30a2e0e8f0b62f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2005 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.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.util.Assert;
import org.eclipse.ui.actions.ActionGroup;
import org.eclipse.ui.PlatformUI;
import org.eclipse.jdt.internal.ui.IJavaHelpContextIds;
import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor;
public class LocalHistoryActionGroup extends ActionGroup {
private String fGroupName;
private JavaHistoryAction fCompareWith;
private JavaHistoryAction fReplaceWithPrevious;
private JavaHistoryAction fReplaceWith;
private JavaHistoryAction fAddFrom;
public LocalHistoryActionGroup(CompilationUnitEditor editor, String groupName) {
Assert.isNotNull(groupName);
fGroupName= groupName;
fCompareWith= new JavaCompareWithEditionAction();
fCompareWith.init(editor,
CompareMessages.LocalHistoryActionGroup_action_compare_with,
CompareMessages.LocalHistoryActionGroup_action_compare_with_title,
CompareMessages.LocalHistoryActionGroup_action_compare_with_message);
PlatformUI.getWorkbench().getHelpSystem().setHelp(fCompareWith, IJavaHelpContextIds.COMPARE_WITH_HISTORY_ACTION);
fReplaceWithPrevious= new JavaReplaceWithPreviousEditionAction();
fReplaceWithPrevious.init(editor,
CompareMessages.LocalHistoryActionGroup_action_replace_with_previous,
CompareMessages.LocalHistoryActionGroup_action_replace_with_previous_title,
CompareMessages.LocalHistoryActionGroup_action_replace_with_previous_message);
PlatformUI.getWorkbench().getHelpSystem().setHelp(fReplaceWithPrevious, IJavaHelpContextIds.REPLACE_WITH_PREVIOUS_FROM_HISTORY_ACTION);
fReplaceWith= new JavaReplaceWithEditionAction();
fReplaceWith.init(editor,
CompareMessages.LocalHistoryActionGroup_action_replace_with,
CompareMessages.LocalHistoryActionGroup_action_replace_with_title,
CompareMessages.LocalHistoryActionGroup_action_replace_with_message);
PlatformUI.getWorkbench().getHelpSystem().setHelp(fReplaceWith, IJavaHelpContextIds.REPLACE_WITH_HISTORY_ACTION);
fAddFrom= new JavaAddElementFromHistory();
fAddFrom.init(editor,
CompareMessages.LocalHistoryActionGroup_action_add,
CompareMessages.LocalHistoryActionGroup_action_add_title,
CompareMessages.LocalHistoryActionGroup_action_add_message);
PlatformUI.getWorkbench().getHelpSystem().setHelp(fAddFrom, IJavaHelpContextIds.ADD_FROM_HISTORY_ACTION);
}
public void fillContextMenu(IMenuManager menu) {
super.fillContextMenu(menu);
IMenuManager localMenu= new MenuManager(CompareMessages.LocalHistoryActionGroup_menu_local_history);
int added= 0;
added+= addAction(localMenu, fCompareWith);
added+= addAction(localMenu, fReplaceWithPrevious);
added+= addAction(localMenu, fReplaceWith);
added+= addAction(localMenu, fAddFrom);
if (added > 0)
menu.appendToGroup(fGroupName, localMenu);
}
private int addAction(IMenuManager menu, JavaHistoryAction action) {
action.update();
if (action.isEnabled()) {
menu.add(action);
return 1;
}
return 0;
}
}