我有以下的widget类,其中包含一个Sencha TextButton,它应该在单击时显示一个菜单:
public class MyWidget extends Container {
public interface MyWidgetActionHandler {
void onClone();
}
private final MyData data;
private final MyWidgetActionHandler handler;
private TextButton menuButton;
public MyWidget(MyData data, MyWidgetActionHandler handler) {
this.data = data;
this.handler = handler;
setup();
}
private void setup() {
VerticalLayoutContainer mainContainer = new VerticalLayoutContainer();
Label dateLabel = new Label(DATE_TIME_FORMAT.format(new Date(data.getApplicability())));
mainContainer.add(dateLabel);
menuButton = new TextButton("...");
Menu menu = new Menu();
menu.add(new MenuItem("Clone...", new SelectionHandler<MenuItem>() {
@Override
public void onSelection(SelectionEvent<MenuItem> event) {
handler.onClone();
}
}));
menuButton.setMenu(menu);
mainContainer.add(menuButton);
setElement((Element) mainContainer.getElement());
DragSource dragSource = new DragSource(this) {
@Override
protected void onDragStart(DndDragStartEvent event) {
event.setData(data);
}
};
}
}
单击按钮时未显示菜单。
任何帮助都将不胜感激。
答案 0 :(得分:-1)
添加按钮clickListener然后onClick()
调用menu.show()
。
如果您不告诉菜单显示,菜单将不会自动显示。