From 5407c89053adb9bb220222dd6dfeabbf90bfaed8 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Thu, 14 Sep 2017 22:39:13 +0200 Subject: [PATCH] Update and refactor property models in Style Manager --- src/style_manager/model/Property.js | 50 ++------------------ src/style_manager/model/PropertyComposite.js | 6 +++ src/style_manager/model/PropertyStack.js | 8 ++++ 3 files changed, 19 insertions(+), 45 deletions(-) diff --git a/src/style_manager/model/Property.js b/src/style_manager/model/Property.js index 9624e5f6d..10d8879f1 100644 --- a/src/style_manager/model/Property.js +++ b/src/style_manager/model/Property.js @@ -1,70 +1,30 @@ -var Backbone = require('backbone'); -var Layers = require('./Layers'); - -module.exports = Backbone.Model.extend({ +module.exports = require('backbone').Model.extend({ defaults: { name: '', property: '', type: '', - units: [], // int - unit: '', // int defaults: '', info: '', value: '', icon: '', - preview: false, // stack - detached: false, // composite - visible: true, functionName: '', status: '', - properties: [], // composite - layers: [], // stack - list: [], // select/radio + visible: true, fixedValues: ['initial', 'inherit'], }, initialize(opt) { var o = opt || {}; - var type = this.get('type'); var name = this.get('name'); var prop = this.get('property'); - var props = this.get('properties'); - if(!name) + if (!name) { this.set('name', prop.charAt(0).toUpperCase() + prop.slice(1).replace(/-/g,' ')); - - if(props.length){ - var Properties = require('./Properties'); - this.set('properties', new Properties(props)); - } - - switch(type){ - case 'stack': - this.set('layers', new Layers()); - break; - } - }, - - /** - * Return value - * @return {string} Value - * @private - */ - getValue() { - var result = ''; - var type = this.get('type'); - - switch(type){ - case 'integer': - result = this.get('value') + this.get('unit'); - break; - default: - result = this.get('value'); - break; } - return result; + const init = this.init && this.init.bind(this); + init && init(); }, /** diff --git a/src/style_manager/model/PropertyComposite.js b/src/style_manager/model/PropertyComposite.js index dbccc5235..64e55ea1e 100644 --- a/src/style_manager/model/PropertyComposite.js +++ b/src/style_manager/model/PropertyComposite.js @@ -18,6 +18,12 @@ module.exports = Property.extend({ properties: [], }), + init() { + const properties = this.get('properties') || []; + const Properties = require('./Properties'); + this.set('properties', new Properties(properties)); + }, + getDefaultValue() { let value = this.get('defaults'); diff --git a/src/style_manager/model/PropertyStack.js b/src/style_manager/model/PropertyStack.js index 4d6e2ef02..1ab65d796 100644 --- a/src/style_manager/model/PropertyStack.js +++ b/src/style_manager/model/PropertyStack.js @@ -1,14 +1,22 @@ const Property = require('./PropertyComposite'); +const Layers = require('./Layers'); module.exports = Property.extend({ defaults: Object.assign({}, Property.prototype.defaults, { // Array of layers (which contain properties) layers: [], + // Layer preview preview: 0, }), + init() { + Property.prototype.init.apply(this, arguments); + const layers = this.get('layers'); + this.set('layers', new Layers(layers)); + }, + getFullValue() { if (this.get('detached')) { return '';