/** * This file is protected by Copyright. * Please refer to the COPYRIGHT file distributed with this source distribution. * * This file is part of REDHAWK IDE. * * 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. * */ package gov.redhawk.sca.dcd.diagram.edit.helpers; import gov.redhawk.diagram.edit.helpers.ComponentPlacementEditHelperAdvice; import mil.jpeojtrs.sca.dcd.DcdComponentInstantiation; import mil.jpeojtrs.sca.dcd.DcdComponentPlacement; import mil.jpeojtrs.sca.dcd.DcdFactory; import mil.jpeojtrs.sca.dcd.DeviceConfiguration; import mil.jpeojtrs.sca.partitioning.ComponentFile; import mil.jpeojtrs.sca.partitioning.ComponentFiles; import mil.jpeojtrs.sca.spd.SoftPkg; import org.eclipse.core.runtime.Assert; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest; /** * */ public class DcdComponentPlacementEditHelperAdvice extends ComponentPlacementEditHelperAdvice<DcdComponentInstantiation, DcdComponentPlacement> { /** * @since 2.0 */ @Override public DcdComponentInstantiation createComponentInstantiation(final ConfigureRequest request, final SoftPkg spd) { final Object element = request.getParameter(ComponentPlacementEditHelperAdvice.CONFIGURE_COMPONENT_INSTANTIATION); final DcdComponentInstantiation ci; if (element instanceof DcdComponentInstantiation) { ci = (DcdComponentInstantiation) element; } else { ci = DcdFactory.eINSTANCE.createDcdComponentInstantiation(); } final EObject eobj = EcoreUtil.getRootContainer(getObjectToConfigure(request)); Assert.isTrue(eobj instanceof DeviceConfiguration); final DeviceConfiguration dcd = (DeviceConfiguration) eobj; String compName = getInstantiationName(request); if (compName == null) { compName = DeviceConfiguration.Util.createDeviceUsageName(dcd, spd.getName()); } String id = getInstantiationID(request); if (id == null) { id = DeviceConfiguration.Util.createDeviceIdentifier(dcd, compName); } ci.setId(id); ci.setUsageName(compName); return ci; } @Override public ComponentFile createComponentFile() { return DcdFactory.eINSTANCE.createComponentFile(); } @Override public DcdComponentPlacement getObjectToConfigure(final ConfigureRequest request) { return (DcdComponentPlacement) request.getElementToConfigure(); } @Override public void setComponentFiles(final DcdComponentPlacement obj, final ComponentFiles files) { ((DeviceConfiguration) obj.eContainer().eContainer()).setComponentFiles(files); } @Override public ComponentFiles getComponentFiles(final DcdComponentPlacement obj) { return ((DeviceConfiguration) obj.eContainer().eContainer()).getComponentFiles(); } }