/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.gui.workflow.editor.commands.endpoint; import java.util.List; import de.rcenvironment.core.component.model.endpoint.api.EndpointDescription; import de.rcenvironment.core.gui.workflow.editor.properties.Refreshable; /** * Removes one single input and two outputs - one with the same name as the input and one with the same name as the input + given suffix. * * @author Doreen Seider */ public class RemoveDynamicInputWithOutputsCommand extends RemoveDynamicInputWithOutputCommand { private final String addDynOutputId; private final String outputNameSuffix; public RemoveDynamicInputWithOutputsCommand(String dynEndpointId, String addDynOutputId, String outputNameSuffix, List<String> names, Refreshable... panes) { super(dynEndpointId, names, panes); this.addDynOutputId = addDynOutputId; this.outputNameSuffix = outputNameSuffix; } @Override public void initialize() { for (String name : names) { oldDescriptions.put(name, getProperties().getInputDescriptionsManager().getEndpointDescription(name)); } } @Override public void execute() { for (String name : names) { InputWithOutputsCommandUtils.removeOutputWithSuffix(getProperties(), name, outputNameSuffix); } super.execute(); } @Override public void undo() { for (String name : names) { EndpointDescription oldDescription = oldDescriptions.get(name); InputWithOutputsCommandUtils.addOutputWithSuffix(getProperties(), addDynOutputId, name, oldDescription.getDataType(), outputNameSuffix); } super.undo(); } }