package org.richfaces.utils.focus;
import org.jboss.arquillian.drone.api.annotation.Default;
import org.jboss.arquillian.graphene.context.GrapheneContext;
import org.jboss.arquillian.graphene.javascript.JSInterfaceFactory;
import org.jboss.arquillian.graphene.javascript.JavaScript;
import org.openqa.selenium.WebElement;
/**
* Retrieves active (focused) element
*/
@JavaScript("document")
public abstract class FocusRetriever {
public abstract WebElement getActiveElement();
/**
* Returns active (focused) element - if no element is focused (it means body element is active), null is returned
*/
public static WebElement retrieveActiveElement() {
GrapheneContext context = GrapheneContext.getContextFor(Default.class);
WebElement element = JSInterfaceFactory.create(context, FocusRetriever.class).getActiveElement();
if ("body".equals(element.getTagName())) {
return null;
}
return element;
}
}