Autodesk forge 将内置扩展按钮应用于自定义工具栏
我正在寻找一种在另一个工具栏中显示forge viewer buildin扩展按钮的方法。 例如,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。 但当我这样做时,控制按钮的某些功能不再可用 例如,当我在另一个工具
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
对象。当然,这需要或多或少的努力,这取决于扩展的实现方式