package pages.domain;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import pages.components.grid.BasicGrid;

import java.util.ArrayList;
import java.util.List;

public class DomainGrid extends BasicGrid {
	public DomainGrid(WebDriver driver, WebElement container) {
		super(driver, container);
	}

	private By cellSelector = By.tagName("datatable-body-cell");

	public List<DomainRow> getRowsInfo() {
		log.info("getting all row info");
		List<DomainRow> rowInfos = new ArrayList<>();

		for (WebElement gridRow : gridRows) {
			List<WebElement> cells = gridRow.findElements(cellSelector);

			DomainRow row = new DomainRow();

			for (int i = 0; i < headerTxt.size(); i++) {
				switch (headerTxt.get(i)) {
					case "Domain code":
						row.setDomainCode(cells.get(i).getText().trim());
						break;
					case "SML Domain":
						row.setSmlDomain(cells.get(i).getText().trim());
						break;
					case "Signature CertAlias":
						row.setSignatureCertAlias(cells.get(i).getText().trim());
						break;
					case "SML SMP Id":
						row.setSmlSmpID(cells.get(i).getText().trim());
						break;
				}

			}

			rowInfos.add(row);
		}

		return rowInfos;
	}
	public void mouseHoverOnDomainCode(int rowNumber)
	{
		WebElement element = driver.findElement(By.cssSelector(".datatable-row-wrapper:nth-child(" + rowNumber + ") .datatable-body-cell:nth-child(1) .datatable-body-cell-label span"));
		Actions action = new Actions(driver);
		action.moveToElement(element).build().perform();
	}

}