001: /*******************************************************************************
002: * Copyright (c) 2000, 2006 IBM Corporation and others.
003: * All rights reserved. This program and the accompanying materials
004: * are made available under the terms of the Eclipse Public License v1.0
005: * which accompanies this distribution, and is available at
006: * http://www.eclipse.org/legal/epl-v10.html
007: *
008: * Contributors:
009: * IBM Corporation - initial API and implementation
010: *******************************************************************************/package org.eclipse.jdt.internal.ui.compare;
011:
012: import org.eclipse.core.runtime.Assert;
013:
014: import org.eclipse.jface.action.IMenuManager;
015: import org.eclipse.jface.action.MenuManager;
016:
017: import org.eclipse.ui.actions.ActionGroup;
018: import org.eclipse.ui.PlatformUI;
019: import org.eclipse.jdt.internal.ui.IJavaHelpContextIds;
020: import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor;
021:
022: public class LocalHistoryActionGroup extends ActionGroup {
023:
024: private String fGroupName;
025:
026: private JavaHistoryAction fCompareWith;
027: private JavaHistoryAction fReplaceWithPrevious;
028: private JavaHistoryAction fReplaceWith;
029: private JavaHistoryAction fAddFrom;
030:
031: public LocalHistoryActionGroup(CompilationUnitEditor editor,
032: String groupName) {
033: Assert.isNotNull(groupName);
034: fGroupName = groupName;
035: fCompareWith = new JavaCompareWithEditionAction();
036: fCompareWith
037: .init(
038: editor,
039: CompareMessages.LocalHistoryActionGroup_action_compare_with,
040: CompareMessages.LocalHistoryActionGroup_action_compare_with_title,
041: CompareMessages.LocalHistoryActionGroup_action_compare_with_message);
042: PlatformUI.getWorkbench().getHelpSystem().setHelp(fCompareWith,
043: IJavaHelpContextIds.COMPARE_WITH_HISTORY_ACTION);
044:
045: fReplaceWithPrevious = new JavaReplaceWithPreviousEditionAction();
046: fReplaceWithPrevious
047: .init(
048: editor,
049: CompareMessages.LocalHistoryActionGroup_action_replace_with_previous,
050: CompareMessages.LocalHistoryActionGroup_action_replace_with_previous_title,
051: CompareMessages.LocalHistoryActionGroup_action_replace_with_previous_message);
052: PlatformUI
053: .getWorkbench()
054: .getHelpSystem()
055: .setHelp(
056: fReplaceWithPrevious,
057: IJavaHelpContextIds.REPLACE_WITH_PREVIOUS_FROM_HISTORY_ACTION);
058:
059: fReplaceWith = new JavaReplaceWithEditionAction();
060: fReplaceWith
061: .init(
062: editor,
063: CompareMessages.LocalHistoryActionGroup_action_replace_with,
064: CompareMessages.LocalHistoryActionGroup_action_replace_with_title,
065: CompareMessages.LocalHistoryActionGroup_action_replace_with_message);
066: PlatformUI.getWorkbench().getHelpSystem().setHelp(fReplaceWith,
067: IJavaHelpContextIds.REPLACE_WITH_HISTORY_ACTION);
068:
069: fAddFrom = new JavaAddElementFromHistory();
070: fAddFrom
071: .init(
072: editor,
073: CompareMessages.LocalHistoryActionGroup_action_add,
074: CompareMessages.LocalHistoryActionGroup_action_add_title,
075: CompareMessages.LocalHistoryActionGroup_action_add_message);
076: PlatformUI.getWorkbench().getHelpSystem().setHelp(fAddFrom,
077: IJavaHelpContextIds.ADD_FROM_HISTORY_ACTION);
078: }
079:
080: public void fillContextMenu(IMenuManager menu) {
081: super .fillContextMenu(menu);
082: IMenuManager localMenu = new MenuManager(
083: CompareMessages.LocalHistoryActionGroup_menu_local_history);
084: int added = 0;
085: added += addAction(localMenu, fCompareWith);
086: added += addAction(localMenu, fReplaceWithPrevious);
087: added += addAction(localMenu, fReplaceWith);
088: added += addAction(localMenu, fAddFrom);
089: if (added > 0)
090: menu.appendToGroup(fGroupName, localMenu);
091: }
092:
093: private int addAction(IMenuManager menu, JavaHistoryAction action) {
094: action.update();
095: if (action.isEnabled()) {
096: menu.add(action);
097: return 1;
098: }
099: return 0;
100: }
101: }
|