package er.directtoweb.components.relationships._ajax;
import com.webobjects.appserver.WOComponent;
import com.webobjects.appserver.WOContext;
import com.webobjects.directtoweb.D2WCustomQueryComponent;
import er.extensions.foundation.ERXValueUtilities;
/**
* Adds a filter for the select list.
* How to use: Set a delayed boolean assignment on restrictedChoiceKey or restrictedFetchSpecification based on the condition isFiltered
*
* @see ERD2WQueryToOneRelationship
*
*
* @author mendis
*
*/
public class ERD2WQueryToOneRelationshipWithFilter extends D2WCustomQueryComponent {
public ERD2WQueryToOneRelationshipWithFilter(WOContext context) {
super(context);
}
public String filterKey() {
return (String) d2wContext().valueForKey("filterKey");
}
private boolean isFiltered() {
return ERXValueUtilities.booleanValue(d2wContext().valueForKey(filterKey()));
}
private void setIsFiltered(boolean flag) {
d2wContext().takeValueForKey(flag, filterKey());
}
public String container() {
return d2wContext().valueForKey("id") + "_container";
}
/*
* button
*/
public String value() {
return isFiltered() ? "Show All" : "Filter";
}
public String buttonName() {
return d2wContext().valueForKey("name") + "_filter_button";
}
// actions (ajax)
public WOComponent toggleFilter() {
setIsFiltered(!isFiltered());
return this;
}
}