smartrcp菜单栏的实现

<?xml version="1.0" encoding="utf-8"?>
<gui:RCPModule xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:gui="cn.smartinvoke.gui.*"
 xmlns:rcp="cn.smartinvoke.rcp.*"
	layout="vertical" creationComplete="init()">
	<mx:Script>
		<![CDATA[
			import cn.smartinvoke.smartrcp.util.CWorkbenchActions; 
			import cn.smartinvoke.smartrcp.gui.control.CActionManager;
			import cn.smartinvoke.smartrcp.gui.control.CAppMenuBarManager;
			import cn.smartinvoke.smartrcp.gui.module.CActionEvent;
			import cn.smartinvoke.rcp.CAction;
			import org.eclipse.swt.CEventType;
			import org.eclipse.swt.widgets.Display;
			function init():void{
			   var actionManager:CActionManager=CActionManager.Instance;
			   for(var i:int=0;i<this.cActions1.length;i++){
			     actionManager.addAction(this.cActions1[i]);
			   }
			   
			   actionManager.addListener('a1',function (evt:CActionEvent):void{
			   	 this.infoLabel.text=evt.actionId+"   "+evt.path;
			   },this);
			   
			}
			//设置菜单条
			function onSetMenuBarClick():void{
				var menuFile:CMenuRelation=new CMenuRelation("文件");
				menuFile.actions=["a5","-","a1",CWorkbenchActions.ID_QUIT];
				var menuEdit:CMenuRelation=new CMenuRelation("编辑");
				menuEdit.actions=["a2"];
				var menuSearch:CMenuRelation=new CMenuRelation("查找");
				menuSearch.actions=["a3"];
				
			CAppMenuBarManager.Instance.initMenuBar([menuFile,menuEdit,menuSearch]);
				
			}
			function onAddMenuClick():void{
			   //添加菜单\
			   
			   CAppMenuBarManager.Instance.setMenu(menuRelation);
			}
			function onDelMenuClick():void{
			  //删除菜单
			  CAppMenuBarManager.Instance.removeMenu(menuRelation.label);
			}
			function onRemoveAll():void{
			  //清除所有菜单	
			  CAppMenuBarManager.Instance.removeAll();
			}
			
			function addMenuItem():void{
				var action:CAction=new 
                             CAction("file_save","保存文件","/icons/help.gif","保存当前文件");
				//action.actionId
				CActionManager.Instance.addAction(action);
				
				CAppMenuBarManager.Instance.addMenuItem(action.actionId,"文件");
			}
			function removeMenuItem():void{
				CAppMenuBarManager.Instance.removeMenuItem("file_save","文件");
			}
			 var isEnable:Boolean=false;
			function changeState():void{
				CActionManager.Instance.updateEnable("file_save",isEnable=!isEnable);
			}
		]]>
	</mx:Script>
	
	<rcp:CMenuRelation  id="menuRelation" label="添加的菜单">
   		 <rcp:actions>
   		 	<mx:String>a1</mx:String>
   		 	<mx:String>a2</mx:String>
   		 	<rcp:CMenuRelation label="子菜单">
   		 	  <rcp:actions>
   		 		<mx:String>a3</mx:String>
   		 		<mx:String>a4</mx:String>
   		 		<rcp:CMenuRelation label="子菜单1">
   		 		  <rcp:actions>
   		 			<mx:String>a5</mx:String>
   		 		  </rcp:actions>
   		 		</rcp:CMenuRelation>
   		 	  </rcp:actions>
   		 	</rcp:CMenuRelation>
   		 </rcp:actions>
   	</rcp:CMenuRelation>
	<mx:Array id="cActions1">
    	<rcp:CAction  actionId="a1" enable="false" type="{CAction.AS_RADIO_BUTTON}"
 text="测试2" toolTip="toolTipTest1..."/>
   		<rcp:CAction  actionId="a2" type="{CAction.AS_RADIO_BUTTON}" text="测试3"
 toolTip="toolTipTest2..."/>
   		<rcp:CAction  actionId="a3" type="{CAction.AS_RADIO_BUTTON}" text="测试4"
 toolTip="toolTipTest3..."/>
   		<rcp:CAction  actionId="a4" type="{CAction.AS_RADIO_BUTTON}" text="a4"
 toolTip="toolTipTest3..."/>
   		<rcp:CAction  actionId="a5" type="{CAction.AS_RADIO_BUTTON}" text="a5" 
toolTip="toolTipTest3..."/>
    </mx:Array>
    
    <mx:Panel title="本模块实现了应用程序菜单的修改功能,点击下面的菜单就会发现菜单的变化" 
cornerRadius="0"
            styleName="opaquePanel" width="100%" height="100%">
            <mx:Label id="infoLabel"/>
        <mx:ControlBar horizontalAlign="right">
           <mx:Button label="设置菜单条" click="onSetMenuBarClick()"/>
           <mx:Button label="添加Menu" click="onAddMenuClick()"/>
    	   <mx:Button label="删除Menu" click="onDelMenuClick()"/>
    	   
    	   <mx:Button label="添加文件保存菜单项" click="addMenuItem()"/>
    	   <mx:Button label="删除文件保存菜单项" click="removeMenuItem()"/>
    	   <mx:Button label="改变文件菜单状态" click="changeState()"/>
    	   
    	   <mx:Button label="清除所有菜单" click="onRemoveAll()"/>
    	</mx:ControlBar>
    </mx:Panel>
    
</gui:RCPModule> 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值