Flex tree 添加删除节点
来源:互联网 发布:sql语句表的别名 编辑:程序博客网 时间:2024/09/21 09:01
1.节点图标可以通过在xml中指定 icon 属性实现。
例如:
<mx:Script>
[Embed(source="/res/img/icons/dot1.png")]
public static var feedIcon:Class
</mx:Script>
<mx:XML id="treeNode" source="TreeNode.xml" format="e4x"></mx:XML>
<mx:Tree id="tree" iconField="@icon" labelField="@label" dataProvider="{treeNode.node}"></mx:Tree>
TreeNode.xml 的内容:
<?xml version='1.0' encoding='utf-8'?>
<menus>
<node label="节点" >
<node icon="feedIcon" label="自定义图标节点"/>
</node>
</menus>
2.删除按钮的实现
首先为Tree指定Render类
<mx:Tree id="tree" itemRenderer="TreeRender" iconField="@icon" labelField="@label" dataProvider="{treeNode.node}"></mx:Tree>
TreeRender类:
public class TreeRender extends TreeItemRenderer
{
public function TreeRender()
{
super();
}
protected var delShape:Image;
override protected function createChildren():void
{
super.createChildren();
delShape= new Image();
delShape.source="close.png";
delShape.addEventListener(MouseEvent.CLICK, changeHandler);
addChild(delShape);
}
protected function changeHandler( event:Event ):void
{
Alert.show("确定要删除吗?", "提示", 3, this, delHandler);
}
private function delHandler(event:CloseEvent):void {
if (event.detail==Alert.YES){
//删除dataProvider中对应节点,算法根据自身情况去写,我这儿只是个例子,不一定适合你
var tree:Tree=this.owner as Tree;
var list:XMLListCollection=tree.dataProvider as XMLListCollection;
var dataSource:XML=list.source.parent();
for(var i:int=0;i<dataSource.elements("node").length();i++){
var xml:XML=dataSource.elements("node")[i];
if(xml.attribute("label")==this.label.text){
delete dataSource.elements("node")[i];
}
}
}
//将删除节点后的XMLListCollection重新写入到文件
var file:File=new File(File.applicationDirectory.nativePath+"/TreeNode.xml");
var fileIn:FileStream=new FileStream();
fileIn.open(file,FileMode.WRITE);
fileIn.writeUTFBytes("<?xml version='1.0' encoding='utf-8'?>/n"+dataSource.toXMLString());
fileIn.close();
Alert.show("删除成功!", "提示");
}
}
override protected function commitProperties():void
{
super.commitProperties();
}
override protected function measure():void
{
super.measure();
measuredWidth += delShape.getExplicitOrMeasuredWidth();
}
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
var startx:Number = data ? TreeListData( listData ).indent : 0;
if (disclosureIcon)
{
disclosureIcon.x = startx;
startx = disclosureIcon.x + disclosureIcon.width;
disclosureIcon.setActualSize(disclosureIcon.width,disclosureIcon.height);
disclosureIcon.visible = data ? TreeListData( listData ).hasChildren : false;
}
if (icon)
{
icon.x = startx;
startx = icon.x + icon.measuredWidth;
icon.setActualSize(icon.measuredWidth, icon.measuredHeight);
}
delShape.move(unscaledWidth-delShape.width, ( unscaledHeight - delShape.height ) / 2 );
delShape.setActualSize(delShape.measuredWidth, delShape.measuredHeight);
}
}
- Flex tree 添加删除节点
- flex tree 节点的添加、删除
- Flex Tree节点的添加、删除
- flex tree的展开,关闭,添加、删除子节点
- 编辑tree节点。添加,删除。
- Flex中删除Tree的节点
- Flex增加和删除Tree节点
- Flex使用<mx:Tree>控件创建树(可添加和删除节点)
- Flex使用<mx:Tree>控件创建树(可添加和删除节点)
- Flex使用<mx:Tree>控件创建树(可添加和删除节点)
- flex中tree判断节点等级并增加、删除节点
- Flex tree增加,删除,查询并定位节点
- Flex tree增加,删除,查询并定位节点
- Flex中Tree组件无刷新删除节点
- Flex 给Tree的每个节点添加自定义图标
- mfc树控件Tree Control 修改添加删除节点
- Easyui Tree对节点进行,添加,修改,删除操作
- flex Tree 展开特定节点
- 项目管理工具选项评测指标
- 学习51单片机的基本调试经验
- TK之button
- MVC 中的Areas支持
- Oracle创建序列
- Flex tree 添加删除节点
- 走进金蝶BOS
- ADROID 2.2 语言定制
- oracle 高级SQL查询
- 1752年9月,很有意思,少了几天,在unix下看到的
- Oracle Update 一定还有你不知道的更新方式
- 被炒到天价 MOTO XOOM到货报价5499元
- vb.net Delegate-入门级
- 思科IOS软件命名规则简单介绍