package com.constellio.app.ui.pages.management.configs;
import java.util.HashMap;
import java.util.Map;
import com.constellio.app.modules.rm.model.enums.DecommissioningDateBasedOn;
import com.constellio.app.ui.framework.components.BaseForm;
import com.constellio.sdk.tests.selenium.adapters.constellio.ConstellioWebDriver;
import com.constellio.sdk.tests.selenium.adapters.constellio.ConstellioWebElement;
public class ConfigManagementFacade {
private ConstellioWebDriver driver;
private Map<String, ConfigGroupFacade> configGroupElementsMap;
private ConstellioWebElement saveButton;
public ConfigManagementFacade(ConstellioWebDriver driver) {
this.driver = driver;
configGroupElementsMap = new HashMap<>();
this.saveButton = driver.find(BaseForm.SAVE_BUTTON);
}
public int getConfigGroupSize(String groupCode) {
ConfigGroupFacade configGroupFacade = getConfigGroupFacade(groupCode);
return configGroupFacade.size();
}
private ConfigGroupFacade getConfigGroupFacade(String groupCode) {
ConfigGroupFacade configGroupFacade = configGroupElementsMap.get(groupCode);
if(configGroupFacade == null){
configGroupFacade = new ConfigGroupFacade(driver, groupCode);
configGroupElementsMap.put(groupCode, configGroupFacade);
}
return configGroupFacade;
}
public String getConfigGroupInputValue(String groupCode, int i) {
ConfigGroupFacade configGroupFacade = getConfigGroupFacade(groupCode);
return configGroupFacade.getElementValue(i);
}
public String getConfigGroupComboboxValue(String groupCode, int i) {
ConfigGroupFacade configGroupFacade = getConfigGroupFacade(groupCode);
return configGroupFacade.getComboBoxElementValue(i);
}
public boolean getConfigGroupChecboxValue(String groupCode, int i) {
ConfigGroupFacade configGroupFacade = getConfigGroupFacade(groupCode);
return configGroupFacade.getChecboxElementValue(i);
}
public void setConfigGroupComboboxValue(String groupCode, int i, int newValueIndex) {
ConfigGroupFacade configGroupFacade = getConfigGroupFacade(groupCode);
configGroupFacade.setComboBoxElementValue(i, newValueIndex);
}
public void save() {
saveButton.click();
}
public void setConfigGroupValue(String groupCode, int i, String newValue) {
ConfigGroupFacade configGroupFacade = getConfigGroupFacade(groupCode);
configGroupFacade.setElementValue(i, newValue);
}
public void toggleConfigGroupCheckBox(String groupCode, int i) {
ConfigGroupFacade configGroupFacade = getConfigGroupFacade(groupCode);
configGroupFacade.toggleCheckBox(i);
}
}