LinkSetFilter.java revision 79a7b0d387aac103fc1d125353eefa361030452a
1package autotest.common.table;
2
3import com.google.gwt.event.logical.shared.SelectionEvent;
4import com.google.gwt.event.logical.shared.SelectionHandler;
5import com.google.gwt.user.client.ui.TabBar;
6import com.google.gwt.user.client.ui.Widget;
7
8public abstract class LinkSetFilter extends Filter implements SelectionHandler<Integer> {
9    protected TabBar linkBar = new TabBar();
10    protected boolean enableNotification = true;
11
12    public LinkSetFilter() {
13        linkBar.setStyleName("job-filter-links");
14        linkBar.addSelectionHandler(this);
15    }
16
17    public void addLink(String text) {
18        linkBar.addTab(text);
19    }
20
21    @Override
22    public Widget getWidget() {
23        return linkBar;
24    }
25
26    public int getSelectedLink() {
27        return linkBar.getSelectedTab();
28    }
29
30    public void setSelectedLink(int link) {
31        if (link != linkBar.getSelectedTab()) {
32            enableNotification = false;
33            linkBar.selectTab(link);
34            enableNotification = true;
35        }
36    }
37
38    @Override
39    public void onSelection(SelectionEvent<Integer> event) {
40        if (enableNotification)
41            notifyListeners();
42    }
43}
44