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.JQueryFactory; import com.abmash.core.query.DirectionOptions; import com.abmash.core.query.DirectionType; public class CheckablePredicate extends JQueryPredicate { private String text; public CheckablePredicate(String text) { this.text = text; buildCommands(); } @Override public void buildCommands() { List<String> inputSelectors = Arrays.asList("input[type=checkbox]", "input[type=radio]"); if(text != null) { // close to label closeTo( JQueryFactory.select("'" + StringUtils.join(inputSelectors, ',') + "'", 100), new DirectionOptions(DirectionType.CLOSETOCLICKABLELABEL).setLimitPerTarget(1).setMaxDistance(300), QueryFactory.text(text) ); containsText("'" + StringUtils.join(inputSelectors, ',') + "'", text); containsAttribute("'" + StringUtils.join(inputSelectors, ',') + "'", "*", text); } else { add(JQueryFactory.select("'" + StringUtils.join(inputSelectors, ',') + "'", 50)); } } }