Flex Tree以及复选框tree(icon)

<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml"
		   xmlns:views="com.zteits.atms.util.Componment.*"
		   xmlns:controls="com.zteits.atms.component.it.sephiroth.controls.*"
		   width="100%" 
		   height="100%" 
		   borderStyle="none" 
		   creationComplete="myinit()" 
		   layout="absolute">
	<mx:Script source="Sig_Test_mokuai.as"/>
	<mx:RemoteObject id="SigMsgAction"
					 destination="SigMsgAction"
					 fault="faultHandler(event)"
					 showBusyCursor="true">
		<mx:method name="getTestTree" result="processTest(event.result)"/>
		<mx:method name="getTestTree2" result="processTest2(event.result)"/>
	</mx:RemoteObject>
	<mx:HBox width="100%" height="100%">
		<mx:VBox width="30%" height="100%" paddingLeft="5" paddingRight="5" paddingTop="5" paddingBottom="5">
			<mx:VBox width="100%" height="100%">
				<mx:Tree  id="tree1" 
						  width="100%" 
						  height="100%"
						  labelField="@name"
						  showRoot="true"
						  backgroundColor="#FFFFFF"
						  iconFunction="iconfuction"
						  itemClick="treeChanged(event)"
						  >
				</mx:Tree>
			</mx:VBox>
			<mx:HBox width="100%" horizontalAlign="right">
				<mx:Button label="获得树" click="getTree();"/>
			</mx:HBox>	
		</mx:VBox>	
		
		<mx:VBox width="30%" height="100%" paddingLeft="5" paddingRight="5" paddingTop="5" paddingBottom="5">
			<mx:VBox width="100%" height="100%">
				<controls:TreeCheckBox id="tree2" width="100%" height="100%" checkField="@isSelect"
									   itemCheck="onItemCheck(event)" labelField="@name"
									   openItems="{xml.node}"/>
			</mx:VBox>
			<mx:HBox width="100%" horizontalAlign="right">
				<mx:Button label="获得树2" click="getTree2();"/>
			</mx:HBox>	
		</mx:VBox>	
	</mx:HBox>	
</mx:Module>

as

import com.zteits.atms.component.it.sephiroth.renderers.TreecheckboxItemRenderer;
import com.zteits.atms.sig.monitor.vo.NodeForDeviceControl;

import flash.events.Event;

import mx.controls.Alert;
import mx.controls.Tree;
import mx.events.TreeEvent;
import mx.rpc.events.FaultEvent;

var xml:XML= null;

//111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

private function myinit():void
{
}
private function faultHandler(event:FaultEvent):void
{
	Alert.show("fault");
}
+++++++++++打开root下的树的方法!!!!
//private function processTest(result:Object):void
//{
//	var xmlstr:String=result.toString();
//	xml =new XML(xmlstr);
//	this.tree1.dataProvider=xml;
//	expendAllTree(tree1);
//}
//private function expendAllTree(tree:Tree):void
//{
//	for each (var item:XML in tree.dataProvider)
//	{
//      //可以用@+属性
//		Alert.show(""+item.@name);
//		tree.openItems=item;
//		tree.expandChildrenOf(item, true);
//	}
//}
//+++++++++++++++++++++++打开全部树的方法
private function processTest(result:Object):void
{
	var xmlstr:String=result.toString();
	xml =new XML(xmlstr);
	this.tree1.dataProvider=xml;
	tree1.callLater(expendAllTree);
	//	expendAllTree(tree1);
}

private function expendAllTree():void
{
	tree1.expandChildrenOf(xml, true);
}
private function getTree():void
{
	SigMsgAction.getTestTree("tree1");
}
//点击事件的Event不要忘记!!!
public function treeChanged(event:Event):void {
	
	test();
	try{
		//		var selectedNode:NodeForDeviceControl=Tree(event.target).selectedItem as NodeForDeviceControl;
		
		//		可以+@属性,如果想转化成对象,需要给tree赋值的是这个对象的ArrayCollection
		//		Alert.show(""+Tree(event.target).selectedItem.@leaf);
		var selectedNode:Object=Tree(event.target).selectedItem as Object;
		if(selectedNode.@leaf=="1"){
			Alert.show("yezi");
		}
	}catch (error:Error)
	{
		Alert.show(error.message.toString());
	}
	
}
public function test():void
{
	//   
	Alert.show("-"+(1 << 1 | 2 << 1));  //6
	Alert.show("+"+(1 << 1 & 2 << 1));  //0
	Alert.show("-"+(5|3)+","+(3|5));    //7,7
	Alert.show("+"+(5&3)+","+(3&5));    //1,1
	
	Alert.show("~2:"+(~2));             //-3
}
//111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
//111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

//22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222


private function processTest2(result:Object):void
{
	var xmlstr:String=result.toString();
	xml =new XML(xmlstr);
	this.tree2.dataProvider=xml;
	tree2.callLater(expendAllTree2);
	//	expendAllTree(tree1);
}
private function expendAllTree2():void
{
	tree2.expandChildrenOf(xml, true);
}

private function getTree2():void
{
	SigMsgAction.getTestTree2("tree2");
}

