package jp.vmi.selenium.selenese.inject; import org.aopalliance.intercept.MethodInvocation; import jp.vmi.selenium.selenese.Context; import jp.vmi.selenium.selenese.command.ICommand; import jp.vmi.selenium.selenese.highlight.HighlightHandler; import jp.vmi.selenium.selenese.highlight.HighlightStyle; import jp.vmi.selenium.selenese.locator.Locator; import jp.vmi.selenium.selenese.result.Result; /** * */ public class HighlightInterceptor extends AbstractDoCommandInterceptor { @Override protected Result invoke(MethodInvocation invocation, Context context, ICommand command, String[] curArgs) throws Throwable { if (context instanceof HighlightHandler) { HighlightHandler handler = (HighlightHandler) context; handler.unhighlight(); if (handler.isHighlight()) { int i = 0; Locator[] plocs = command.extractLocators(curArgs); for (Locator ploc : plocs) handler.highlight(ploc, HighlightStyle.ELEMENT_STYLES[i++]); } } return (Result) invocation.proceed(); } }