import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "../../../propertyChangedEvent"; import { LineContainerComponent } from "../../lineContainerComponent"; import { LockObject } from "./lockObject"; import { GlobalState } from "../../../globalState"; import { TextLineComponent } from '../../lines/textLineComponent'; import { IndentedTextLineComponent } from '../../lines/indentedTextLineComponent'; interface ICommonPropertyGridComponentProps { globalState: GlobalState; host: { metadata: any}; lockObject: LockObject; onPropertyChangedObservable?: Observable; } export class CommonPropertyGridComponent extends React.Component { constructor(props: ICommonPropertyGridComponentProps) { super(props); } renderLevel(jsonObject: any) { let components = []; for (var data in jsonObject) { let value = jsonObject[data]; let type = Object.prototype.toString.call(value); switch(type) { case '[object String]': components.push( ); components.push( ); break; case '[object Array]': components.push( ); for (var entry of value) { components.push( ); } break; case '[object Object]': components.push( ); for (var entryKey in value) { components.push( ); } break; } } return components; } render() { if (!this.props.host.metadata) { return null; } if (!this.props.host.metadata.xmp) { return null; } return (
{ this.renderLevel(this.props.host.metadata.xmp) }
); } }