<?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>