1 /*******************************************************************************
2 * Copyright (c) 2012, 2014 Ericsson
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
10 * Patrick Tasse - Initial API and implementation
11 *******************************************************************************/
13 package org
.eclipse
.linuxtools
.internal
.tmf
.ui
.project
.handlers
;
15 import org
.eclipse
.core
.resources
.IFile
;
16 import org
.eclipse
.jface
.action
.IMenuManager
;
17 import org
.eclipse
.jface
.action
.MenuManager
;
18 import org
.eclipse
.jface
.viewers
.ISelection
;
19 import org
.eclipse
.jface
.viewers
.IStructuredSelection
;
20 import org
.eclipse
.linuxtools
.tmf
.ui
.project
.model
.TmfTraceElement
;
21 import org
.eclipse
.ui
.IActionBars
;
22 import org
.eclipse
.ui
.IWorkbenchPage
;
23 import org
.eclipse
.ui
.actions
.OpenWithMenu
;
24 import org
.eclipse
.ui
.navigator
.CommonActionProvider
;
25 import org
.eclipse
.ui
.navigator
.ICommonActionConstants
;
26 import org
.eclipse
.ui
.navigator
.ICommonActionExtensionSite
;
27 import org
.eclipse
.ui
.navigator
.ICommonMenuConstants
;
28 import org
.eclipse
.ui
.navigator
.ICommonViewerSite
;
29 import org
.eclipse
.ui
.navigator
.ICommonViewerWorkbenchSite
;
32 * Base action provider.
34 * @author Patrick Tassé
36 public class TmfActionProvider
extends CommonActionProvider
{
38 private OpenAction openAction
;
40 private IWorkbenchPage page
;
45 public TmfActionProvider() {
49 public void init(ICommonActionExtensionSite aSite
) {
50 ICommonViewerSite viewSite
= aSite
.getViewSite();
51 if (viewSite
instanceof ICommonViewerWorkbenchSite
) {
52 ICommonViewerWorkbenchSite workbenchSite
= (ICommonViewerWorkbenchSite
) viewSite
;
53 page
= workbenchSite
.getPage();
54 openAction
= new OpenAction(page
, workbenchSite
.getSelectionProvider());
59 public void fillContextMenu(IMenuManager menu
) {
60 ISelection selection
= getContext().getSelection();
61 if (selection
instanceof IStructuredSelection
) {
62 IStructuredSelection structuredSelection
= (IStructuredSelection
) selection
;
63 if (structuredSelection
.size() == 1 && structuredSelection
.getFirstElement() instanceof TmfTraceElement
) {
64 TmfTraceElement traceElement
= (TmfTraceElement
) structuredSelection
.getFirstElement();
65 if (traceElement
.getResource() instanceof IFile
) {
66 MenuManager openWithMenu
= new MenuManager(Messages
.TmfActionProvider_OpenWith
);
67 openWithMenu
.add(new OpenWithMenu(page
, traceElement
.getResource()));
68 menu
.insertAfter(ICommonMenuConstants
.GROUP_OPEN_WITH
, openWithMenu
);
75 public void fillActionBars(IActionBars actionBars
) {
76 if (openAction
.isEnabled()) {
77 actionBars
.setGlobalActionHandler(ICommonActionConstants
.OPEN
, openAction
);