在文件夹树中打开特定文件夹(IBM Content Navigator)

时间:2018-05-22 07:01:49

标签: dojo ibm-content-navigator

我正在开发一个IBM Content Navigator插件,它允许我从浏览功能中的搜索功能打开一个选定的文件夹。插件操作包含以下代码:

// Variable contentItem is provided by Content Navigator when executing the plugin action.
let layout = ecm.model.desktop.layoutDijit;
let browsePaneMenuItem = layout.launchBarContainer.getMenuItemByID("browsePane");
layout.launchBarContainer._menuItemClick(browsePaneMenuItem, false);
layout.mainPane = layout.launchBarContainer._panels["browsePane"];
layout.mainPane.folderTree._tree._selectItem(contentItem);

此代码切换功能并打开所选文件夹(contentItem)的内容作为中心面板中的结果集。但是,文件夹树不会在特定位置打开该项目。为此,我尝试了以下代码:

let repo = layout.mainPane.repository;
let parentItemDocId = contentItem.attributes.Parent;
let parentItemTemplate = parentItemDocId.split(',')[0] || null;
repo.retrieveItem(parentItemDocId, function(item) {
 contentItem.parent = item;
 layout.mainPane.folderTree._tree._selectItem(item);
 console.debug('parents parent: ' + item.parent);
}, parentItemTemplate, "current", null, contentItem.objectStoreId, "", null);

当我在存储库对象上调用item.parent时,console.debug中的undefined属性为retrieveItem

contentItem.parent属性指向搜索,其中显示项目。但是,contentItem.attributes.Parent是实际父文件夹的docid。我怀疑,Content Navigator无法打开该文件夹,因为contentItem的父级搜索功能中的项目与浏览功能中的项目不同。

如何在文件夹树中打开特定文件夹?

1 个答案:

答案 0 :(得分:0)

要在文件夹树上打开特定文件夹,您需要做的就是创建一个ID数组,其中包含从根文件夹到您要打开的文件夹的文件夹路径(您可以在红皮书中看到Dossier示例)以了解如何在服务器端循环子文件夹)。 然后,当path是一个ID为:(从根文件夹开始,到所选文件夹结束)的对象数组时,运行以下js代码:

        var myPaths = [];
        myPaths.push(path);
        this.folderTree._tree.set('paths', myPaths);