/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.components.optimizer.gui.properties; import de.rcenvironment.components.optimizer.common.OptimizerComponentConstants; import de.rcenvironment.core.component.api.LoopComponentConstants; import de.rcenvironment.core.datamodel.api.EndpointType; import de.rcenvironment.core.gui.workflow.editor.properties.EndpointPropertySection; import de.rcenvironment.core.gui.workflow.editor.properties.EndpointSelectionPane; import de.rcenvironment.core.gui.workflow.editor.properties.InputCoupledWithAnotherInputAndOutputsSelectionPane; /** * An extended "Properties" view tab for configuring endpoints (ie inputs and outputs) and using initial Variables. * * @author Sascha Zur */ public class OptimizerEndpointPropertySection extends EndpointPropertySection { public OptimizerEndpointPropertySection() { super(); OptimizerEndpointSelectionPane objectivePane = new OptimizerEndpointSelectionPane(Messages.targetFunction, EndpointType.INPUT, OptimizerComponentConstants.ID_OBJECTIVE, this, false); OptimizerEndpointSelectionPane constraintsPane = new OptimizerEndpointSelectionPane(Messages.constraints, EndpointType.INPUT, OptimizerComponentConstants.ID_CONSTRAINT, this, false); OptimizerEndpointSelectionPane designVariablePane = new OptimizerEndpointSelectionPane(Messages.designVariables, EndpointType.OUTPUT, OptimizerComponentConstants.ID_DESIGN, this, false); OptimizerEndpointSelectionPane gradientsPane = new OptimizerEndpointSelectionPane("Gradients (Inputs)", EndpointType.INPUT, OptimizerComponentConstants.ID_GRADIENTS, this, true); OptimizerEndpointSelectionPane startValuesPane = new OptimizerEndpointSelectionPane(Messages.startValueInput, EndpointType.INPUT, OptimizerComponentConstants.ID_STARTVALUES, this, true); OptimizerEndpointSelectionPane optimumPane = new OptimizerEndpointSelectionPane(Messages.optimalSolutionOutput, EndpointType.OUTPUT, OptimizerComponentConstants.ID_OPTIMA, this, true); EndpointSelectionPane outputForwardedPane = new EndpointSelectionPane("Outputs (forwarded)", EndpointType.OUTPUT, LoopComponentConstants.ENDPOINT_ID_TO_FORWARD, new String[] { LoopComponentConstants.ENDPOINT_ID_FINAL_TO_FORWARD }, new String[] {}, this, true, true); InputCoupledWithAnotherInputAndOutputsSelectionPane inputToForwardPane = new InputCoupledWithAnotherInputAndOutputsSelectionPane("Inputs (to forward)", LoopComponentConstants.ENDPOINT_ID_TO_FORWARD, LoopComponentConstants.ENDPOINT_ID_START_TO_FORWARD, LoopComponentConstants.ENDPOINT_STARTVALUE_SUFFIX, LoopComponentConstants.ENDPOINT_ID_FINAL_TO_FORWARD, OptimizerComponentConstants.OPTIMUM_VARIABLE_SUFFIX, this, outputForwardedPane); EndpointSelectionPane outputPaneOthers = new EndpointSelectionPane("Outputs (other)", EndpointType.OUTPUT, null, new String[] {}, new String[] { LoopComponentConstants.ENDPOINT_NAME_LOOP_DONE, OptimizerComponentConstants.ITERATION_COUNT_ENDPOINT_NAME, OptimizerComponentConstants.DERIVATIVES_NEEDED }, this, false, true); setColumns(1); setPanes(objectivePane, constraintsPane, designVariablePane, startValuesPane, optimumPane, gradientsPane, inputToForwardPane, outputForwardedPane, outputPaneOthers); objectivePane.setAllPanes(new EndpointSelectionPane[] { objectivePane, constraintsPane, designVariablePane, startValuesPane, optimumPane, gradientsPane }); constraintsPane.setAllPanes(new EndpointSelectionPane[] { objectivePane, constraintsPane, designVariablePane, startValuesPane, optimumPane, gradientsPane }); designVariablePane.setAllPanes(new EndpointSelectionPane[] { objectivePane, constraintsPane, designVariablePane, startValuesPane, optimumPane, gradientsPane }); } }