TableSelectionPanel.java revision a5e4d84c9616b0a987e904d3b1d1d3fd9ca1be86
1package autotest.common.ui;
2
3import com.google.gwt.event.dom.client.ClickEvent;
4import com.google.gwt.event.dom.client.ClickHandler;
5import com.google.gwt.user.client.ui.Composite;
6import com.google.gwt.user.client.ui.HTML;
7import com.google.gwt.user.client.ui.HorizontalPanel;
8import com.google.gwt.user.client.ui.Panel;
9
10public class TableSelectionPanel extends Composite implements ClickHandler {
11    public static interface SelectionPanelListener {
12        public void onSelectAll(boolean visibleOnly);
13        public void onSelectNone();
14    }
15
16    private SelectionPanelListener listener;
17    private SimpleHyperlink selectAll = new SimpleHyperlink("all");
18    private SimpleHyperlink selectVisible;
19    private SimpleHyperlink selectNone = new SimpleHyperlink("none");
20
21    public TableSelectionPanel(boolean wantSelectVisible) {
22        selectAll.addClickHandler(this);
23        selectNone.addClickHandler(this);
24
25        Panel selectPanel = new HorizontalPanel();
26        selectPanel.add(new HTML("Select: "));
27        selectPanel.add(selectAll);
28        selectPanel.add(new HTML(", "));
29        if (wantSelectVisible) {
30            selectVisible = new SimpleHyperlink("visible");
31            selectVisible.addClickHandler(this);
32            selectPanel.add(selectVisible);
33            selectPanel.add(new HTML(", "));
34        }
35        selectPanel.add(selectNone);
36        selectPanel.add(new HTML(" "));
37        initWidget(selectPanel);
38    }
39
40    public void setListener(SelectionPanelListener listener) {
41        this.listener = listener;
42    }
43
44    public void onClick(ClickEvent event) {
45        if (event.getSource() == selectAll) {
46            listener.onSelectAll(false);
47        } else if (event.getSource() == selectVisible) {
48            listener.onSelectAll(true);
49        } else {
50            assert event.getSource() == selectNone;
51            listener.onSelectNone();
52        }
53    }
54}
55