/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.components.inputprovider.gui; import de.rcenvironment.components.inputprovider.common.InputProviderComponentConstants; import de.rcenvironment.core.component.model.configuration.api.PlaceholdersMetaDataConstants; import de.rcenvironment.core.component.model.endpoint.api.EndpointDescription; import de.rcenvironment.core.datamodel.api.DataType; import de.rcenvironment.core.datamodel.api.EndpointType; import de.rcenvironment.core.gui.workflow.editor.commands.endpoint.EditDynamicEndpointCommand; import de.rcenvironment.core.gui.workflow.editor.properties.Refreshable; /** * Edits dynamic endpoints which are/were of type {@link DataType#FileReference} or {@link DataType#DirectoryReference} and are/were * selected at workflow start. * * @author Doreen Seider */ public class InputProviderEditDynamicEndpointCommand extends EditDynamicEndpointCommand { public InputProviderEditDynamicEndpointCommand(EndpointType direction, final EndpointDescription oldDescription, final EndpointDescription newDescription, Refreshable... refreshable) { super(direction, oldDescription, newDescription, refreshable); } @Override public void execute() { super.execute(); editConfigurationValue(oldDesc, newDesc); } @Override public void undo() { super.undo(); editConfigurationValue(newDesc, oldDesc); } /** * * Editing the Configuration value. <br> * * Two combinations are in use: <br> * for execute - first = oldDesc and second = newDesc <br> * for undo - first = newDesc and second = oldDesc * * @param first * @param second */ private void editConfigurationValue(EndpointDescription first, EndpointDescription second) { getWorkflowNode().getConfigurationDescription() .setConfigurationValue(first.getName(), null); // remove also the data type entry getWorkflowNode().getConfigurationDescription() .setConfigurationValue(first.getName() + PlaceholdersMetaDataConstants.DATA_TYPE, null); if (second.getMetaData().containsKey(InputProviderComponentConstants.META_FILESOURCETYPE) && second.getMetaData().get(InputProviderComponentConstants.META_FILESOURCETYPE) .equals(InputProviderComponentConstants.META_FILESOURCETYPE_ATWORKFLOWSTART)) { InputProviderDynamicEndpointCommandUtils.setValueName(getWorkflowNode(), second.getDataType(), second.getName()); } } }