本篇展示flex工具栏的实现:
<?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.gui.FlashShell;
import cn.smartinvoke.smartrcp.gui.control.CActionManager;
import cn.smartinvoke.smartrcp.gui.control.CAppToolBarManager;
import cn.smartinvoke.smartrcp.gui.control.CNativeMenuBuilder;
import cn.smartinvoke.smartrcp.gui.control.ViewManager;
import cn.smartinvoke.smartrcp.gui.module.CActionEvent;
import cn.smartinvoke.smartrcp.gui.module.CPartEvent;
import cn.smartinvoke.smartrcp.util.JFaceConstant;
import cn.smartinvoke.smartrcp.util.Log;
import cn.smartinvoke.rcp.*;
import mx.controls.Alert;
var action:CAction;
var dropDownMenu:CNativeMenuBuilder;
function init():void{
var info:String="本模块主要演示smartrcp在工具栏上的功能,本模块
运行时会自动增加一工具栏按钮,点击" +
"该按钮会出现下拉菜单,也可以设置工具栏的样式";
smartrcpDemo.Instance.setInfo(info);
this.action=new CAction("toolBarTest","测试","icons/help.gif","hello...");
this.action.type=CAction.AS_DROP_DOWN_MENU;//下拉菜单样式
//添加到全局action管理器,这样toolBar才可以根据该action的id添加此按钮
var actionManager:CActionManager=CActionManager.Instance;
actionManager.addAction(this.action);
//下拉菜单
dropDownMenu=new CNativeMenuBuilder(FlashShell.MainShell.getShell());
dropDownMenu.initAction(this.cActions);
dropDownMenu.initMenu(this.relation);
dropDownMenu.addListener(function (evt:CActionEvent):void{
this.infoLabel.text="当前点击的action id为"+evt.actionId;
},this);
//添加对应的事件监听
actionManager.addListener(this.action.actionId,function(evt:CActionEvent):void{
this.dropDownMenu.show(evt.x,evt.y);
},this);
//获得全局工具栏管理器对象
var toolBarManager:CAppToolBarManager=CAppToolBarManager.Instance;
//添加对应的action
toolBarManager.insertItem(action.actionId);
//-------------当此视图退出时,删除对应的工具栏
ViewManager.Instance.addListener(this.viewEventHandler,this);
}
function viewEventHandler(evt:CPartEvent):void{
if(evt.type==CPartEvent.Part_Closed){
var closeModule:String=evt.taget.getModulePath();
Log.Instance.println("module close :"+closeModule);
if(closeModule.indexOf("AppToolBar_T.swf")!=-1){
CAppToolBarManager.Instance.removeItem(this.action.actionId);
}
}
}
function onDelClick():void{
CAppToolBarManager.Instance.removeItem(this.action.actionId);
}
function removeAllItems():void{
CAppToolBarManager.Instance.removeAll();
}
var enable:Boolean=false;
function setDisable():void{
CActionManager.Instance.updateEnable(this.action.actionId,enable);
enable=!enable;
}
function changeToolBarStyle():void{
var curToolBar:CToolBar=CAppToolBarManager.Instance.getCurToolBar();
if(curToolBar!=null){
if(listType.selectedItem==null){
Alert.show("请选择工具栏样式");return;
}
curToolBar.type=listType.selectedItem.data;
CAppToolBarManager.Instance.fillToolBar(curToolBar);
}
}
function addSpace():void{
var curToolBar:CToolBar=CAppToolBarManager.Instance.getCurToolBar();
if(curToolBar!=null){
//在当前添加的action前加上一个分割符
var index:int=curToolBar.actionIds.getItemIndex(this.action.actionId);
curToolBar.actionIds.addItemAt(JFaceConstant.Menu_Separator_Str,index);
CAppToolBarManager.Instance.fillToolBar(curToolBar);
}
}
]]>
</mx:Script>
<rcp:CMenuRelation id="relation">
<rcp:actions>
<mx:String>a1</mx:String>
<mx:String>-</mx:String>
<rcp:CMenuRelation label="子菜单">
<rcp:actions>
<mx:String>a3</mx:String>
<rcp:CMenuRelation label="子菜单">
<rcp:actions>
<mx:String>a4</mx:String>
</rcp:actions>
</rcp:CMenuRelation>
</rcp:actions>
</rcp:CMenuRelation>
<mx:String>a2</mx:String>
</rcp:actions>
</rcp:CMenuRelation>
<mx:Array id="cActions">
<rcp:CAction actionId="a1" text="hello1"/><rcp:CAction actionId="a2" text="hello2"/>
<rcp:CAction actionId="a3" text="hello3"/><rcp:CAction actionId="a4" text="hello4"/>
</mx:Array>
<mx:Panel title="工具栏图标的添加删除与样式设置" cornerRadius="0" layout="horizontal"
horizontalAlign="center" verticalAlign="middle"
styleName="opaquePanel" width="100%" height="100%">
<mx:VBox width="50%" height="100%">
<mx:Label text="选择样式"/>
<mx:List id="listType" width="200" selectedIndex="1">
<mx:dataProvider>
<mx:ArrayCollection>
<mx:Object label="图标右字符" data="{CToolBar.Image_Text_Horizontal}"/>
<mx:Object label="图标下字符" data="{CToolBar.Image_Text_Vertical}"/>
<mx:Object label="图标" data="{CToolBar.Image}"/>
</mx:ArrayCollection>
</mx:dataProvider>
</mx:List>
<mx:Button label="更改样式" click="changeToolBarStyle()"/>
</mx:VBox>
<mx:Button label="删除工具按钮" click="onDelClick()"/>
<mx:Button label="清空工具栏" click="removeAllItems()"/>
<mx:Button label="改变按钮状态" click="setDisable()"/>
<mx:Label id="infoLabel" width="100%"/>
</mx:Panel>
</gui:RCPModule>
分享到:
相关推荐
smartrcp通过提供模板、预定义组件以及布局管理,帮助开发者节省时间和精力,使他们能够更专注于业务逻辑的实现,而不是界面的细节。 描述中提到的博文链接指向了iteye博客上的一篇文章,虽然具体内容未给出,但...
在这个特定的教程中,重点可能是讲解如何利用SmartRCP(可能是一个集成开发环境或框架)来实现Flex与Internet Explorer的集成。 描述中的"NULL"意味着没有提供额外的上下文信息,但我们可以通过标题推测内容。...
qtz40塔式起重机总体及塔身有限元分析法设计().zip
Elasticsearch是一个基于Lucene的搜索服务器
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
美国纽约HVAC(暖通空调)数据示例,谷歌地图数据包括:时间戳、名称、类别、地址、描述、开放网站、电话号码、开放时间、更新开放时间、评论计数、评级、主图像、评论、url、纬度、经度、地点id、国家等。 在地理位置服务(LBS)中,谷歌地图数据采集尤其受到关注,因为它提供了关于各种商业实体的详尽信息,这对于消费者和企业都有极大的价值。本篇文章将详细介绍美国纽约地区的HVAC(暖通空调)系统相关数据示例,此示例数据是通过谷歌地图抓取得到的,展示了此技术在商业和消费者领域的应用潜力。 无需外网,无需任何软件抓取谷歌地图数据:wmhuoke.com
2023-04-06-项目笔记-第四百五十五阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.453局变量的作用域_453- 2025-04-01
1_实验三 扰码、卷积编码及交织.ppt
北京交通大学901软件工程导论必备知识点.pdf
内容概要:本文档总结了 MyBatis 的常见面试题,涵盖了 MyBatis 的基本概念、优缺点、适用场合、SQL 语句编写技巧、分页机制、主键生成、参数传递方式、动态 SQL、缓存机制、关联查询及接口绑定等内容。通过对这些问题的解答,帮助开发者深入理解 MyBatis 的工作原理及其在实际项目中的应用。文档不仅介绍了 MyBatis 的核心功能,还详细解释了其在不同场景下的具体实现方法,如通过 XML 或注解配置 SQL 语句、处理复杂查询、优化性能等。 适合人群:具备一定 Java 开发经验,尤其是对 MyBatis 有初步了解的研发人员,以及希望深入了解 MyBatis 框架原理和最佳实践的开发人员。 使用场景及目标:①理解 MyBatis 的核心概念和工作原理,如 SQL 映射、参数传递、结果映射等;②掌握 MyBatis 在实际项目中的应用技巧,包括 SQL 编写、分页、主键生成、关联查询等;③学习如何通过 XML 和注解配置 SQL 语句,优化 MyBatis 性能,解决实际开发中的问题。 其他说明:文档内容详尽,涵盖面广,适合用于面试准备和技术学习。建议读者在学习过程中结合实际项目进行练习,以更好地掌握 MyBatis 的使用方法和技巧。此外,文档还提供了丰富的示例代码和配置细节,帮助读者加深理解和应用。
《基于YOLOv8的智能电网设备锈蚀评估系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
插头模具 CAD图纸.zip
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
《基于YOLOv8的智慧农业水肥一体化控制系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
python爬虫;智能切换策略,反爬检测机制
台区终端电科院送检文档
e235d-main.zip
丁祖昱:疫情对中国房地产市场影响分析及未来展望
MCP快速入门实战,详细的实战教程
YD5141SYZ后压缩式垃圾车的上装箱体设计.zip