TWaver HTML5学习笔记 —— 动态设置网元样式
来源:互联网 发布:go语言 知乎 编辑:程序博客网 时间:2024/05/28 16:17
一、学习内容概述:
学习如何在拓扑图中动态设置网元的样式。
二、学习内容总结:
1、添加属性表格:
1)、属性表格定义:使用twaver.controls.PropertySheet类,例如:
var nodeStylePropertySheet = new twaver.controls.PropertySheet();
2)、设置属性表格可编辑:setEditable(true)
nodeStylePropertySheet.setEditable(true);
3)、添加属性表格关联的对象及关联事件:
var nodeStyleData = new twaver.Element();var propertyBox = nodeStylePropertySheet.getPropertyBox();topo.Util.addClientProperty(propertyBox, "label.color").setEnumInfo(['black', 'red']);nodeStyleData.setClient("label.color", "black");nodeStylePropertySheet.getDataBox().add(nodeStyleData);nodeStylePropertySheet.getDataBox().getSelectionModel().setSelection(nodeStyleData);nodeStylePropertySheet.getDataBox().addDataPropertyChangeListener(function handlePropertyChange(e) {var name = topo.Util.getPropertyName(e);network.getElementBox().forEach(function(element) {if ( element instanceof twaver.Node || element instanceof twaver.Link) {element.setStyle(name, e.newValue);}});}, this);4)、添加各种类型的属性参考(代码来源于demo):
var map = { '': 'None', 'default': 'Default', 'children': 'Children', 'descendant': 'Descendant', 'descendantAncestor': 'Descendant and Ancestor' }; demo.Util.addClientProperty(propertyBox, "check.mode") .setEnumInfo({ map: map, values: ['', 'default', 'children', 'descendant', 'descendantAncestor'] }); demo.Util.addClientProperty(propertyBox, "checkable.function").setEnumInfo(['Leaf', 'Category', 'Check Network', 'Check All']); demo.Util.addClientProperty(propertyBox, "unCheckable.style").setEnumInfo(['none', 'disabled']); demo.Util.addClientProperty(propertyBox, "show.icon").setValueType('boolean'); demo.Util.addClientProperty(propertyBox, "layout.type").setEnumInfo(demo.LAYOUT_TYPE); this.data.setClient("check.mode", this.tree.isCheckMode()); this.data.setClient("checkable.function", 'Check All'); this.data.setClient("unCheckable.style", this.tree.getUncheckableStyle()); this.data.setClient("show.icon", true); this.data.setClient("layout.type", 'round');
三、验证代码运行效果截图:
四、验证代码:
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>动态设置网元样式</title><script type="text/javascript" src="./js/twaver.js"></script><script type="text/javascript" src="./js/topo.js"></script><script type="text/javascript">function init() {// 添加网元var box = new twaver.ElementBox();// 创建拓扑图var network = new twaver.network.Network(box);// 注册图片topo.Util.registerImage("./images/ne/route.png");topo.Util.registerImage("./images/ne/route_icon.png");var node = new twaver.Node();node.setName("ne1");node.setLocation(20, 30);node.setImage("route");node.setIcon("route_icon");box.add(node);var node2 = new twaver.Node();node2.setName("ne2");node2.setLocation(80, 150);node2.setImage("route");node2.setStyle("label.color", "black");node2.setIcon("route_icon");box.add(node2);var link = new twaver.Link(node, node2);link.setName("ne1 -- ne2");link.setToolTip("<b> ne1 -- ne2</b>");box.add(link);// 创建网元树var tree = new twaver.controls.Tree(box);tree.setCheckMode('descendantAncestor');// 设置在网元树中只显示节点tree.setVisibleFunction(function(element) {return element instanceof twaver.Node;});// 存储网元样式的变更的sheet页var nodeStyleData = new twaver.Element();var nodeStylePropertySheet = new twaver.controls.PropertySheet();nodeStylePropertySheet.setEditable(true);var propertyBox = nodeStylePropertySheet.getPropertyBox();topo.Util.addClientProperty(propertyBox, "label.color").setEnumInfo(['black', 'red']);nodeStyleData.setClient("label.color", "black");nodeStylePropertySheet.getDataBox().add(nodeStyleData);nodeStylePropertySheet.getDataBox().getSelectionModel().setSelection(nodeStyleData);nodeStylePropertySheet.getDataBox().addDataPropertyChangeListener(function handlePropertyChange(e) {var name = topo.Util.getPropertyName(e);network.getElementBox().forEach(function(element) {if ( element instanceof twaver.Node || element instanceof twaver.Link) {element.setStyle(name, e.newValue);}});}, this);// 拓扑各视图布局var rightSplit = new twaver.controls.SplitPane(network, nodeStylePropertySheet, 'vertical', 0.7);var mainSplitPane = new twaver.controls.SplitPane(tree, rightSplit, 'horizontal', 0.3);var networkDom = mainSplitPane.getView();networkDom.style.width = "100%";networkDom.style.height = "100%";document.body.appendChild(networkDom);network.getView().style.backgroundColor = "#f3f3f3";network.getView().style.cursor = "hand";window.onresize = function() {mainSplitPane.invalidate();};}</script></head><body onload="init()" style="margin:0;"></body></html>
0 0
- TWaver HTML5学习笔记 —— 动态设置网元样式
- TWaver HTML5学习笔记 —— 动态设置网元图片大小
- TWaver HTML5学习笔记 —— 选择隐藏网元
- TWaver HTML5学习笔记 —— 拓扑右键菜单
- TWaver HTML5学习笔记 —— 复制网络元素
- TWaver网元动态转动效果
- TWaver HTML5学习笔记 —— 拓扑元素添加标签图标
- TWaver HTML5学习笔记 —— 通过图层方式控制元素是否显示
- TWaver HTML5学习笔记 —— 可定制的右键菜单
- TWaver Group共享网元
- as3学习笔记5:动态设置TextField的样式
- 学习笔记-《零基础学习HTML5—html+css基础 》4.CSS基础样式(上)
- 【HTML5学习笔记】26:CSS其它样式
- 《HTML5学习笔记—基础知识》
- Twaver-HTML5技术入门
- HTML5权威指南笔记:22-设置文本样式
- php——学习笔记 设置背景和段落以及段落样式
- Python学习笔记 —— 元组
- 命令提示符在哪里
- 得到屏幕真实高度包含NavigationBar
- C# 编译错误cs0106
- XMPP协议学习笔记四(Openfire服务器启动过程)
- 【Java并发编程】之二:线程中断(含代码)
- TWaver HTML5学习笔记 —— 动态设置网元样式
- 【转载】把二元查找树转变成排序的双向链表
- Redis学习笔记-Redis安装
- Codeforces Round #238 (Div. 2)C:Unusual Product
- HighCharts之2D含有负值的面积图
- datagrid 修改列宽字体 苏州金鲨信息科技有限公司
- C语言枚举类型
- hdu4267线段树段更新,点查找,55棵线段树.
- Scala开发入门教程