package com.extjs;
import com.algocrafts.locators.Locators;
import com.algocrafts.pages.Page;
import com.algocrafts.selenium.Locator;
import static com.algocrafts.converters.GetText.TEXT;
import static com.algocrafts.converters.Ordinal.ORDINAL;
import static com.algocrafts.converters.StringConverter.FIRST_HALF;
import static com.algocrafts.converters.StringConverter.SECOND_HALF;
import static com.algocrafts.converters.StringToInt.PARSE_INT;
import static com.algocrafts.converters.StringToMonth.TO_MONTH;
import static com.algocrafts.locators.Locators.element;
import static com.algocrafts.selectors.Id.EXTJS_CALENDAR;
import static com.algocrafts.selectors.Id.EXTJS_CALENDAR_MONTH_YEAR;
public enum CalendarIntegerLocator implements Locator<Page, Integer> {
/**
* Locate the integer value representing displayed year on a calendar
*/
DISPLAYED_YEAR(
Locators.<Page>element(EXTJS_CALENDAR)
.andThen(element(EXTJS_CALENDAR_MONTH_YEAR))
.andThen(TEXT)
.andThen(SECOND_HALF)
.andThen(PARSE_INT)
),
/**
* Locate the integer value representing displayed month on a calendar
*/
DISPLAYED_MONTH(
Locators.<Page>element(EXTJS_CALENDAR)
.andThen(element(EXTJS_CALENDAR_MONTH_YEAR))
.andThen(TEXT)
.andThen(FIRST_HALF)
.andThen(TO_MONTH)
.andThen(ORDINAL)
);
private final Locator<Page, Integer> locator;
CalendarIntegerLocator(Locator<Page, Integer> locator) {
this.locator = locator;
}
@Override
public Integer locate(Page page) {
return locator.locate(page);
}
}