禁用 ContextMenu - IBM Content Navigator

Posted

技术标签:

【中文标题】禁用 ContextMenu - IBM Content Navigator【英文标题】:Disable ContextMenu - IBM Content Navigator 【发布时间】:2020-04-27 19:11:49 【问题描述】:

有没有办法通过 ACCE 的插件禁用上下文菜单项?试图了解是否可以基于文件夹或基于用户的安全组启用/禁用上下文菜单。我只能设置权限,但我需要比这更好的控制。

【问题讨论】:

【参考方案1】:

虽然这是一个老问题,但答案可能对某人有用。

执行此操作的最简单方法(如果您想永久删除它)是复制包含菜单并删除您想隐藏的菜单项,然后将桌面配置中的 OOTB 菜单替换为您的自定义菜单。

另一种方法是创建Content Navigator plugin,您可以创建自定义操作 (menuitem),该操作与您想要控制的菜单项完全相同。当您安装插件时,您的新操作(menuitem)将在菜单配置的 menuitem 列表中可用。 下一步与您在上面看到的相同:复制 OOTB 菜单,创建自定义菜单,然后删除原始菜单项并替换为您的自定义菜单,然后将 OOTB 菜单替换为您的自定义菜单。

有一个官方 github repo 带有示例插件,可以在这个主题中找到一些想法。

例如,在这个自定义CheckinAction 中,作者希望仅在项目(文档)未锁定、DSSignatureStatus 属性为 true 并且超类中存在一些其他条件(例如,该项目是一个文档,文件夹上没有签入):

    /**
     * Returns true if this action should be enabled for the given repository, list type, and items.
     */
    isEnabled: function(repository, listType, items, teamspace, resultSet) 
    
        var enabled = this.inherited(arguments);
        
        if(!items || items.length != 1)
            return false;
        ;
        if(items[0].attributes && items[0].attributes.DSSignatureStatus == 3 && !items[0].locked) 
            return (enabled && true);
        
        return false;
    ,

    /**
     * Returns true if this action should be visible for the given repository and list type.
     */
    isVisible: function(repository, listType) 
    
        return this.inherited(arguments);
    

正如您在此处看到的,您也可以影响可见性,如果您想隐藏菜单,而不仅仅是禁用它,您可以决定将您的逻辑放到 isVisible 函数中。

【讨论】:

以上是关于禁用 ContextMenu - IBM Content Navigator的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 VS2015 Live Visual Tree 中查看 ContextMenu 的实时属性?

在TextBox控件中禁用鼠标右键

WPF 之 左键弹出操作菜单,并禁用右键菜单

vue中,右键菜单组件v-contextmenu的使用

IBM MobileFirst 7.0 - 如何禁用自动更新

如何在 IBM MobileFirst Platform Operations Console 中处理版本禁用