package com.constellio.app.modules.rm.ui.accept.decommissioning;
import java.util.ArrayList;
import java.util.List;
import com.constellio.app.modules.rm.navigation.RMNavigationConfiguration;
import org.openqa.selenium.By;
import com.constellio.app.modules.rm.services.decommissioning.SearchType;
import com.constellio.app.modules.rm.ui.pages.decommissioning.DecommissioningBuilderViewImpl;
import com.constellio.app.ui.framework.components.BaseForm;
import com.constellio.app.ui.tools.AutocompleteWebElement;
import com.constellio.app.ui.tools.ButtonWebElement;
import com.constellio.app.ui.tools.CheckboxWebElement;
import com.constellio.app.ui.tools.PageHelper;
import com.constellio.app.ui.tools.RecordFormWebElement;
import com.constellio.sdk.tests.selenium.adapters.constellio.ConstellioWebDriver;
import com.constellio.sdk.tests.selenium.adapters.constellio.ConstellioWebElement;
public class DecommissioningBuilderPage extends PageHelper {
protected DecommissioningBuilderPage(ConstellioWebDriver driver) {
super(driver);
}
public DecommissioningBuilderPage navigateToPage(SearchType type) {
driver.navigateTo().url(RMNavigationConfiguration.DECOMMISSIONING_LIST_BUILDER + "/" + type);
return this;
}
public DecommissioningBuilderPage searchAndWaitForResults() {
getSearchButton().click();
driver.waitUntilElementExist(By.className(DecommissioningBuilderViewImpl.CREATE_LIST));
return this;
}
public AutocompleteWebElement getAdministrativeUnit() {
ConstellioWebElement element = driver.findRequiredElement(By.className(DecommissioningBuilderViewImpl.ADMIN_UNIT));
return new AutocompleteWebElement(element);
}
public ButtonWebElement getSearchButton() {
ConstellioWebElement element = driver.findRequiredElement(By.className(DecommissioningBuilderViewImpl.SEARCH));
return new ButtonWebElement(element);
}
public ButtonWebElement getCreateButton() {
ConstellioWebElement element = driver.findRequiredElement(By.className(DecommissioningBuilderViewImpl.CREATE_LIST));
return new ButtonWebElement(element);
}
public List<CheckboxWebElement> getAllResultCheckBoxes() {
List<CheckboxWebElement> result = new ArrayList<>();
for (ConstellioWebElement element : driver.findRequiredElements(By.xpath("//input[@type='checkbox']/.."))) {
result.add(new CheckboxWebElement(element));
}
return result;
}
public RecordFormWebElement openCreateForm() {
getCreateButton().click();
driver.waitUntilElementExist(By.className(BaseForm.BASE_FORM));
ConstellioWebElement element = driver.findRequiredElement(By.className(BaseForm.BASE_FORM));
return new RecordFormWebElement(element);
}
}