19dbdcda5104991cbf344ea5cba1aa58e1af444f3showardpackage autotest.common.ui;
29dbdcda5104991cbf344ea5cba1aa58e1af444f3showard
3a5e4d84c9616b0a987e904d3b1d1d3fd9ca1be86showardimport com.google.gwt.event.dom.client.ClickEvent;
4a5e4d84c9616b0a987e904d3b1d1d3fd9ca1be86showardimport com.google.gwt.event.dom.client.ClickHandler;
58a7f36583afe076a7198d1b34fe109aa491dc277jamesrenimport com.google.gwt.user.client.ui.Anchor;
69dbdcda5104991cbf344ea5cba1aa58e1af444f3showardimport com.google.gwt.user.client.ui.Composite;
79dbdcda5104991cbf344ea5cba1aa58e1af444f3showardimport com.google.gwt.user.client.ui.HTML;
89dbdcda5104991cbf344ea5cba1aa58e1af444f3showardimport com.google.gwt.user.client.ui.HorizontalPanel;
99dbdcda5104991cbf344ea5cba1aa58e1af444f3showardimport com.google.gwt.user.client.ui.Panel;
109dbdcda5104991cbf344ea5cba1aa58e1af444f3showard
11a5e4d84c9616b0a987e904d3b1d1d3fd9ca1be86showardpublic class TableSelectionPanel extends Composite implements ClickHandler {
129dbdcda5104991cbf344ea5cba1aa58e1af444f3showard    public static interface SelectionPanelListener {
139dbdcda5104991cbf344ea5cba1aa58e1af444f3showard        public void onSelectAll(boolean visibleOnly);
149dbdcda5104991cbf344ea5cba1aa58e1af444f3showard        public void onSelectNone();
159dbdcda5104991cbf344ea5cba1aa58e1af444f3showard    }
169dbdcda5104991cbf344ea5cba1aa58e1af444f3showard
179dbdcda5104991cbf344ea5cba1aa58e1af444f3showard    private SelectionPanelListener listener;
188a7f36583afe076a7198d1b34fe109aa491dc277jamesren    private Anchor selectAll = new Anchor("all");
198a7f36583afe076a7198d1b34fe109aa491dc277jamesren    private Anchor selectVisible;
208a7f36583afe076a7198d1b34fe109aa491dc277jamesren    private Anchor selectNone = new Anchor("none");
218a7f36583afe076a7198d1b34fe109aa491dc277jamesren
229dbdcda5104991cbf344ea5cba1aa58e1af444f3showard    public TableSelectionPanel(boolean wantSelectVisible) {
23a5e4d84c9616b0a987e904d3b1d1d3fd9ca1be86showard        selectAll.addClickHandler(this);
24a5e4d84c9616b0a987e904d3b1d1d3fd9ca1be86showard        selectNone.addClickHandler(this);
258a7f36583afe076a7198d1b34fe109aa491dc277jamesren
269dbdcda5104991cbf344ea5cba1aa58e1af444f3showard        Panel selectPanel = new HorizontalPanel();
279dbdcda5104991cbf344ea5cba1aa58e1af444f3showard        selectPanel.add(new HTML("Select: "));
289dbdcda5104991cbf344ea5cba1aa58e1af444f3showard        selectPanel.add(selectAll);
299dbdcda5104991cbf344ea5cba1aa58e1af444f3showard        selectPanel.add(new HTML(", "));
309dbdcda5104991cbf344ea5cba1aa58e1af444f3showard        if (wantSelectVisible) {
318a7f36583afe076a7198d1b34fe109aa491dc277jamesren            selectVisible = new Anchor("visible");
32a5e4d84c9616b0a987e904d3b1d1d3fd9ca1be86showard            selectVisible.addClickHandler(this);
339dbdcda5104991cbf344ea5cba1aa58e1af444f3showard            selectPanel.add(selectVisible);
349dbdcda5104991cbf344ea5cba1aa58e1af444f3showard            selectPanel.add(new HTML(", "));
359dbdcda5104991cbf344ea5cba1aa58e1af444f3showard        }
369dbdcda5104991cbf344ea5cba1aa58e1af444f3showard        selectPanel.add(selectNone);
379dbdcda5104991cbf344ea5cba1aa58e1af444f3showard        selectPanel.add(new HTML(" "));
389dbdcda5104991cbf344ea5cba1aa58e1af444f3showard        initWidget(selectPanel);
399dbdcda5104991cbf344ea5cba1aa58e1af444f3showard    }
408a7f36583afe076a7198d1b34fe109aa491dc277jamesren
419dbdcda5104991cbf344ea5cba1aa58e1af444f3showard    public void setListener(SelectionPanelListener listener) {
429dbdcda5104991cbf344ea5cba1aa58e1af444f3showard        this.listener = listener;
439dbdcda5104991cbf344ea5cba1aa58e1af444f3showard    }
449dbdcda5104991cbf344ea5cba1aa58e1af444f3showard
45a5e4d84c9616b0a987e904d3b1d1d3fd9ca1be86showard    public void onClick(ClickEvent event) {
46a5e4d84c9616b0a987e904d3b1d1d3fd9ca1be86showard        if (event.getSource() == selectAll) {
479dbdcda5104991cbf344ea5cba1aa58e1af444f3showard            listener.onSelectAll(false);
48a5e4d84c9616b0a987e904d3b1d1d3fd9ca1be86showard        } else if (event.getSource() == selectVisible) {
499dbdcda5104991cbf344ea5cba1aa58e1af444f3showard            listener.onSelectAll(true);
509dbdcda5104991cbf344ea5cba1aa58e1af444f3showard        } else {
51a5e4d84c9616b0a987e904d3b1d1d3fd9ca1be86showard            assert event.getSource() == selectNone;
529dbdcda5104991cbf344ea5cba1aa58e1af444f3showard            listener.onSelectNone();
539dbdcda5104991cbf344ea5cba1aa58e1af444f3showard        }
549dbdcda5104991cbf344ea5cba1aa58e1af444f3showard    }
559dbdcda5104991cbf344ea5cba1aa58e1af444f3showard}
56