/** * Copyright (c) 2005-2007 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 - Initial API and implementation */ package org.eclipse.emf.examples.extlibrary.actions; import java.util.ArrayList; import java.util.Collection; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IAction; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.ui.IActionBars; import org.eclipse.ui.ISharedImages; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.actions.ActionFactory; import org.eclipse.emf.examples.extlibrary.Library; import org.eclipse.emf.examples.extlibrary.presentation.EXTLibraryActionBarContributor; /** * Extension to the generated action bar contributor to handle creation of multi-rooted resources. */ public class EXTLibraryExtendedActionBarContributor extends EXTLibraryActionBarContributor { /** * Constructor */ public EXTLibraryExtendedActionBarContributor() { super(); } /* * @see * org.eclipse.emf.examples.library.presentation.EXTLibraryActionBarContributor#generateCreateChildActions * (java.util.Collection, org.eclipse.jface.viewers.ISelection) */ @Override protected java.util.Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) { Collection<IAction> actions = new ArrayList<IAction>( super.generateCreateChildActions(descriptors, selection)); if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) { Object object = ((IStructuredSelection)selection).getFirstElement(); if (object instanceof Resource) { actions.add(generateResourceAction(((Resource)object))); } } return actions; } /* * @see org.eclipse.emf.examples.extlibrary.presentation.EXTLibraryActionBarContributor# * generateCreateSiblingActions(java.util.Collection, org.eclipse.jface.viewers.ISelection) */ @Override protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) { Collection<IAction> actions = new ArrayList<IAction>( super.generateCreateSiblingActions(descriptors, selection)); if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) { Object object = ((IStructuredSelection)selection).getFirstElement(); if (object instanceof Library) { actions.add(generateResourceAction(((Library)object).eResource())); } } return actions; } /** * Generates a library action for a given resource * * @param resource * the containing resource * @return the action */ protected Action generateResourceAction(Resource resource) { return new CreateLibraryAction(activeEditorPart, new StructuredSelection(resource)); } /* * @see org.eclipse.ui.part.EditorActionBarContributor#init(org.eclipse.ui.IActionBars) */ @Override public void init(IActionBars actionBars) { super.init(actionBars); ISharedImages sharedImages = PlatformUI.getWorkbench().getSharedImages(); this.deleteAction = new ExtendedDeleteAction(); this.deleteAction.setImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE)); actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), this.deleteAction); actionBars.updateActionBars(); } }