package com.abmash.core.query.predicate; import java.util.Arrays; import java.util.List; import org.apache.commons.lang.StringUtils; import com.abmash.api.query.QueryFactory; import com.abmash.core.jquery.JQuery; import com.abmash.core.jquery.JQueryFactory; import com.abmash.core.jquery.JQuery.StringMatcher; import com.abmash.core.jquery.command.FilterCSSCommand.CSSAttributeComparator; import com.abmash.core.query.DirectionOptions; import com.abmash.core.query.DirectionType; public class ImagePredicate extends JQueryPredicate { private String text; public ImagePredicate(String text) { this.text = text; buildCommands(); } @Override public void buildCommands() { List<String> imageSelectors = Arrays.asList("img"); // TODO background-image JQuery imageQuery = JQueryFactory.select("'" + StringUtils.join(imageSelectors, ',') + "'", 0); if(text != null) { // close to label closeTo( imageQuery.setWeight(100), new DirectionOptions(DirectionType.CLOSETO).setLimitPerTarget(1).setMaxDistance(300), QueryFactory.text(text) ); containsAttribute(imageQuery, "*", text); } else { add(imageQuery); } } }