Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions src/services/workbench/__tests__/folderTreeService.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -494,4 +494,46 @@ describe('Test StatusBarService', () => {
folderTreeService.emit(FolderTreeEvent.onExpandKeys);
});
});

test('Should support to get the current treeNodes parentNode', () => {
const mockRootTree: IFolderTreeNodeProps = {
id: '0',
name: 'test0',
fileType: 'RootFolder',
location: 'test0',
};

const mockFolderData = {
id: '2',
name: 'test1-1',
icon: 'test',
isLeaf: false,
fileType: FileTypes.Folder,
};

const mockFileData = {
id: '3',
name: 'test1-2',
icon: 'test',
isLeaf: true,
fileType: FileTypes.File,
};

folderTreeService.add(mockRootTree);
expect(folderTreeService.get(mockRootTree.id)).toEqual(mockRootTree);

folderTreeService.add(mockFolderData, mockRootTree.id);
expect(folderTreeService.get(mockFolderData.id)).toEqual(
mockFolderData
);

folderTreeService.add(mockFileData, mockFolderData.id);
expect(folderTreeService.get(mockFileData.id)).toEqual(mockFileData);

const expectedData = folderTreeService.get(mockFolderData.id);

expect(folderTreeService.getParentNode(mockFileData.id)).toEqual(
expectedData
);
});
});
14 changes: 14 additions & 0 deletions src/services/workbench/explorer/folderTreeService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ export interface IFolderTreeService extends Component<IFolderTree> {
* @param id
*/
get(id: UniqueId): IFolderTreeNodeProps | null;
/**
* get the current treeNode's parentNode
* @param id
*/
getParentNode(id: UniqueId): IFolderTreeNodeProps | null;
/**
* Get the context menus for file
*/
Expand Down Expand Up @@ -227,6 +232,15 @@ export class FolderTreeService
return this.fileContextMenu;
}

public getParentNode(id: UniqueId): IFolderTreeNodeProps | null {
const root = this.state.folderTree?.data?.[0];
if (!root) return null;
const treeHelper = new TreeViewUtil<IFolderTreeNodeProps>(root);
const node = treeHelper.getHashMap(id);
if (!node) return null;
return node.parent ? treeHelper.getNode(node.parent) : null;
}

public setFileContextMenu(menus: IMenuItemProps[]) {
this.fileContextMenu = menus;
}
Expand Down
1 change: 1 addition & 0 deletions stories/extensions/test/testPane.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -412,6 +412,7 @@ PARTITIONED BY (DE STRING) LIFECYCLE 1000;
children,
})
);

notice(
`The root folder has been added to Explorer and you can switch to Explorer to view it`
);
Expand Down