1e3f6868dac3b4c4714637d12b93d97823011a35cshowardpackage autotest.common.table; 21c8c2215e525de8813c375e796354f8ffb811a08showard 3e3f6868dac3b4c4714637d12b93d97823011a35cshowardimport autotest.common.SimpleCallback; 41c8c2215e525de8813c375e796354f8ffb811a08showard 51c8c2215e525de8813c375e796354f8ffb811a08showardimport com.google.gwt.json.client.JSONObject; 61c8c2215e525de8813c375e796354f8ffb811a08showardimport com.google.gwt.user.client.ui.Widget; 71c8c2215e525de8813c375e796354f8ffb811a08showard 81c8c2215e525de8813c375e796354f8ffb811a08showardimport java.util.ArrayList; 91c8c2215e525de8813c375e796354f8ffb811a08showardimport java.util.List; 101c8c2215e525de8813c375e796354f8ffb811a08showard 111c8c2215e525de8813c375e796354f8ffb811a08showardpublic abstract class Filter { 120d92da0fe19a095fc5678c4159e6a1756df65e48showard protected List<SimpleCallback> callbacks = new ArrayList<SimpleCallback>(); 13589cc78019a41fa293d7583a3c1b6dfca42da41bjamesren 141c8c2215e525de8813c375e796354f8ffb811a08showard public abstract void addParams(JSONObject params); 151c8c2215e525de8813c375e796354f8ffb811a08showard public abstract boolean isActive(); 161c8c2215e525de8813c375e796354f8ffb811a08showard public abstract Widget getWidget(); 17b9c6617bdc063b3b4aa760a0a45190ee069139fdshoward 18b9c6617bdc063b3b4aa760a0a45190ee069139fdshoward // is this filter controlled by a user-facing widget? 19b9c6617bdc063b3b4aa760a0a45190ee069139fdshoward public boolean isUserControlled() { 20b9c6617bdc063b3b4aa760a0a45190ee069139fdshoward return getWidget() != null; 21b9c6617bdc063b3b4aa760a0a45190ee069139fdshoward } 22b9c6617bdc063b3b4aa760a0a45190ee069139fdshoward 230d92da0fe19a095fc5678c4159e6a1756df65e48showard public void addCallback(SimpleCallback callback) { 240d92da0fe19a095fc5678c4159e6a1756df65e48showard callbacks.add(callback); 251c8c2215e525de8813c375e796354f8ffb811a08showard } 26589cc78019a41fa293d7583a3c1b6dfca42da41bjamesren 270d92da0fe19a095fc5678c4159e6a1756df65e48showard public void removeCallback(SimpleCallback callback) { 280d92da0fe19a095fc5678c4159e6a1756df65e48showard callbacks.remove(callback); 291c8c2215e525de8813c375e796354f8ffb811a08showard } 30589cc78019a41fa293d7583a3c1b6dfca42da41bjamesren 311c8c2215e525de8813c375e796354f8ffb811a08showard protected void notifyListeners() { 320d92da0fe19a095fc5678c4159e6a1756df65e48showard for (SimpleCallback callback : callbacks) { 330d92da0fe19a095fc5678c4159e6a1756df65e48showard callback.doCallback(this); 341c8c2215e525de8813c375e796354f8ffb811a08showard } 351c8c2215e525de8813c375e796354f8ffb811a08showard } 36589cc78019a41fa293d7583a3c1b6dfca42da41bjamesren} 37