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