/******************************************************************************* * 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.snapshot.ui; import gov.redhawk.ide.snapshot.capture.CorbaDataReceiver; import gov.redhawk.ide.snapshot.capture.CorbaNumSamplesReceiver; import gov.redhawk.ide.snapshot.capture.CorbaSignalTimeReceiver; import gov.redhawk.ide.snapshot.capture.CorbaSystemTimeReceiver; import gov.redhawk.model.sca.ScaUsesPort; /** * */ public class BulkIOSnapshotWizard extends SnapshotWizard { private CorbaDataReceiver corbaReceiver; private BulkIOSnapshotWizardPage bulkIOPage; private ScaUsesPort port; public void setPort(ScaUsesPort port) { this.port = port; } public ScaUsesPort getPort() { return port; } @Override public void addPages() { bulkIOPage = new BulkIOSnapshotWizardPage("snapshot", null); setSnapshotPage(bulkIOPage); addPage(bulkIOPage); } public CorbaDataReceiver getCorbaReceiver() { return this.corbaReceiver; } @Override public boolean performFinish() { boolean retVal = super.performFinish(); if (retVal) { BulkIOSnapshotSettings bulkIOSettings = bulkIOPage.getBulkIOsettings(); CaptureMethod method = bulkIOSettings.getCaptureMethod(); bulkIOPage.saveWidgetValues(bulkIOSettings); switch (method) { case CLOCK_TIME: corbaReceiver = new CorbaSystemTimeReceiver(); ((CorbaSystemTimeReceiver) corbaReceiver).setTimeInSeconds(bulkIOSettings.getSamples()); break; case INDEFINITELY: corbaReceiver = new CorbaDataReceiver(); break; case NUM_SAMPLES: corbaReceiver = new CorbaNumSamplesReceiver(); ((CorbaNumSamplesReceiver) corbaReceiver).setSamples((long) bulkIOSettings.getSamples()); break; case SAMPLE_TIME: corbaReceiver = new CorbaSignalTimeReceiver(); ((CorbaSignalTimeReceiver) corbaReceiver).setTimeInSeconds(bulkIOSettings.getSamples()); break; default: throw new IllegalStateException("Unknown capture type: " + method); } corbaReceiver.setDataWriter(getDataWriter()); corbaReceiver.setConnectionID(bulkIOSettings.getConnectionID()); } return retVal; } }