/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.core.container; import java.util.Collection; import org.eclipse.emf.edit.command.CopyCommand; import org.eclipse.emf.edit.command.CopyToClipboardCommand; import org.eclipse.emf.edit.domain.EditingDomain; import org.teiid.designer.core.ModelEditorImpl; /** * CopyToClipboardCommandWithMapping * * @since 8.0 */ public class CopyToClipboardCommandWithMapping extends CopyToClipboardCommand { private CopyCommand.Helper helper; /** * Construct an instance of CopyToClipboardCommandWithMapping. * @param domain * @param collection */ public CopyToClipboardCommandWithMapping(final EditingDomain domain, final Collection collection) { super(domain, collection); helper = new CopyCommand.Helper(); } public CopyCommand.Helper getCopyKeyedByOriginalMap() { return helper; } /** * @see org.eclipse.emf.edit.command.CopyToClipboardCommand#prepare() */ @Override protected boolean prepare() { // Create a copy command that uses our helper copyCommand = ModelEditorImpl.createCopyCommand(this.domain,this.sourceObjects,helper); return copyCommand.canExecute(); } @Override public void doExecute() { super.doExecute(); // Also put the map of originals to copies onto the editing domain ... if ( domain instanceof ContainerEditingDomain ) { ((ContainerEditingDomain)domain).setClipboardMapping(helper); } } }