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');
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();
},
/**

6
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');

8
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 '';

Loading…
Cancel
Save