From f91e64235eb03c889ff4f5577c3e3480cd0d787f Mon Sep 17 00:00:00 2001 From: Valerio Virgillito Date: Fri, 13 Apr 2012 00:30:19 -0700 Subject: removing _undo array and _targets array and use object instead of matching arrays to set properties Signed-off-by: Valerio Virgillito --- js/models/element-model.js | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) (limited to 'js/models/element-model.js') diff --git a/js/models/element-model.js b/js/models/element-model.js index 831e8b1e..fa02fd38 100755 --- a/js/models/element-model.js +++ b/js/models/element-model.js @@ -7,6 +7,7 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot var Montage = require("montage/core/core").Montage; exports.ElementModel = Montage.create(Montage, { + key: { value: "_model_"}, type: { value: null }, // Tag type that was created selection: { value: null }, // Selection string @@ -43,6 +44,39 @@ exports.ElementModel = Montage.create(Montage, { * Color info */ fill: { value: null }, - stroke: { value: null } + stroke: { value: null }, + + getProperty: { + value: function(property) { + var key = this.key + property; + + if(!this.hasOwnProperty(key)) { + this.defineModelProperty(key, null); + } + + return this[key]; + } + }, + + setProperty: { + value: function(property, value) { + var key = this.key + property; + + if(!this.hasOwnProperty(key)) { + this.defineModelProperty(key, value); + } else { + this[key] = value; + } + } + }, + + defineModelProperty: { + value: function(property, value) { + Montage.defineProperty(this, property, { + enumarable: true, + value:value + }); + } + } }); \ No newline at end of file -- cgit v1.2.3