diff --git a/src/components/experiment-workbench/experiment-workbench-service.js b/src/components/experiment-workbench/experiment-workbench-service.js new file mode 100644 index 0000000000000000000000000000000000000000..f91156fe41e4c7da45baac790f6958c91ca1ef36 --- /dev/null +++ b/src/components/experiment-workbench/experiment-workbench-service.js @@ -0,0 +1,31 @@ +let _instance = null; +const SINGLETON_ENFORCER = Symbol(); + +/** + * Service handling server resources for simulating experiments. + */ +class ExperimentWorkbenchService { + constructor(enforcer) { + if (enforcer !== SINGLETON_ENFORCER) { + throw new Error('Use ' + this.constructor.name + '.instance'); + } + } + + static get instance() { + if (_instance == null) { + _instance = new ExperimentWorkbenchService(SINGLETON_ENFORCER); + } + + return _instance; + } + + get experimentInfo() { + return this.expInfo; + } + set experimentInfo(info) { + this.expInfo = info; + console.info(['ExperimentWorkbenchService - experimentInfo', this.expInfo]); + } +} + +export default ExperimentWorkbenchService; diff --git a/src/components/experiment-workbench/experiment-workbench.js b/src/components/experiment-workbench/experiment-workbench.js index 6b3a668aaaec41dcf246c8a62757bdc181179f30..1c0cf90dd2b269b2cb0af238c9f9363b16184f7a 100644 --- a/src/components/experiment-workbench/experiment-workbench.js +++ b/src/components/experiment-workbench/experiment-workbench.js @@ -7,6 +7,7 @@ import { TiMediaRecord } from 'react-icons/ti'; import { VscDebugRestart } from 'react-icons/vsc'; import ExperimentToolsService from './experiment-tools-service'; +import ExperimentWorkbenchService from './experiment-workbench-service'; import ServerResourcesService from '../../services/experiments/execution/server-resources-service.js'; import ExperimentStorageService from '../../services/experiments/files/experiment-storage-service'; import RunningSimulationService from '../../services/experiments/execution/running-simulation-service'; @@ -62,8 +63,7 @@ export default class ExperimentWorkbench extends React.Component { //await this.updateSimulationInfo(); let experiments = await ExperimentStorageService.instance.getExperiments(); this.experimentInfo = experiments.find(experiment => experiment.id === this.experimentID); - console.info('ExperimentWorkbench - experimentInfo'); - console.info(this.experimentInfo); + ExperimentWorkbenchService.instance.experimentInfo = this.experimentInfo; let experimentName = this.experimentInfo.configuration.name; this.setState({experimentName: experimentName});