blob: 211ac0e6b6eec7e0ad644ceea532f480c7034b63 [file] [log] [blame]
package autotest.afe;
import autotest.common.table.MultipleListFilter;
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.Widget;
public class LabelFilter extends MultipleListFilter {
public static final int VISIBLE_SIZE = 10;
private final ListBox platform;
public LabelFilter() {
super("multiple_labels", VISIBLE_SIZE);
setMatchAllText("All labels");
setChoices(AfeUtils.getNonPlatformLabelStrings());
String[] platformStrings = AfeUtils.getPlatformStrings();
platform = new ListBox();
platform.addItem("All platforms");
for (String platformString : platformStrings) {
platform.addItem(platformString);
}
platform.setStylePrimaryName("filter-box");
platform.addChangeHandler(new ChangeHandler() {
public void onChange(ChangeEvent event) {
notifyListeners();
}
});
}
@Override
protected String getItemText(int index) {
return AfeUtils.decodeLabelName(super.getItemText(index));
}
public Widget getPlatformWidget() {
return platform;
}
@Override
public JSONValue getMatchValue() {
JSONArray labels = super.getMatchValue().isArray();
int selectedIndex = platform.getSelectedIndex();
// Skip the first item ("All platforms")
if (selectedIndex > 0) {
String platformString = platform.getItemText(selectedIndex);
labels.set(labels.size(), new JSONString(platformString));
}
return labels;
}
}