Browse Source

Update and refactor property models in Style Manager

pull/312/head
Artur Arseniev 9 years ago
parent
commit
5407c89053
  1. 50
      src/style_manager/model/Property.js
  2. 6
      src/style_manager/model/PropertyComposite.js
  3. 8
      src/style_manager/model/PropertyStack.js

50
src/style_manager/model/Property.js

@ -1,70 +1,30 @@
var Backbone = require('backbone'); module.exports = require('backbone').Model.extend({
var Layers = require('./Layers');
module.exports = Backbone.Model.extend({
defaults: { defaults: {
name: '', name: '',
property: '', property: '',
type: '', type: '',
units: [], // int
unit: '', // int
defaults: '', defaults: '',
info: '', info: '',
value: '', value: '',
icon: '', icon: '',
preview: false, // stack
detached: false, // composite
visible: true,
functionName: '', functionName: '',
status: '', status: '',
properties: [], // composite visible: true,
layers: [], // stack
list: [], // select/radio
fixedValues: ['initial', 'inherit'], fixedValues: ['initial', 'inherit'],
}, },
initialize(opt) { initialize(opt) {
var o = opt || {}; var o = opt || {};
var type = this.get('type');
var name = this.get('name'); var name = this.get('name');
var prop = this.get('property'); 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,' ')); 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();
}, },
/** /**

6
src/style_manager/model/PropertyComposite.js

@ -18,6 +18,12 @@ module.exports = Property.extend({
properties: [], properties: [],
}), }),
init() {
const properties = this.get('properties') || [];
const Properties = require('./Properties');
this.set('properties', new Properties(properties));
},
getDefaultValue() { getDefaultValue() {
let value = this.get('defaults'); let value = this.get('defaults');

8
src/style_manager/model/PropertyStack.js

@ -1,14 +1,22 @@
const Property = require('./PropertyComposite'); const Property = require('./PropertyComposite');
const Layers = require('./Layers');
module.exports = Property.extend({ module.exports = Property.extend({
defaults: Object.assign({}, Property.prototype.defaults, { defaults: Object.assign({}, Property.prototype.defaults, {
// Array of layers (which contain properties) // Array of layers (which contain properties)
layers: [], layers: [],
// Layer preview // Layer preview
preview: 0, preview: 0,
}), }),
init() {
Property.prototype.init.apply(this, arguments);
const layers = this.get('layers');
this.set('layers', new Layers(layers));
},
getFullValue() { getFullValue() {
if (this.get('detached')) { if (this.get('detached')) {
return ''; return '';

Loading…
Cancel
Save