如何在autodesk forge中创建两级上下文菜单

时间:2017-08-23 09:56:17

标签: autodesk-forge forge autodesk-viewer

我想创建两个级别的上下文菜单但是没有这个api。就像这样 level context menu image 我能做什么?

2 个答案:

答案 0 :(得分:0)

不幸的是,目前的查看器版本无法使用它。您可能需要深入编写自己的上下文菜单。但是你可以遵循一个解决方法:

  1. 覆盖Autodesk.Viewing.UI.ObjectContextMenu的功能以提供多级菜单。
  2. 参考ObjectContextMenu中的代码,然后在步骤1中创建您拥有的contextMenu并将ContextMenu属性替换为您拥有的多个级别Autodesk.Viewing.Extensions.ViewerObjectContextMenu
  3. 参考ViewerObjectContextMenu中的代码,然后编写从步骤2继承自定义ObjectContextMenu的您拥有的{{1}}。
  4. <强> P.S。这只是一种解决方法,它不是正式的解决方案,您可能需要自担风险使用它。

答案 1 :(得分:0)

通过从Autodesk.Viewing.UI.ObjectContextMenu派生来实现多级上下文菜单是相当直接的。只需在target字段中提供一个数组:

buildMenu (event, node) {

  var menu = []

  switch (node.type) {

    case 'hubs':

      menu.push({
        title: 'Show details',
        className: 'fa fa-share',
        target: [{
          title: 'Hub details',
          className: 'fa fa-cloud',
          target: () => {
            this.emit('context.details', {
              event, node, type: 'hubs'
            })
          }
        }, {
          title: 'Projects details',
          className: 'fa fa-folder',
          target: () => {
            this.emit('context.details', {
              event, node, type: 'hubs.projects'
            })
          }
        }]
      })

      break

enter image description here

可以在此处找到完整的示例:DataContextMenu.js