/******************************************************************************* * Copyright (c) 2006, 2012 Oracle 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: * Oracle Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.bpel.ui.commands; import org.eclipse.bpel.common.ui.editmodel.AbstractEditModelCommand; import org.eclipse.bpel.ui.BPELEditor; import org.eclipse.bpel.ui.util.ModelHelper; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.jface.viewers.StructuredSelection; /** * @author Michal Chmielewski (michal.chmielewski@oracle.com) * @date Jun 1, 2007 * */ public class SetSelectionCommand extends AbstractEditModelCommand { protected EObject fTarget; protected boolean fOnUndo = false; private BPELPasteCommand fPasteCommand; /** * @param eObj * @param onUndo */ public SetSelectionCommand ( EObject eObj , boolean onUndo) { fTarget = eObj; fOnUndo = onUndo; } /** * Brand new shiny SetSelection command that will select * the result of the last paste operation. * * @param cmd the paste command. * @param onUndo whether to select on undo */ public SetSelectionCommand ( BPELPasteCommand cmd , boolean onUndo) { fPasteCommand = cmd ; fOnUndo = onUndo; } protected void select () { if (fPasteCommand == null) { BPELEditor editor = ModelHelper.getBPELEditor(fTarget); if (editor != null) { editor.selectModelObject(fTarget); } } else if (fPasteCommand != null ) { fPasteCommand.fBpelEditor.getAdaptingSelectionProvider().setSelection( new StructuredSelection( fPasteCommand.getPastedObjects() ) ) ; } } /** * @see org.eclipse.gef.commands.Command#execute() */ @Override public void execute() { if (fOnUndo == false) { select(); } } /** * @see org.eclipse.gef.commands.Command#undo() */ @Override public void undo() { if (fOnUndo) { select(); } } /** * @see org.eclipse.bpel.common.ui.editmodel.AbstractEditModelCommand#getResources() */ @Override public Resource[] getResources() { return EMPTY_RESOURCE_ARRAY; } }