blob: 4af4f299ad12d2d417d040162972778686fd880d [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 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 implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.authoring.ui.actions;
import java.util.Collection;
import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.common.command.UnexecutableCommand;
import org.eclipse.emf.edit.command.CreateChildCommand;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.emf.edit.domain.IEditingDomainProvider;
import org.eclipse.emf.edit.ui.action.StaticSelectionCommandAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IViewPart;
/**
* Method Create Sibiling action.
*
* @author Phong Nguyen Le
* @since 1.0
*/
public final class MethodCreateSiblingAction extends
StaticSelectionCommandAction {
/**
* This describes the sibling to be created.
*/
protected Object descriptor;
/**
* This constructs an instance of an action that creates a sibling specified
* by <code>descriptor</code>.
*/
public MethodCreateSiblingAction(IViewPart viewPart, ISelection selection,
Object descriptor) {
super();
if (viewPart instanceof IEditingDomainProvider) {
editingDomain = ((IEditingDomainProvider) viewPart)
.getEditingDomain();
}
this.descriptor = descriptor;
configureAction(selection);
}
/**
* This creates the command for {@link
* StaticSelectionCommandAction#createActionCommand}.
*/
protected Command createActionCommand(EditingDomain editingDomain,
Collection collection) {
if (collection.size() == 1) {
Command cmd = CreateChildCommand.create(editingDomain, null,
descriptor, collection);
return new CreateMethodElementCommand(cmd);
}
return UnexecutableCommand.INSTANCE;
}
}