TableActionsPanel.java revision 5524adf7fc9d923ac3b6f7e7fa72158a5625460b
1package autotest.common.ui;
2
3
4import com.google.gwt.user.client.ui.ClickListener;
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;
9import com.google.gwt.user.client.ui.PopupListener;
10import com.google.gwt.user.client.ui.PopupPanel;
11import com.google.gwt.user.client.ui.ToggleButton;
12import com.google.gwt.user.client.ui.Widget;
13
14public class TableActionsPanel extends Composite implements ClickListener, PopupListener {
15    public static interface TableActionsListener {
16        public ContextMenu getActionMenu();
17        public void onSelectAll();
18        public void onSelectNone();
19    }
20
21    private TableActionsListener listener;
22    private ToggleButton actionsButton = new ToggleButton("Actions");
23    private SimpleHyperlink selectAll = new SimpleHyperlink("all");
24    private SimpleHyperlink selectNone = new SimpleHyperlink("none");
25
26    public TableActionsPanel(TableActionsListener tableActionsListener) {
27        listener = tableActionsListener;
28
29        actionsButton.addClickListener(this);
30        selectAll.addClickListener(this);
31        selectNone.addClickListener(this);
32
33        Panel selectPanel = new HorizontalPanel();
34        selectPanel.add(new HTML("Select: "));
35        selectPanel.add(selectAll);
36        selectPanel.add(new HTML(", "));
37        selectPanel.add(selectNone);
38        selectPanel.add(new HTML(" "));
39        selectPanel.add(actionsButton);
40        initWidget(selectPanel);
41    }
42
43    public void onClick(Widget sender) {
44        if (sender == actionsButton) {
45            ContextMenu menu = listener.getActionMenu();
46            menu.addPopupListener(this);
47            menu.showAt(actionsButton.getAbsoluteLeft(),
48                        actionsButton.getAbsoluteTop() + actionsButton.getOffsetHeight());
49        } else if (sender == selectAll) {
50            listener.onSelectAll();
51        } else {
52            assert sender == selectNone;
53            listener.onSelectNone();
54        }
55    }
56
57    public void onPopupClosed(PopupPanel sender, boolean autoClosed) {
58        actionsButton.setDown(false);
59    }
60}
61