[Embed(source="com/zteits/atms/sig/image/Sig1.png")]
[Bindable]  
public var bule:Class; 
[Embed(source="com/zteits/atms/sig/image/folder.png")]
[Bindable]
public var folder:Class;
private  function iconfuction(event:Object):*{
	if(event.@leaf == 0){
		return folder;
	}else{
		return bule;
	}
}
//点击事件的Event不要忘记!!!
public function treeChanged2(event:Event):void {
	try{
//		var selectedNode:NodeForDeviceControl=Tree(event.target).selectedItem as NodeForDeviceControl;
		
//		可以+@属性,如果想转化成对象,需要给tree赋值的是这个对象的ArrayCollection
//		Alert.show(""+Tree(event.target).selectedItem.@leaf);
		var selectedNode:Object=Tree(event.target).selectedItem as Object;
		if(selectedNode.@leaf=="1"){
//			Alert.show("yezi");
		}
	}catch (error:Error)
	{
		Alert.show(error.message.toString());
	}

}
//需要common包里的as类
private function onItemCheck(event:TreeEvent):void
{
	updateParents(event.item as XML, (event.itemRenderer as TreecheckboxItemRenderer).checkBox.checkState);
	updateChilds(event.item as XML, (event.itemRenderer as TreecheckboxItemRenderer).checkBox.checkState);
}
/**
 * 更新树节点
 */
private function updateParents(item:XML, value:uint):void
{
	var checkValue:String=(value == (1 << 1 | 2 << 1) ? "2" : value == (1 << 1) ? "1" : "0");
	var parentNode:XML=item.parent();
	if (parentNode)
	{
		for each (var x:XML in parentNode.node)
		{
			if (x.@isSelect != checkValue)
			{
				checkValue="2";
			}
		}
		parentNode.@isSelect=checkValue;
		updateParents(parentNode, value);
	}
}
/**
 * 更新树的分支
 */
private function updateChilds(item:XML, value:uint):void
{
	var middle:Boolean=(value & 2 << 1) == (2 << 1);
	var selected:Boolean=(value & 1 << 1) == (1 << 1);
	
	if (item.children().length() > 0 && !middle)
	{
		for each (var x:XML in item.node)
		{
			x.@isSelect=value == (1 << 1 | 2 << 1) ? "2" : value == (1 << 1) ? "1" : "0";
			updateChilds(x, value);
		}
	}
}
//22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
//22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222

java

//-------------------------------------------------------------------------
	public String getTestTree(String conditions) throws Exception
	{
		System.out.println("action--------------");
		org.dom4j.Document doc = null;
        org.dom4j.Element root = null;
        
        doc = org.dom4j.DocumentHelper.createDocument();
        //+++++++root 赋到 doc上
        //=======doc有addElement()
        root = doc.addElement("node");
        
        root.addAttribute("id", "1");
        root.addAttribute("name", "All");
        root.addAttribute("leaf", "0");
        root.addAttribute("age", "100");
        //+++++++创建element,在后面在加到root
        org.dom4j.Element element = DocumentHelper.createElement("node");
        element.addAttribute("id", "11");
        element.addAttribute("name", "lv");
        element.addAttribute("leaf", "1");
        element.addAttribute("age", "25");
        
        org.dom4j.Element element2 = DocumentHelper.createElement("node");
        element2.addAttribute("id", "12");
        element2.addAttribute("name", "gao");
        element2.addAttribute("leaf", "0");
        element2.addAttribute("age", "23");
        
        org.dom4j.Element element21 = DocumentHelper.createElement("node");
        element21.addAttribute("id", "121");
        element21.addAttribute("name", "gao大");
        element21.addAttribute("leaf", "1");
        element21.addAttribute("age", "23");
        
        element2.add(element21);
        
        org.dom4j.Element element22 = DocumentHelper.createElement("node");
        element22.addAttribute("id", "122");
        element22.addAttribute("name", "gao小");
        element22.addAttribute("leaf", "1");
        element22.addAttribute("age", "23");
        
        element2.add(element22);
        //=======root用add(),而不是用addElement()
        root.add(element);
        root.add(element2);
		return doc.asXML();
	}
	//-------------------------------------------------------------------------
		public String getTestTree2(String conditions) throws Exception
		{
			System.out.println("action--------------");
			org.dom4j.Document doc = null;
	        org.dom4j.Element root = null;
	        
	        doc = org.dom4j.DocumentHelper.createDocument();
	        //+++++++root 赋到 doc上
	        //=======doc有addElement()
	        root = doc.addElement("node");
	        
	        root.addAttribute("id", "1");
	        root.addAttribute("name", "All");
	        root.addAttribute("leaf", "0");
	        root.addAttribute("age", "100");
	        root.addAttribute("isSelect", "0");
	        //+++++++创建element,在后面在加到root
	        org.dom4j.Element element = DocumentHelper.createElement("node");
	        element.addAttribute("id", "11");
	        element.addAttribute("name", "lv");
	        element.addAttribute("leaf", "1");
	        element.addAttribute("age", "25");
	        element.addAttribute("isSelect", "0");
	        
	        org.dom4j.Element element2 = DocumentHelper.createElement("node");
	        element2.addAttribute("id", "12");
	        element2.addAttribute("name", "gao");
	        element2.addAttribute("leaf", "0");
	        element2.addAttribute("age", "23");
	        element2.addAttribute("isSelect", "0");
	        
	        org.dom4j.Element element21 = DocumentHelper.createElement("node");
	        element21.addAttribute("id", "121");
	        element21.addAttribute("name", "gao大");
	        element21.addAttribute("leaf", "1");
	        element21.addAttribute("age", "23");
	        element21.addAttribute("isSelect", "0");
	        
	        element2.add(element21);
	        
	        org.dom4j.Element element22 = DocumentHelper.createElement("node");
	        element22.addAttribute("id", "122");
	        element22.addAttribute("name", "gao小");
	        element22.addAttribute("leaf", "1");
	        element22.addAttribute("age", "23");
	        element22.addAttribute("isSelect", "0");
	        
	        element2.add(element22);
	        //=======root用add(),而不是用addElement()
	        root.add(element);
	        root.add(element2);
			return doc.asXML();
		}



 


 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值