禁用 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 的实时属性?