/******************************************************************************* * Copyright (c) 2007 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.seam.ui.views.actions; import org.eclipse.jdt.ui.actions.JdtActionConstants; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.IActionBars; import org.eclipse.ui.actions.ActionContext; import org.eclipse.ui.navigator.CommonActionProvider; import org.eclipse.ui.navigator.ICommonActionConstants; import org.jboss.tools.seam.core.IOpenableElement; import org.jboss.tools.seam.core.ISeamComponent; import org.jboss.tools.seam.core.ISeamElement; /** * Action provider for Seam Components view. * @author Viacheslav Kabanovich */ public class SeamActionProvider extends CommonActionProvider { public SeamActionProvider() {} @Override public void fillContextMenu(IMenuManager menu) { ActionContext c = getContext(); ISelection s = c.getSelection(); if(s == null || s.isEmpty() || !(s instanceof IStructuredSelection)) return; Object e = ((IStructuredSelection)s).getFirstElement(); if(e instanceof ISeamElement) { ISeamElement element = (ISeamElement)e; if(element instanceof IOpenableElement) { SeamOpenAction action = new SeamOpenAction((IOpenableElement)element); menu.add(action); } } if(e instanceof ISeamComponent) { ISeamComponent component = (ISeamComponent)e; RenameComponentAction action = new RenameComponentAction(component); menu.add(action); } } @Override public void fillActionBars(IActionBars actionBars) { ActionContext c = getContext(); ISelection s = c.getSelection(); if(s == null || s.isEmpty() || !(s instanceof IStructuredSelection)) return; Object e = ((IStructuredSelection)s).getFirstElement(); if(e instanceof ISeamElement) { ISeamElement element = (ISeamElement)e; if(element instanceof IOpenableElement) { SeamOpenAction action = new SeamOpenAction((IOpenableElement)element); actionBars.setGlobalActionHandler(ICommonActionConstants.OPEN, action); actionBars.setGlobalActionHandler(JdtActionConstants.OPEN, action); } } } }