Я разрабатываю плагин 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
является документом фактической родительской папки.Я подозреваю, что Content Navigator не может открыть папку, потому что родительский элемент contentItem
не является тем же элементом в функции поиска, что и в функции просмотра.
Как открыть определенную папку в папкедерево