`
soundycui
  • 浏览: 84308 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

快速为view的工具条中加个下拉列表2

    博客分类:
  • RCP
阅读更多
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++开发环境中,创建一个带有下拉列表和按钮的工具栏是常见的需求,这能够增强用户界面的交互性和功能多样性。以下是如何在VC工具栏中实现这一功能的详细步骤和相关知识点: 首先,我们需要创建一个新的MFC应用...

    下拉列表的实现20190108_Objective-C_ios_OC语言_下拉列表_

    如果下拉列表的选项数量较少,`UIPickerView`是一个很好的选择。 **使用UITableView实现下拉列表** 1. **创建UITableView**:在Xcode中,拖拽一个`UITableView`到你的视图控制器(UIViewController)上,或者在...

    ajax+struts2.0+jsp下拉列表级联

    在Web开发中,级联下拉列表是一种常见的交互方式,它允许用户在选择一个选项后,根据选择自动更新另一个下拉列表。在这个“ajax+struts2.0+jsp下拉列表级联”的示例中,我们将探讨如何利用这三个技术实现这种功能。 ...

    MFC工具栏ToolBar按钮添加下拉菜单

    MFC 工具栏 ToolBar 按钮添加下拉菜单 MFC 工具栏 ToolBar 按钮添加下拉菜单是指在 MFC 应用程序中,将工具栏按钮添加下拉菜单,以提供更多的功能选项。下面将详细介绍如何实现该功能。 首先,在 MainFrm.cpp 的 ...

    如何借助ArrayAdapter和Spinner实现下拉列表.zip

    本教程将详细解释如何利用ArrayAdapter和Spinner来创建一个功能完备的下拉列表。 一、Spinner简介 Spinner是Android SDK中的一个组件,类似于iOS中的PickerView。它的主要作用是在有限的选项中让用户做出单选决策,...

    Android中的下拉列表

    首先,你需要创建一个ListView的Adapter,然后在需要显示下拉列表的地方添加一个Button或其他触发元素。当用户点击该元素时,弹出一个包含ListView的PopupWindow。 - 创建ListView的Adapter,例如ArrayAdapter。 ...

    在struts中实现下拉列表

    Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web开发框架,它使得开发者可以更方便地构建动态Web应用。在Struts中,实现下拉列表是常见的需求,通常用于提供用户选择的选项。本文将详细介绍如何在...

    C#树形下拉列表控件

    树形下拉列表控件通常由两部分组成:一个下拉按钮和一个展开后的树形视图。当用户点击下拉按钮时,会显示一个包含层次结构数据的树形结构,用户可以通过展开节点、选择节点来选取所需数据。这种控件在处理有层次关系...

    WPF 下拉列表框ComboBox扩展控件

    首先,WPF的ComboBox是一个常用的控件,它结合了文本输入框和下拉列表的功能。用户可以输入文本,或者从下拉列表中选择一个预定义的选项。在默认情况下,ComboBox仅支持简单的文本项,但通过自定义控件和模板,我们...

    android 下拉列表例子

    在Android开发中,Spinner是一个非常常见的控件,它用于实现下拉列表的功能,可以供用户在多个选项中选择一个。Spinner通常被用在需要简洁、快速的交互场景,比如设置界面或者筛选条件等。本教程将详细介绍如何在...

    jQuery实现的多级级联下拉列表

    多级级联下拉列表的工作原理是:当用户在一个下拉列表中做出选择时,该选择会触发一个事件,这个事件会发送一个Ajax请求到服务器,服务器根据请求参数返回相应的下一级选项,然后jQuery将这些新数据填充到下一个下拉...

    安卓下拉列表样式筛选组件(仿美团,popwindow实现方式)

    在Android应用开发中,用户界面的设计与交互是至关重要的,其中下拉列表样式的筛选组件是一种常见的交互元素,尤其在电商、生活服务类应用中,如美团,它们提供了便捷的筛选选项供用户快速定位需求。本篇将详细介绍...

    IPhone下的下拉列表框实例

    这可以通过拖拽工具栏中的Picker View到视图控制器的视图上完成。接着,设置Picker View的约束,以确保它在不同屏幕尺寸的设备上都能正确显示。 2. 数据源与代理 Picker View的工作依赖于两个协议:...

    swift-iOS各种效果的分段选择和下拉列表二级下拉列表可自定义列表样式

    本项目“swift-iOS各种效果的分段选择和下拉列表二级下拉列表可自定义列表样式”专注于探讨如何在Swift中实现这些交互效果,特别是针对自定义列表样式的高级应用场景。 首先,分段控制器是iOS界面设计中常用的一种...

    iOS 下拉列表的实现

    本文将深入探讨如何在iOS应用中实现一个简单的下拉列表,以供用户进行选择操作。 首先,我们需要了解`UISearchBar`。它是iOS中的一个标准组件,用于在文本输入时提供搜索功能。在我们的场景中,`UISearchBar`将作为...

    ajax实现下拉列表级联

    在本文中,我们将深入探讨如何使用Ajax技术来实现下拉列表的级联效果,这是一个常见的交互功能,特别是在数据录入和筛选场景中。我们将基于EJB(Enterprise JavaBeans)技术连接数据库,以动态加载和更新下拉列表...

    ios导航栏 下拉列表

    在导航栏中添加下拉列表功能,可以为用户提供更丰富的交互体验,尤其适用于空间有限但需要展示多项选择的情况。标题“ios导航栏 下拉列表”指的是在iOS应用的导航栏右侧的barbuttonitem上实现点击后弹出下拉列表的...

    下拉列表spinner

    这个控件属于AdapterView家族,与ListView有着相似的工作原理,但Spinner的设计更倾向于简洁和快速的选择操作,而非ListView那样适合长列表的浏览。本项目涵盖了三种不同的Spinner下拉样式,让我们一起深入探讨它们...

    android平台自定义下拉列表

    在Android平台上,自定义下拉列表是一个常见的需求,特别是在创建用户界面时,为了提供良好的交互体验,开发者常常需要实现类似于Spinner的功能,但又不希望它弹出一个对话框(Dialog)。在这种情况下,我们可以使用...

    点击按钮出现下拉列表

    在本例中,我们探讨的是如何在iOS应用中创建这样一个交互,使得用户点击一个按钮后,可以展示一个下拉列表供用户进行选择。这种设计常见于各种类型的应用中,如设置界面、导航菜单或者搜索建议等。 首先,我们需要...

Global site tag (gtag.js) - Google Analytics