aboutsummaryrefslogtreecommitdiff
path: root/node_modules/montage/ui/token-field/token.reel/token.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/montage/ui/token-field/token.reel/token.js')
-rw-r--r--node_modules/montage/ui/token-field/token.reel/token.js65
1 files changed, 45 insertions, 20 deletions
diff --git a/node_modules/montage/ui/token-field/token.reel/token.js b/node_modules/montage/ui/token-field/token.reel/token.js
index 15216c3f..18112625 100644
--- a/node_modules/montage/ui/token-field/token.reel/token.js
+++ b/node_modules/montage/ui/token-field/token.reel/token.js
@@ -8,35 +8,58 @@ var Montage = require("montage").Montage,
8 8
9exports.Token = Montage.create(Component, { 9exports.Token = Montage.create(Component, {
10 10
11 text: {value: null}, 11 _text: {
12 value: null
13 },
14
15 text: {
16 dependencies: ["value", "textPropertyPath"],
17 get: function() {
18 var textPropertyPath,
19 value,
20 text;
21
22 if (this._text == null) {
23 this._adHoc = false;
24 textPropertyPath = this.textPropertyPath;
25 value = this.value;
26
27 if (textPropertyPath != null && value != null) {
28 if (typeof value[textPropertyPath] === 'undefined' && this.allowAdHocValues) {
29 this._adHoc = true;
30 this._text = value;
31 } else {
32 this._text = value[textPropertyPath];
33 }
34 } else {
35 this._text = value;
36 }
37 }
12 38
13 allowAdHocValues: {value: null}, 39 return this._text;
40 }
41 },
42
43 allowAdHocValues: {value: null, serializable: true},
44
45 _value: {
46 value: null
47 },
14 48
15 value: { 49 value: {
50 serializable: true,
16 get: function() { 51 get: function() {
17 return this._value; 52 return this._value;
18 }, 53 },
19 set: function(aValue) { 54 set: function(aValue) {
20 this._adHoc = false; 55 this._value = aValue;
21 if(aValue) { 56 this._text = null;
22 this._value = aValue;
23 if(this.textPropertyPath) {
24 if(typeof aValue[this.textPropertyPath] == 'undefined' && this.allowAdHocValues) {
25 this.text = aValue;
26 this._adHoc = true;
27 } else {
28 this.text = this.value[this.textPropertyPath];
29 }
30 } else {
31 this.text = this.value;
32 }
33 }
34 } 57 }
35 }, 58 },
36 59
37 textPropertyPath: {value: null}, 60 textPropertyPath: {value: null, serializable: true},
38 61
39 tokensController: {value: null}, 62 tokensController: {value: null, serializable: true},
40 63
41 // private 64 // private
42 65
@@ -51,7 +74,7 @@ exports.Token = Montage.create(Component, {
51 } 74 }
52 }, 75 },
53 76
54 _deleteEl: {value: null}, 77 _deleteEl: {value: null, serializable: true},
55 78
56 prepareForDraw: { 79 prepareForDraw: {
57 value: function() { 80 value: function() {
@@ -73,7 +96,9 @@ exports.Token = Montage.create(Component, {
73 96
74 removeSelf: { 97 removeSelf: {
75 value: function() { 98 value: function() {
76 this.tokensController.removeObjects(this.value); 99 this.tokensController.selectedObjects = [this.value];
100 this.tokensController.removeObjectsAtSelectedIndexes();
101 this.tokensController.selectedIndexes = [];
77 } 102 }
78 }, 103 },
79 104