package com.baselet.gwt.client.view.widgets; import java.util.List; import com.baselet.control.basics.geom.Point; import com.google.gwt.core.client.Scheduler.ScheduledCommand; import com.google.gwt.user.client.ui.MenuBar; import com.google.gwt.user.client.ui.MenuItem; public class MenuPopup extends MyPopupPanel { public static abstract class MenuPopupItem { private String text; public MenuPopupItem(String text) { super(); this.text = text; } public String getText() { return text; } public abstract void execute(); } public MenuPopup(List<MenuPopupItem> items) { super(false, Type.MENU); MenuBar popupMenuBar = new MenuBar(true); for (final MenuPopupItem item : items) { popupMenuBar.addItem(new MenuItem(item.getText(), true, new ScheduledCommand() { @Override public void execute() { item.execute(); hide(); } })); } popupMenuBar.setVisible(true); add(popupMenuBar); } public void show(Point p) { setPopupPosition(p.x, p.y); show(); } }