/******************************************************************************* * 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.ui.actions; import java.util.Iterator; import org.eclipse.core.runtime.Assert; import org.eclipse.jface.action.GroupMarker; import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.IActionBars; import org.eclipse.ui.IWorkbenchSite; import org.eclipse.ui.IWorkingSet; import org.eclipse.ui.actions.ActionGroup; import org.eclipse.ui.texteditor.ITextEditorActionConstants; import org.eclipse.jdt.ui.IContextMenuConstants; import org.eclipse.jdt.ui.PreferenceConstants; import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor; import org.eclipse.jdt.internal.ui.search.SearchMessages; import org.eclipse.jdt.internal.ui.search.SearchUtil; /** * Action group that adds the search for implementors actions to a * context menu and the global menu bar. * *
* This class may be instantiated; it is not intended to be subclassed. *
* * @since 2.0 * * @noextend This class is not intended to be subclassed by clients. */ public class ImplementorsSearchGroup extends ActionGroup { private static final String MENU_TEXT= SearchMessages.group_implementors; public IWorkbenchSite fSite; public JavaEditor fEditor; private IActionBars fActionBars; public String fGroupId; public FindImplementorsAction fFindImplementorsAction; public FindImplementorsInProjectAction fFindImplementorsInProjectAction; public FindImplementorsInWorkingSetAction fFindImplementorsInWorkingSetAction; /** * Creates a newImplementorsSearchGroup
. The group
* requires that the selection provided by the site's selection provider
* is of type org.eclipse.jface.viewers.IStructuredSelection
.
*
* @param site the view part that owns this action group
*/
public ImplementorsSearchGroup(IWorkbenchSite site) {
this(site, null);
}
/**
* Creates a new ImplementorsSearchGroup
. The group requires
* that the selection provided by the given selection provider is of type
* {@link IStructuredSelection}.
*
* @param site the site that will own the action group.
* @param specialSelectionProvider the selection provider used instead of the
* sites selection provider.
*
* @since 3.4
*/
public ImplementorsSearchGroup(IWorkbenchSite site, ISelectionProvider specialSelectionProvider) {
fSite= site;
fGroupId= IContextMenuConstants.GROUP_SEARCH;
fFindImplementorsAction= new FindImplementorsAction(site);
fFindImplementorsAction.generated_3436703268163862170(this, site, specialSelectionProvider);
}
/**
* Note: This constructor is for internal use only. Clients should not call this constructor.
* @param editor the Java editor
*
* @noreference This constructor is not intended to be referenced by clients.
*/
public ImplementorsSearchGroup(JavaEditor editor) {
fEditor= editor;
fEditor.generated_7483014531865587339(this); //$NON-NLS-1$
}
void registerAction(SelectionDispatchAction action, ISelectionProvider provider, ISelection selection, ISelectionProvider specialSelectionProvider) {
action.generated_8075392342323061175(provider, selection, specialSelectionProvider);
}
void addAction(IAction action, IMenuManager manager) {
if (action.isEnabled()) {
manager.add(action);
}
}
private void addWorkingSetAction(IWorkingSet[] workingSets, IMenuManager manager) {
FindAction action;
if (fEditor != null)
action= new WorkingSetFindAction(fEditor, new FindImplementorsInWorkingSetAction(fEditor, workingSets), SearchUtil.toString(workingSets));
else
action= new WorkingSetFindAction(fSite, new FindImplementorsInWorkingSetAction(fSite, workingSets), SearchUtil.toString(workingSets));
action.generated_7641763968768104972(manager, this);
}
/* (non-Javadoc)
* Method declared on ActionGroup.
*/
@Override
public void fillContextMenu(IMenuManager manager) {
MenuManager javaSearchMM= new MenuManager(MENU_TEXT, IContextMenuConstants.GROUP_SEARCH);
addAction(fFindImplementorsAction, javaSearchMM);
addAction(fFindImplementorsInProjectAction, javaSearchMM);
javaSearchMM.add(new Separator());
Iterator