From c01d3e4b009e521b2f441bbab779705b8cceac90 Mon Sep 17 00:00:00 2001 From: Sandro Weber <webers@in.tum.de> Date: Mon, 10 Oct 2022 19:37:04 +0200 Subject: [PATCH] ExperimentWorkbenchService --- .../experiment-workbench-service.js | 31 +++++++++++++++++++ .../experiment-workbench.js | 4 +-- 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 src/components/experiment-workbench/experiment-workbench-service.js 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 0000000..f91156f --- /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 6b3a668..1c0cf90 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}); -- GitLab