如何自定义Viewer属性面板

发布于 2022-09-04 13:39:43 字数 171 浏览 14 评论 0

在Viewer中,我想调整当前默认的属性面板,增加一些其它属性,这个如何才能做到?
图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

江南月 2022-09-11 13:39:43

如果要修改属性面板,有两种方法。

  1. 正如 @most_wanted 提到的用 addProperty 方法,比如如下代码:

    AdjustPropertyPanel = function () {

    var propertyPanel = _viewer.getPropertyPanel(true)
    propertyPanel.setTitle('My Panel')
    propertyPanel.addProperty('test', 'john', 'new cat', null)
    propertyPanel.setVisible(true)

    }

    但是这个会有局限性,如果这段代码加到 Autodesk.Viewing.SELECTION_CHANGED_EVENT 事件中时,该事件回调函数执行后,viewer又会调用 propertyPanel 的 setNodeProperties() 函数,这个会导致整个property panel 被重新刷新,新增的属性会丢失。

  2. 另外一种方法就是扩展原有的property panel,直接重载了原有的 Property Panel,比如 Viewing.ClassroomTrainning.AdnPropertyPanel, 其中在setProperties 函数中额外添加自己的自定义属性。

    Viewing.ClassroomTrainning.AdnPropertyPanel = function (viewer) {

    var _panel = this

    var _viewer = viewer

    var _selectedNodeId = ''

    Autodesk.Viewing.Extensions.ViewerPropertyPanel.call(
    _panel,
    _viewer)

    _panel.setNodeProperties = function (nodeId) {
    Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype.setNodeProperties.call(

    _panel,
    nodeId)
    

    _selectedNodeId = nodeId
    }

    _panel.setProperties = function (properties) {
    Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype.setProperties.call(

    _panel, properties)
    

    _panel.addProperty(

    'Node Id', // property name
    _selectedNodeId, // property value
    'Customization') // group name
    

    }

    }
    
    Viewing.ClassroomTrainning.AdnPropertyPanel.prototype =

    Object.create(
    Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype)

    
    Viewing.ClassroomTrainning.AdnPropertyPanel.prototype.constructor =

    Viewing.ClassroomTrainning.AdnPropertyPanel

以上的例子代码都在我的Github,
https://github.com/JohnOnSoft...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文