1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import { ProjectItem } from './items/project-item';
6 import { CollectionItem } from './items/collection-item';
7 import { ProcessItem } from './items/process-item';
8 import { AbstractItem } from './items/abstract-item';
9 import { EmptyItem } from './items/empty-item';
10 import { DetailsPanelResource } from '../../views-components/details-panel/details-panel';
11 import { EmptyResource } from '../../models/empty';
12 import { ResourceKind } from '../../models/resource';
14 export class DetailsPanelFactory {
15 static createItem(res: DetailsPanelResource): AbstractItem {
17 case ResourceKind.Project:
18 return new ProjectItem(res);
19 case ResourceKind.Collection:
20 return new CollectionItem(res);
21 case ResourceKind.Process:
22 return new ProcessItem(res);
24 return new EmptyItem(res as EmptyResource);