Autodesk forge 将内置扩展按钮应用于自定义工具栏

Autodesk forge 将内置扩展按钮应用于自定义工具栏,autodesk-forge,autodesk-viewer,Autodesk Forge,Autodesk Viewer,我正在寻找一种在另一个工具栏中显示forge viewer buildin扩展按钮的方法。 例如,Autodesk.DocumentBrowser或Autodesk.LayerManager 我找到了一种将控件按钮添加到自定义工具栏的方法,方法是在Autodesk.Viewing.UI.ControlGroup.Event.control\u ADDEDEvent中请求控件id,从原始工具栏中删除控件并将其添加到anthoer。 但当我这样做时,控制按钮的某些功能不再可用 例如,当我在另一个工具

我正在寻找一种在另一个工具栏中显示forge viewer buildin扩展按钮的方法。 例如,
Autodesk.DocumentBrowser
Autodesk.LayerManager

我找到了一种将控件按钮添加到自定义工具栏的方法,方法是在
Autodesk.Viewing.UI.ControlGroup.Event.control\u ADDED
Event中请求控件id,从原始工具栏中删除控件并将其添加到anthoer。 但当我这样做时,控制按钮的某些功能不再可用

例如,当我在另一个工具栏中加载
Autodesk.DocumentBrowser
时,我可以像往常一样使用它。但在切换视图后,contorl按钮将永远保持激活状态。按下按钮后面板将切换,但按钮将保持激活状态

我还尝试将选项传递给此方法,但这不会影响任何内容:

viewer.loadExtension(“Autodesk.DocumentBrowser”{parentControl:“自定义工具栏”})

有没有更好的方法来实现这一点?有什么想法吗?

不幸的是,内置查看器扩展没有提供任何关于按钮应添加到哪个工具栏的配置。此外,扩展通常会在其代码中引用主工具栏(
this.viewer.toolbar
),因此即使您手动将其按钮移动到另一个工具栏中,也很可能会遇到各种奇怪的行为


我相信最安全的方法是完全创建新的工具栏按钮,并尝试尽可能多地重用扩展的功能。例如,对于
Autodesk.DocumentBrowser
扩展,您可以尝试对
DocumentBrowser
类进行子类化,并覆盖其内部用于添加工具栏UI的
UiController
对象。当然,这需要或多或少的努力,这取决于扩展的实现方式。

不幸的是,内置查看器扩展没有提供任何关于按钮应添加到哪个工具栏的配置。此外,扩展通常会在其代码中引用主工具栏(
this.viewer.toolbar
),因此即使您手动将其按钮移动到另一个工具栏中,也很可能会遇到各种奇怪的行为

我相信最安全的方法是完全创建新的工具栏按钮,并尝试尽可能多地重用扩展的功能。例如,对于
Autodesk.DocumentBrowser
扩展,您可以尝试对
DocumentBrowser
类进行子类化,并覆盖其内部用于添加工具栏UI的
UiController
对象。当然,这需要或多或少的努力,这取决于扩展的实现方式