/** * 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.core.graphiti.dcd.ui.internal.diagram.feature; import java.util.ArrayList; import java.util.List; import org.eclipse.emf.ecore.EObject; import org.eclipse.graphiti.features.IFeatureProvider; import org.eclipse.graphiti.mm.pictograms.Diagram; import gov.redhawk.core.graphiti.ui.diagram.features.AbstractDiagramUpdateFeature; import gov.redhawk.core.graphiti.ui.util.DUtil; import mil.jpeojtrs.sca.dcd.DcdComponentInstantiation; import mil.jpeojtrs.sca.dcd.DcdComponentPlacement; import mil.jpeojtrs.sca.dcd.DeviceConfiguration; import mil.jpeojtrs.sca.partitioning.ConnectInterface; /** * Performs updates of runtime device manager diagrams. Some code is duplicated in DCDUpdateDiagramFeature. */ public class DeviceManagerUpdateDiagramFeature extends AbstractDiagramUpdateFeature { public DeviceManagerUpdateDiagramFeature(IFeatureProvider fp) { super(fp); } @Override protected List<EObject> getObjectsToAdd(Diagram diagram) { List<EObject> addedObjects = new ArrayList<EObject>(); DeviceConfiguration dcd = DUtil.getDiagramDCD(diagram); for (DcdComponentPlacement placement : dcd.getPartitioning().getComponentPlacement()) { for (DcdComponentInstantiation instantiation : placement.getComponentInstantiation()) { if (!hasExistingShape(diagram, instantiation)) { addedObjects.add(instantiation); } } } return addedObjects; } @Override protected List<ConnectInterface< ? , ? , ? >> getModelConnections(Diagram diagram) { DeviceConfiguration dcd = DUtil.getDiagramDCD(diagram); List<ConnectInterface< ? , ? , ? >> connections = new ArrayList<ConnectInterface< ? , ? , ? >>(); if (dcd != null && dcd.getConnections() != null) { connections.addAll(dcd.getConnections().getConnectInterface()); } return connections; } }