3 import * as React from 'react';
4 import { ProjectResource } from "../../models/project";
5 import { CollectionResource } from "../../models/collection";
6 import { ProcessResource } from "../../models/process";
7 import { ResourceKind } from '../../models/kinds';
8 import ProjectItem from './items/project-item';
9 import CollectionItem from './items/collection-item';
10 import ProcessItem from './items/process-item';
11 import { AbstractItem } from './items/abstract-item';
13 // TODO: move to models
14 export type DetailsPanelResource = ProjectResource | CollectionResource | ProcessResource;
16 export default class DetailsPanelFactory {
17 static createItem(res: DetailsPanelResource): AbstractItem {
19 case ResourceKind.Project:
20 return new ProjectItem(res);
21 case ResourceKind.Collection:
22 return new CollectionItem(res);
23 case ResourceKind.Collection:
24 return new ProcessItem(res);
26 return new ProjectItem(res);