X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FUI.git;a=blobdiff_plain;f=skyquake%2Fplugins%2Fcomposer%2Fsrc%2Fsrc%2Flibraries%2Fmodel%2FDescriptorModel.js;h=3db2a0dc3a77668380743b955b695d6a2d5f2683;hp=eb70e2a0c897e73fbff89c0db405c9afca0107b9;hb=refs%2Fchanges%2F79%2F5479%2F2;hpb=f2dc2462571800e62cba969964de621dca09299c diff --git a/skyquake/plugins/composer/src/src/libraries/model/DescriptorModel.js b/skyquake/plugins/composer/src/src/libraries/model/DescriptorModel.js index eb70e2a0c..3db2a0dc3 100644 --- a/skyquake/plugins/composer/src/src/libraries/model/DescriptorModel.js +++ b/skyquake/plugins/composer/src/src/libraries/model/DescriptorModel.js @@ -1,6 +1,6 @@ /* - * + * * Copyright 2016 RIFT.IO Inc * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -21,6 +21,8 @@ */ import _isArray from 'lodash/isArray' +import _set from 'lodash/set' +import _get from 'lodash/get' import guid from '../guid' import Position from '../graph/Position' import IconFactory from './IconFactory' @@ -34,7 +36,7 @@ import DescriptorModelMetaFactory from './DescriptorModelMetaFactory' */ export default class DescriptorModel { - constructor(model = {uiState: {}}, parent = null) { + constructor(model = {uiState: {}}, parent = null, readonly = false) { // when our instance has no more strong references // then our properties will get garbage collected. this._props_ = new WeakMap(); @@ -49,6 +51,7 @@ export default class DescriptorModel { if (parent instanceof DescriptorModel) { parent.addChild(this); } + this.isReadOnly = readonly; } get fieldNames() { @@ -309,4 +312,12 @@ export default class DescriptorModel { return length !== this[propertyName].length; } + setUiState(setting, path, value){ + _set(this.uiState, [setting].concat(path), value); + } + + getUiState(setting, path, defaultValue){ + return _get(this.uiState, [setting].concat(path), defaultValue); + } + }