Package net.cis.common.model.diagram.shipdevice.edit.commands

Source Code of net.cis.common.model.diagram.shipdevice.edit.commands.PulseCreateCommand

package net.cis.common.model.diagram.shipdevice.edit.commands;

import net.cis.common.model.modeler.Modeler;
import net.cis.common.model.shipdevice.Pulse;
import net.cis.common.model.shipdevice.ShipdeviceFactory;

import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.gmf.runtime.common.core.command.CommandResult;
import org.eclipse.gmf.runtime.common.core.command.ICommand;
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
import org.eclipse.gmf.runtime.notation.View;

/**
* @generated
*/
public class PulseCreateCommand extends EditElementCommand {

  /**
   * @generated
   */
  public PulseCreateCommand(CreateElementRequest req) {
    super(req.getLabel(), null, req);
  }

  /**
   * FIXME: replace with setElementToEdit()
   * @generated
   */
  protected EObject getElementToEdit() {
    EObject container = ((CreateElementRequest) getRequest())
        .getContainer();
    if (container instanceof View) {
      container = ((View) container).getElement();
    }
    return container;
  }

  /**
   * @generated
   */
  public boolean canExecute() {
    return true;

  }

  /**
   * @generated
   */
  protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
      IAdaptable info) throws ExecutionException {
    Pulse newElement = ShipdeviceFactory.eINSTANCE.createPulse();

    Modeler owner = (Modeler) getElementToEdit();
    owner.getWeaponDevices().add(newElement);

    doConfigure(newElement, monitor, info);

    ((CreateElementRequest) getRequest()).setNewElement(newElement);
    return CommandResult.newOKCommandResult(newElement);
  }

  /**
   * @generated
   */
  protected void doConfigure(Pulse newElement, IProgressMonitor monitor,
      IAdaptable info) throws ExecutionException {
    IElementType elementType = ((CreateElementRequest) getRequest())
        .getElementType();
    ConfigureRequest configureRequest = new ConfigureRequest(
        getEditingDomain(), newElement, elementType);
    configureRequest.setClientContext(((CreateElementRequest) getRequest())
        .getClientContext());
    configureRequest.addParameters(getRequest().getParameters());
    ICommand configureCommand = elementType
        .getEditCommand(configureRequest);
    if (configureCommand != null && configureCommand.canExecute()) {
      configureCommand.execute(monitor, info);
    }
  }

}
TOP

Related Classes of net.cis.common.model.diagram.shipdevice.edit.commands.PulseCreateCommand

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.