/******************************************************************************* * 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.ide.graphiti.sad.ui.diagram.wizards; import gov.redhawk.ide.graphiti.sad.ui.diagram.patterns.AbstractUsesDevicePattern; import java.util.ArrayList; import java.util.List; import mil.jpeojtrs.sca.partitioning.ProvidesPortStub; import mil.jpeojtrs.sca.partitioning.UsesDeviceStub; import mil.jpeojtrs.sca.partitioning.UsesPortStub; import mil.jpeojtrs.sca.sad.SoftwareAssembly; import org.eclipse.jface.wizard.Wizard; public class UsesDeviceWizard extends Wizard { private SoftwareAssembly sad; private UsesDeviceStub existingUsesDeviceStub; private UsesDeviceWizardPage namePage; private PortsWizardPage portsWizardPage; public UsesDeviceWizard(SoftwareAssembly sad) { this.sad = sad; } public UsesDeviceWizard(SoftwareAssembly sad, UsesDeviceStub existingUsesDevice) { this(sad); this.existingUsesDeviceStub = existingUsesDevice; } @Override public void addPages() { if (existingUsesDeviceStub == null) { String deviceId = AbstractUsesDevicePattern.getUniqueUsesDeviceId(sad, "Device_"); namePage = new UsesDeviceWizardPage(deviceId, sad); portsWizardPage = new PortsWizardPage(); } else { //create name page for wizard namePage = new UsesDeviceWizardPage(existingUsesDeviceStub.getUsesDevice().getId(), sad); //ports List<String> providesPortNames = new ArrayList<String>(); for (ProvidesPortStub p: existingUsesDeviceStub.getProvidesPortStubs()) { providesPortNames.add(p.getName()); } List<String> usesPortNames = new ArrayList<String>(); for (UsesPortStub p: existingUsesDeviceStub.getUsesPortStubs()) { usesPortNames.add(p.getName()); } portsWizardPage = new PortsWizardPage(providesPortNames, usesPortNames); } addPage(namePage); addPage(portsWizardPage); } @Override public boolean performFinish() { return true; } public UsesDeviceWizardPage getNamePage() { return namePage; } public PortsWizardPage getPortsWizardPage() { return portsWizardPage; } }