`
tw5566
  • 浏览: 455328 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

flex 树型结构右键菜单和图标

阅读更多
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.adobe.com/flex/spark"
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   creationComplete="init()">
	<fx:Declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import mx.controls.Alert;
			
			private var iconArr:Array = new Array();
			private var menuItem:ContextMenuItem;
			
			[Embed(source="/assets/images/Buttonclose.png")]
			[Bindable]
			private var icon_oa:Class;
			
			[Embed(source="/assets/images/Buttonclose.png")]
			[Bindable]
			private var icon_1:Class;
			
			[Embed(source="/assets/images/Buttonclose.png")]
			[Bindable]
			private var icon_3:Class;
			
			[Embed(source="/assets/images/Buttonclose.png")]
			[Bindable]
			private var icon_2:Class;
			
			[Embed(source="/assets/images/Buttonclose.png")]
			[Bindable]
			private var icon_4:Class;
			
			[Embed(source="/assets/images/Buttonclose.png")]
			[Bindable]
			private var icon_5:Class;
			
			[Bindable]
			private var xml:XML=
				<node icon="oa" label="办公自动化">
					<node label="公文管理">
						<node id="1" icon="icon1" label="公文收发" />
						<node id="2" icon="icon1" label="公文归档"/>
						<node id="3" icon="icon1" label="公文查询"/>
						<node id="4" icon="icon1" label="通知公告"/>
					</node>
					<node label="人事管理">
						<node label="历史数据查询">
							<node id="5" icon="icon2" label="离职人员查询"/>
						</node>
						<node label="新员工入职">
							<node id="6" icon="icon3" label="基本信息"/>
							<node id="7" icon="icon3" label="员工转正"/>
						</node>
						<node label="工资管理">
							<node id="8" icon="icon4" label="设置公式"/>
							<node id="9" icon="icon4" label="工资发放"/>
						</node>
					</node>
					<node label="决策支持">
						<node id="11" icon="icon5" label="规则设置"/>
					</node>
				</node>
			
			private function init():void{
				iconArr["oa"]=icon_oa;
				iconArr["icon1"]=icon_1;
				iconArr["icon2"]=icon_2;
				iconArr["icon3"]=icon_3;
				iconArr["icon4"]=icon_4;
				iconArr["icon5"]=icon_5;
				this.expendAllTreeNode();
				this.addTreeMenu();
				tree.contextMenu.addEventListener(ContextMenuEvent.MENU_SELECT,rightClickHandler);
			}
			
			/*
			* 展开树
			*/
			public function expendAllTreeNode(): void {
				tree.validateNow();
				tree.selectedIndex = 0;
				tree.expandChildrenOf(tree.selectedItem,true);
			}
			
			/*
			* 添加右键菜单
			*/
			public function addTreeMenu():void{
				var menu:ContextMenu=new ContextMenu();
				menu.hideBuiltInItems();
				menuItem=new ContextMenuItem("打开");
				menuItem.visible=false;
				menu.customItems.push(menuItem);
				tree.contextMenu=menu;
			}
			
			/*
			* 设置节点图标
			*/
			private function setIcon(item:Object):Class{
				var node:XML = item as XML;
				var nodeIcon:String = node.@icon;
				if(node!=null && nodeIcon!=null && nodeIcon.length!=0)
					return iconArr[nodeIcon];
				else
					return null;
			}
			
			/*
			* 处理右键事件
			*/
			private function rightClickHandler(ev:ContextMenuEvent):void{
				menuItem.visible=false;
				var tag:Object=ev.mouseTarget;
				//右键时行选中,此处需捕获异常
				try{
					if(tag && tag.parent && tag.parent.data && (tag.parent.data is XML))
						tree.selectedItem = tag.parent.data;
				}catch(ex:Error){
				}
				
				var node:XML = tree.selectedItem as XML;
				if(node!=null && node.@id!=null){
					var nodeId:String = node.@id;
					if(nodeId.length>0)
						menuItem.visible = true;
				}
			}
		]]>
	</fx:Script>
	<s:HGroup width="30%" height="100%">
		<mx:Tree id="tree" width="100%" height="100%" dataProvider="{xml}"
				 labelField="@label" iconFunction="setIcon" />
	</s:HGroup>
</s:Application>

 

分享到:
评论
1 楼 bluesummer 2011-08-01  
试了,不行。奇怪。

相关推荐

    js动态树型结构 树型菜单

    树型结构和树型菜单是数据可视化的一种常见方式,它们能够帮助用户有效地组织和导航复杂的数据层次。在这个场景下,"js动态树型结构 树型菜单"指的是使用JavaScript实现的可以动态加载、展示和操作的树状菜单系统。 ...

    易语言-子类化-树型框右键双击进入编辑状态

    “树型框”(Tree Control)是图形用户界面(GUI)中常见的一种控件,它以树状结构展示数据,通常用于层级关系的展示,如文件系统、组织结构等。用户可以通过单击加号(+)来展开或折叠节点,点击节点来选中或操作它...

    一个基于jQuery +ASP.NET实现的树型控件Treeview右键菜单Context Menu 源码例子

    在这个例子中,我们将探讨一个基于jQuery和ASP.NET技术实现的树型控件(TreeView)的右键菜单(Context Menu)功能。这个源码实例旨在帮助开发者了解如何在网页应用中集成这种常见且实用的交互元素。 首先,jQuery...

    多级目录树型结构菜单js代码

    在IT领域,构建一个可操作的多级目录树型结构菜单是常见的需求,尤其是在Web应用中,用于组织和展示复杂的层级关系,如文件系统、权限管理或者导航菜单。这款"多级目录树型结构菜单js代码"正是为解决这类问题而设计...

    推荐一个树型结构的菜单

    在IT领域,尤其是在Web开发中,树型结构的菜单是一种常见的用户界面元素,它能够有效地组织和展示层次化的数据或功能。在这个场景中,我们讨论的是一个被推荐的树型菜单,它被描述为“简单易懂,灵活方便”,这表明...

    js做的树型结构javascript作的树型结构javascript作的树型结构

    js做的树型结构,应该是很好的,javascript作的树型结构javascript作的树型结构javascript作的树型结构javascript作的树型结构javascript作的树型结构javascript作的树型结构javascript作的树型结构javascript作的树型...

    子类化-树型框右键双击进入编辑状态-易语言

    原贴 http://bbs.eyuyan.com/read.php?tid=406479fpage=2 http://www.eyuyan.la/post/14928.html 修改自版主的源码,仅做了一点小修改,保存源码到此备用.

    树型结构菜单

    树型结构菜单是一种常见的网页和应用程序界面设计元素,它用于组织和展示层次化的数据或功能。在本场景中,我们讨论的是如何在网站上实施这种菜单以提高用户体验和导航效率。下面将详细介绍树型结构菜单的概念、优势...

    教你如何用java开发树型结构

    在JSP和J2EE开发中,树型结构常用于构建动态的、可交互的用户界面,例如文件浏览器、菜单系统等。 在"教你如何用java开发树型结构"的主题中,我们将会探讨以下几个核心知识点: 1. **树型数据结构**:首先,理解树...

    pb9 datawindow treeview 树型结构

    `treedw.pbl`可能包含了实现树型结构DataWindow的代码和对象,而`treedwdemo.pbl`可能是演示或测试这个功能的应用程序。 5. **`.pbr` 和 `.pbt` 文件** - `.pbr`文件是编译后的DataWindow资源文件,包含了运行时...

    多级目录树型结构菜单js代码.zip

    在IT领域,尤其是在网页开发中,构建一个多级目录树型结构菜单是常见的需求,它可以用于网站导航、文件管理系统等场景。这种菜单能够清晰地展示层级关系,帮助用户更有效地浏览和操作大量的信息。本资源“多级目录...

    jQuery多级目录树型结构菜单代码.zip

    &lt;link rel="stylesheet" type="text/... 这是一款带日志多级目录树型结构菜单js代码,可以动态添加和删除树节点,可以制作多级树结构,每个节点上可以都带有右键上下文菜单,并且每个节点上都可以配置不同的图标。

    java递归树型结构通用数据库

    Java递归树型结构通用数据库是指使用Java语言实现的递归树型结构数据库系统,该系统可以实现树型结构的部门管理,包括部门的添加、删除、修改和查询等操作。 知识点: 1. 递归树型结构数据库设计 在Java递归树型...

    一种基于Ajax的动态树型结构的设计与实现.pdf

    当前,网络上常见的树型结构主要分为两类:静态树型结构和动态树型结构。静态树型结构实现起来较为简单,但不支持动态更新节点信息。相比之下,动态树型结构虽然能够实时添加、修改或删除节点,但在传统的实现方式中...

    php ajax树型菜单 Tree菜单实例.rar

    在网页设计中,树型菜单是一种常见的用户界面元素,它能有效地组织和展示层次结构的信息。"php ajax树型菜单 Tree菜单实例" 提供了一种使用PHP和AJAX技术实现的动态树形菜单解决方案,特别适合于内容管理系统(CMS)...

    树型菜单和分支菜单

    树型菜单和分支菜单是两种常见的交互模式,用于组织和展示大量的层级数据。这两种菜单类型在各种软件和Web应用中都有广泛的应用,如文件管理器、操作系统、企业级系统等。 树型菜单,也称为多级菜单或层级菜单,它...

    Delphi中数据库关联树型结构生成与同步数据维护.zip_数据同步_数据库关联_数据维护_树型结构生成

    通过学习和分析这个实例,开发者能够掌握如何在Delphi 7中实现数据库关联树型结构的生成和数据同步维护。 总的来说,Delphi中的数据库关联树型结构生成与同步数据维护是一项综合性的任务,它涵盖了数据库设计、用户...

    javascript右键菜单控件,树控件,日期控件

    javascript右键菜单控件,树控件,日期... 树控件:实现树型数据结构的基本展现方式,提供树节点的查找和维护 右键菜单:提供独立的右键菜单组件,可绑定在任何控件下。 日期菜单:采用popup技术封装的时间控件。

Global site tag (gtag.js) - Google Analytics