1.初始化Action testAction
testAction = new RetargetAction("testP2.test", "tttest", IAction.AS_DROP_DOWN_MENU);
testAction.setEnabled(true);
testAction.setMenuCreator(new IMenuCreator() {
private MenuManager dropDownMenuMgr;
@Override
public Menu getMenu(Menu parent) {//在菜单栏被调用
createDropDownMenuMgr();
Menu menu = new Menu(parent);
IContributionItem[] items = dropDownMenuMgr.getItems();
for (int i = 0; i < items.length; i++) {
IContributionItem item = items[i];
IContributionItem newItem = item;
if (item instanceof ActionContributionItem) {
newItem = new ActionContributionItem(
((ActionContributionItem) item).getAction());
}
newItem.fill(menu, -1);
}
return menu;
}
@Override
public Menu getMenu(Control parent) {//在工具栏被 调用
createDropDownMenuMgr();
return dropDownMenuMgr.createContextMenu(parent);
}
@Override
public void dispose() {
if(null != dropDownMenuMgr){
dropDownMenuMgr.dispose();
dropDownMenuMgr = null;
}
}
private void createDropDownMenuMgr() {
if (dropDownMenuMgr == null) {
dropDownMenuMgr = new MenuManager();
dropDownMenuMgr.add(new InnerAction("One"));
dropDownMenuMgr.add(new InnerAction("Two"));
}
}
});
register(testAction);
2.所属于它下面的Item对应的Action
class InnerAction extends Action{
private String text;
InnerAction(String text){
super(text);
this.text = text;
}
@Override
public void run() {
super.run();
if("One".equals(text)){
//do one something
}else{
//do two something
}
}
}
3.填充在工具条及菜单栏中
protected void fillMenuBar(IMenuManager menuBar)
protected void fillCoolBar(ICoolBarManager coolBar)
参考资料:
使用IMenuCreator
http://www.cnblogs.com/bronte/articles/1880116.html
分享到:
相关推荐
在VC++开发环境中,创建一个带有下拉列表和按钮的工具栏是常见的需求,这能够增强用户界面的交互性和功能多样性。以下是如何在VC工具栏中实现这一功能的详细步骤和相关知识点: 首先,我们需要创建一个新的MFC应用...
如果下拉列表的选项数量较少,`UIPickerView`是一个很好的选择。 **使用UITableView实现下拉列表** 1. **创建UITableView**:在Xcode中,拖拽一个`UITableView`到你的视图控制器(UIViewController)上,或者在...
在Web开发中,级联下拉列表是一种常见的交互方式,它允许用户在选择一个选项后,根据选择自动更新另一个下拉列表。在这个“ajax+struts2.0+jsp下拉列表级联”的示例中,我们将探讨如何利用这三个技术实现这种功能。 ...
MFC 工具栏 ToolBar 按钮添加下拉菜单 MFC 工具栏 ToolBar 按钮添加下拉菜单是指在 MFC 应用程序中,将工具栏按钮添加下拉菜单,以提供更多的功能选项。下面将详细介绍如何实现该功能。 首先,在 MainFrm.cpp 的 ...
本教程将详细解释如何利用ArrayAdapter和Spinner来创建一个功能完备的下拉列表。 一、Spinner简介 Spinner是Android SDK中的一个组件,类似于iOS中的PickerView。它的主要作用是在有限的选项中让用户做出单选决策,...
首先,你需要创建一个ListView的Adapter,然后在需要显示下拉列表的地方添加一个Button或其他触发元素。当用户点击该元素时,弹出一个包含ListView的PopupWindow。 - 创建ListView的Adapter,例如ArrayAdapter。 ...
Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web开发框架,它使得开发者可以更方便地构建动态Web应用。在Struts中,实现下拉列表是常见的需求,通常用于提供用户选择的选项。本文将详细介绍如何在...
树形下拉列表控件通常由两部分组成:一个下拉按钮和一个展开后的树形视图。当用户点击下拉按钮时,会显示一个包含层次结构数据的树形结构,用户可以通过展开节点、选择节点来选取所需数据。这种控件在处理有层次关系...
首先,WPF的ComboBox是一个常用的控件,它结合了文本输入框和下拉列表的功能。用户可以输入文本,或者从下拉列表中选择一个预定义的选项。在默认情况下,ComboBox仅支持简单的文本项,但通过自定义控件和模板,我们...
在Android开发中,Spinner是一个非常常见的控件,它用于实现下拉列表的功能,可以供用户在多个选项中选择一个。Spinner通常被用在需要简洁、快速的交互场景,比如设置界面或者筛选条件等。本教程将详细介绍如何在...
多级级联下拉列表的工作原理是:当用户在一个下拉列表中做出选择时,该选择会触发一个事件,这个事件会发送一个Ajax请求到服务器,服务器根据请求参数返回相应的下一级选项,然后jQuery将这些新数据填充到下一个下拉...
在Android应用开发中,用户界面的设计与交互是至关重要的,其中下拉列表样式的筛选组件是一种常见的交互元素,尤其在电商、生活服务类应用中,如美团,它们提供了便捷的筛选选项供用户快速定位需求。本篇将详细介绍...
这可以通过拖拽工具栏中的Picker View到视图控制器的视图上完成。接着,设置Picker View的约束,以确保它在不同屏幕尺寸的设备上都能正确显示。 2. 数据源与代理 Picker View的工作依赖于两个协议:...
本项目“swift-iOS各种效果的分段选择和下拉列表二级下拉列表可自定义列表样式”专注于探讨如何在Swift中实现这些交互效果,特别是针对自定义列表样式的高级应用场景。 首先,分段控制器是iOS界面设计中常用的一种...
本文将深入探讨如何在iOS应用中实现一个简单的下拉列表,以供用户进行选择操作。 首先,我们需要了解`UISearchBar`。它是iOS中的一个标准组件,用于在文本输入时提供搜索功能。在我们的场景中,`UISearchBar`将作为...
在本文中,我们将深入探讨如何使用Ajax技术来实现下拉列表的级联效果,这是一个常见的交互功能,特别是在数据录入和筛选场景中。我们将基于EJB(Enterprise JavaBeans)技术连接数据库,以动态加载和更新下拉列表...
在导航栏中添加下拉列表功能,可以为用户提供更丰富的交互体验,尤其适用于空间有限但需要展示多项选择的情况。标题“ios导航栏 下拉列表”指的是在iOS应用的导航栏右侧的barbuttonitem上实现点击后弹出下拉列表的...
这个控件属于AdapterView家族,与ListView有着相似的工作原理,但Spinner的设计更倾向于简洁和快速的选择操作,而非ListView那样适合长列表的浏览。本项目涵盖了三种不同的Spinner下拉样式,让我们一起深入探讨它们...
在Android平台上,自定义下拉列表是一个常见的需求,特别是在创建用户界面时,为了提供良好的交互体验,开发者常常需要实现类似于Spinner的功能,但又不希望它弹出一个对话框(Dialog)。在这种情况下,我们可以使用...
在本例中,我们探讨的是如何在iOS应用中创建这样一个交互,使得用户点击一个按钮后,可以展示一个下拉列表供用户进行选择。这种设计常见于各种类型的应用中,如设置界面、导航菜单或者搜索建议等。 首先,我们需要...