package de.randi2.jsf.wrappers; import javax.faces.event.ActionEvent; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; import de.randi2.jsf.backingBeans.BlockR; import de.randi2.jsf.controllerBeans.SimulationHandler; import de.randi2.jsf.utility.JSFViewUtitlity; import de.randi2.model.randomization.AbstractRandomizationConfig; import de.randi2.model.randomization.BiasedCoinRandomizationConfig; import de.randi2.model.randomization.BlockRandomizationConfig; import de.randi2.model.randomization.CompleteRandomizationConfig; import de.randi2.model.randomization.MinimizationConfig; import de.randi2.model.randomization.TruncatedBinomialDesignConfig; import de.randi2.model.randomization.UrnDesignConfig; @EqualsAndHashCode(of={"id"}) public class AlgorithmWrapper { private final static String COMPANEL = "compPanel"; private final static String BIASPANEL = "biasPanel"; private final static String URNPANEL = "urnPanel"; private final static String BLOCKPANEL = "blockPanel"; private final static String TRUNCPANEL = "truncPanel"; private final static String MINIPANEL = "miniPanel"; @Getter @Setter private int possition; @Getter private final int id; @Getter @Setter private BlockR blockR = new BlockR(); @Getter @Setter private AbstractRandomizationConfig conf; @Getter @Setter private String description; private SimulationHandler handler; public AlgorithmWrapper(AbstractRandomizationConfig config, SimulationHandler handler, int id) { this.conf = config; this.handler = handler; this.id = id; } /** * * String ID defining the showed algorithm panel. */ private String panelType = "AlgorithmErrorPanel"; /** * Returns the String ID of an panel which need * * @return */ public String getPanelType() { if (CompleteRandomizationConfig.class.isInstance(conf)) panelType = COMPANEL; else if (BiasedCoinRandomizationConfig.class.isInstance(conf)) panelType = BIASPANEL; else if (UrnDesignConfig.class.isInstance(conf)) panelType = URNPANEL; else if (BlockRandomizationConfig.class.isInstance(conf)) panelType = BLOCKPANEL; else if (TruncatedBinomialDesignConfig.class.isInstance(conf)) panelType = TRUNCPANEL; else if (MinimizationConfig.class.isInstance(conf)) panelType = MINIPANEL; return panelType; } public String getPossitionString() { return Integer.toString(possition); } /** * Action listener for removing an algorithm. * * @param event */ public void removeAlgorithm(ActionEvent event) { handler.getRandomisationConfigs().remove(this); handler.renameAlgorithmPossitions(); JSFViewUtitlity.refreshJSFPage(); handler.setSimulationConfigurationTabIndex(2); } }