【问题标题】:Remove tools button from Forge settingsTools Toolbar从 Forge 设置工具工具栏中删除工具按钮
【发布时间】:2019-07-31 20:57:19
【问题描述】:

我想从 Forge 工具栏中删除一些按钮。

到目前为止,我已经使用了@Philippe 在PhilippeAnswer 的代码,并成功删除了“navTools”和“modelTools”中的所有按钮。尝试使用“settingsTools”时,我只能删除 ModelBrowser 按钮,而不是“属性”或“设置”或“全屏”按钮(在调试模式下,我将这些控件视为空值)。这是我的代码:

var viewerDiv = document.getElementById('MyViewerDiv');
viewer = new Autodesk.Viewing.Private.GuiViewer3D(viewerDiv);
const onExtensionLoaded = (e) => {
    if (e.extensionId === 'Autodesk.DefaultTools.NavTools') {
        const settingsTools = viewer.toolbar.getControl('settingsTools')
        settingsTools.removeControl('toolbar-modelStructureTool') //That's ok!

        settingsTools.removeControl('toolbar-propertiesTool')  //NOT FUNCTIONING          
        const settingsButton = settingsTools.getControl('toolbar-propertiesTool') //It remains as null when debugging
        settingsTools.removeControl(settingsButton)

        settingsTools.removeControl('toolbar-settingsTool') //NOT FUNCTIONING          

        settingsTools.removeControl('toolbar-fullscreenTool') //NOT FUNCTIONING          

        viewer.removeEventListener(
            Autodesk.Viewing.EXTENSION_LOADED_EVENT,
            onExtensionLoaded)
    }
} 
viewer.addEventListener(Autodesk.Viewing.EXTENSION_LOADED_EVENT, onExtensionLoaded)
viewer.start(svfUrl, modelOptions, onLoadModelSuccess, onLoadModelError);

我知道我可以隐藏整个 settingsTool,但是在将 Property/Settings/Fullscreen 按钮设置为 true 时我遇到了同样的问题。调试代码时,控件似乎再次保持为空。

请问,您能帮我处理一下“settingsTools”工具栏中的最后三个按钮吗? 本质上,我试图了解查看器的全局自定义,删除 UI 中的所有内容不是我的目的:)

谢谢!!

【问题讨论】:

  • 我更喜欢只使用.css,因为它在.adsk-viewing-viewer #toolbar-settingsTool{display:none!important}的版本之间似乎更稳定

标签: autodesk-forge autodesk-viewer


【解决方案1】:

何时删除特定按钮取决于它是否由扩展程序创建,如果是,则由哪个扩展程序创建。

Philippe 的回答中提到的“toolbar-firstPersonTool”按钮是由“Autodesk.FirstPerson”扩展创建的,因此我们可以只听该扩展的加载。

但是,您感兴趣的按钮,例如“toolbar-modelStructureTool”是“内置”的,而不是由扩展程序创建的。所以你必须收听另一个事件,如这篇博文所示的“TOOLBAR_​​CREATED_EVENT”: When to remove toolbar buttons

【讨论】: