package uk.ac.ed.inf.biopepa.ui.wizards.timeseries; import uk.ac.ed.inf.biopepa.core.compiler.ComponentNode; import uk.ac.ed.inf.biopepa.core.sba.ExperimentSet; import uk.ac.ed.inf.biopepa.core.sba.LineStringBuilder; import uk.ac.ed.inf.biopepa.core.sba.ExperimentLine; import uk.ac.ed.inf.biopepa.ui.interfaces.BioPEPAModel; public class InitPopsExperimentPage extends AbstractExperimentPage { public final static String wizardPageName = "Initial Concentration Setup Page"; // private BioPEPAModel model; public InitPopsExperimentPage(BioPEPAModel model) { super(wizardPageName); // this.model = model; setTitle("Initial Concentration Setup and Experimentation Page"); setDescription("Set up experiments over component initial populations "); LineStringBuilder sb = new LineStringBuilder(); sb.append("For each component that you wish to range over "); sb.appendLine("either check the left box and"); sb.append("enter a comma "); sb.appendLine("separated list of double values or check the right "); sb.append("box and enter a range via start and stop values with "); sb.appendLine("a step size."); sb.appendLine("Any component with unchecked boxes will not be ranged "); sb.appendLine("over in this experiment and their default values used."); this.setHeader(sb.toString()); /* Now we must set up the experiment object names */ ComponentNode[] species = model.getSBAModel().getComponents(); this.experimentObjectNameHints = new NameHintPair[species.length]; for (int i = 0; i < species.length; i++) { ComponentNode compNode = species[i]; String name = compNode.getName(); String hint = Long.toString(compNode.getCount()); NameHintPair nameHint = new NameHintPair(name, hint); experimentObjectNameHints[i] = nameHint; } } @Override public void addExperimentArrays(ExperimentSet experiment) { for (ArrayInput arrayInput : arrayInputs) { String compName = arrayInput.getName(); Number[] values = arrayInput.getDoubleValues(); for (Number value : values) { ExperimentLine eline = new ExperimentLine(compName + "-" + value); eline.addInitialConcentration(compName, value); experiment.addExperimentLine(eline); } } } }