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

e37o9pze  于 2022-12-08  发布在  Dojo
关注(0)|答案(1)|浏览(174)

我正在开发一个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);

当我在存储库对象上调用retrieveItem时,console.debug中的item.parent属性是undefined
contentItem.parent属性指向显示项目的搜索。但是,contentItem.attributes.Parent是实际父文件夹的docid。我怀疑,内容导航器无法打开该文件夹,因为contentItem的父项在搜索功能和浏览功能中不是同一个项目。
如何打开文件夹树中的特定文件夹?

nr7wwzry

nr7wwzry1#

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

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

相关问题