提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:王香|2019-01-24 10:05:21.000|阅读 1561 次
概述:通过创建由GraphObjects组成的模板以及在这些对象上设置属性来设置节点的样式。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
通过创建由GraphObjects组成的模板以及在这些对象上设置属性来设置节点的样式。要创建一个Node,我们可以使用几个构建块类:
所有这些构建块都是从GraphObject抽象类派生的 ,因此我们随便将它们称为GraphObjects或对象或元素。请注意,GraphObject 不是 HTML DOM元素,因此创建或修改此类对象的开销不会太大。
我们希望模型数据属性影响我们的节点,这是通过数据绑定完成的。数据绑定允许我们通过自动将这些GraphObjects上的属性设置为从模型数据中获取的值来更改节点中GraphObjects的外观和行为。模型数据对象是纯JavaScript对象。您可以选择在模型中的节点数据上使用您喜欢的任何属性名称。
默认的Node模板很简单:包含一个TextBlock的节点。TextBlock的text属性和模型数据的key属性之间存在数据绑定。在代码中,模板看起来像这样:
myDiagram.nodeTemplate = $(go.Node, $(go.TextBlock, // TextBlock.text is bound to Node.data.key new go.Binding("text", "key")) );
TextBlocks,Shapes和Pictures是GoJS的原始构建块。TextBlocks不能包含图像; 形状不能包含文本。如果希望节点显示某些文本,则必须使用TextBlock。如果要绘制或填充某些几何图形,则必须使用“形状”。
更一般地说,Node模板的框架看起来像这样:
myDiagram.nodeTemplate = $(go.Node, "Vertical", // second argument of a Node/Panel can be a Panel type /* set Node properties here */ { // the Node.location point will be at the center of each node locationSpot: go.Spot.Center }, /* add Bindings here */ // example Node binding sets Node.location to the value of Node.data.loc new go.Binding("location", "loc"), /* add GraphObjects contained within the Node */ // this Shape will be vertically above the TextBlock $(go.Shape, "RoundedRectangle", // string argument can name a predefined figure { /* set Shape properties here */ }, // example Shape binding sets Shape.figure to the value of Node.data.fig new go.Binding("figure", "fig")), $(go.TextBlock, "default text", // string argument can be initial text string { /* set TextBlock properties here */ }, // example TextBlock binding sets TextBlock.text to the value of Node.data.key new go.Binding("text", "key")) );
Panel中GraphObjects的嵌套可以任意深入,每个类都有自己独特的属性集可供探索,但这显示了一般的想法。
现在我们已经了解了如何制作Node模板,让我们看一个实例。我们将制作组织图中常见的简单模板 - 名称旁边的图像。请考虑以下Node模板:
“Horizontal”面板类型的节点,意味着其元素将并排水平布局。它有两个要素:
var $ = go.GraphObject.make; var myDiagram = $(go.Diagram, "myDiagramDiv", { "undoManager.isEnabled": true // enable Ctrl-Z to undo and Ctrl-Y to redo }); // define a simple Node template myDiagram.nodeTemplate = $(go.Node, "Horizontal", // the entire node will have a light-blue background { background: "#44CCFF" }, $(go.Picture, // Pictures should normally have an explicit width and height. // This picture has a red background, only visible when there is no source set // or when the image is partially transparent. { margin: 10, width: 50, height: 50, background: "red" }, // Picture.source is data bound to the "source" attribute of the model data new go.Binding("source")), $(go.TextBlock, "Default Text", // the initial value for TextBlock.text // some room around the text, a larger font, and a white stroke: { margin: 12, stroke: "white", font: "bold 16px sans-serif" }, // TextBlock.text is data bound to the "name" attribute of the model data new go.Binding("text", "name")) ); var model = $(go.Model); model.nodeDataArray = [ // note that each node data object holds whatever properties it needs; // for this app we add the "name" and "source" properties { name: "Don Meow", source: "cat1.png" }, { name: "Copricat", source: "cat2.png" }, { name: "Demeter", source: "cat3.png" }, { /* Empty node data */ } ]; myDiagram.model = model;
该代码生成此图:
当不存在所有信息时,我们可能希望显示一些“默认”状态,例如,当图像未加载或名称未知时。此示例中的“空”节点数据用于显示节点模板可以在没有绑定数据的任何属性的情况下完美地工作。
购买GoJS正版授权,请点击“”哟!
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