import * as React from "react"; import { LineContainerComponent } from '../../sharedComponents/lineContainerComponent'; import { GlobalState } from '../../globalState'; import { TextInputLineComponent } from '../../sharedComponents/textInputLineComponent'; import { GraphFrame } from '../graphFrame'; import { Nullable } from 'babylonjs/types'; import { Observer } from 'babylonjs/Misc/observable'; import { NodePort } from '../nodePort'; import { GraphNode } from '../graphNode'; import { NodeLink } from '../nodeLink'; import { FramePortData } from '../graphCanvas'; import { CheckBoxLineComponent } from '../../sharedComponents/checkBoxLineComponent'; import { TextLineComponent } from '../../sharedComponents/textLineComponent'; export interface IFrameNodePortPropertyTabComponentProps { globalState: GlobalState nodePort: NodePort; } export class NodePortPropertyTabComponent extends React.Component { private _onSelectionChangedObserver: Nullable>>; constructor(props: IFrameNodePortPropertyTabComponentProps) { super(props); } componentWillUnmount() { this.props.globalState.onSelectionChangedObservable.remove(this._onSelectionChangedObserver); } toggleExposeOnFrame(value: boolean){ this.props.nodePort.exposedOnFrame = value; this.props.globalState.onExposePortOnFrameObservable.notifyObservers(this.props.nodePort.node); } render() { let info = this.props.nodePort.hasLabel() ? <> {this.props.nodePort.hasLabel() && } {this.props.nodePort.node.enclosingFrameId !== -1 && this.props.nodePort.exposedOnFrame} onSelect={(value: boolean) => this.toggleExposeOnFrame(value)} propertyName="exposedOnFrame" disabled={this.props.nodePort.disabled} />} : return (
{info}
); } }