diff options
Diffstat (limited to 'js/panels/binding/binding-item.reel')
-rw-r--r-- | js/panels/binding/binding-item.reel/binding-item.css | 34 | ||||
-rw-r--r-- | js/panels/binding/binding-item.reel/binding-item.html | 54 | ||||
-rw-r--r-- | js/panels/binding/binding-item.reel/binding-item.js | 64 |
3 files changed, 147 insertions, 5 deletions
diff --git a/js/panels/binding/binding-item.reel/binding-item.css b/js/panels/binding/binding-item.reel/binding-item.css index dc90f162..0f4416b9 100644 --- a/js/panels/binding/binding-item.reel/binding-item.css +++ b/js/panels/binding/binding-item.reel/binding-item.css | |||
@@ -8,6 +8,38 @@ | |||
8 | color: #FFF; | 8 | color: #FFF; |
9 | margin: 0 8px; | 9 | margin: 0 8px; |
10 | padding: 3px; | 10 | padding: 3px; |
11 | border-bottom: 1px solid #FFF; | 11 | border-bottom: 1px solid #505050; |
12 | list-style-type: none; | 12 | list-style-type: none; |
13 | display: -webkit-box; | ||
14 | -webkit-box-orient: horizontal; | ||
15 | } | ||
16 | .binding-item > * { | ||
17 | -webkit-box-flex: 1; | ||
18 | } | ||
19 | .source-object, .bound-object { | ||
20 | padding: 5px 0 3px; | ||
21 | } | ||
22 | .source-object { | ||
23 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAXCAYAAADgKtSgAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw%2FeHBhY2tldCBiZWdpbj0i77u%2FIiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8%2BIDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowREQ2NEVFRkE0M0IxMUUxQTkwQ0M2Qzc0NjQ4NTRBNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowREQ2NEVGMEE0M0IxMUUxQTkwQ0M2Qzc0NjQ4NTRBNiI%2BIDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjBERDY0RUVEQTQzQjExRTFBOTBDQzZDNzQ2NDg1NEE2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBERDY0RUVFQTQzQjExRTFBOTBDQzZDNzQ2NDg1NEE2Ii8%2BIDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY%2BIDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8%2B50zlPwAAAttJREFUeNqMls9rE0EUx2fz24RKsoluUAkIHhWFXtVCJRAhFBRB8D8I1GMF%2FwJFjwr9DzwVipKDUBvQg4KgeJOe1OSS2PxYMUnzO77vsm%2BcSbJpB76dLvve5719M%2FMmxnQ6FV4jn89fo%2BkBaY2UJmVIZVKV9J70ivTNy99YBCdolqZCv9%2B%2F0%2Bl0BM0CdqPRSAQCAWEYhgiHwyIWi2HeJdtt0t6xcAI%2FGw6HW61Wy4H6fD4pHpPJRApBEomECAaDz%2BnVI084gV90u93NRqPhwJCl3%2B%2BXYGTM9gCPx2Pna%2FB%2FMpkU0Wj0Jb16yLyAAn4CcL1eRxYSrMLVASB%2FEQLAL5VKbVKANr1%2BLDMn8AaV4nWtVnNggGNGADgjY4gHfCAEABhfQP7ObFkW%2FO%2BS2S5nXmg2mw6AM1ZLYlDi5u1fInLJlgHaX86K1gdLKxcEDgUoOHBsN1q43GAwEKFQSANDACdyPzVw56sl%2Fn48R%2B%2Bnc4sMDvGytNCrKOZ9qrWToVpjzngenBbtTxdkqdhW9QWPxj2UZX12yzmOnuDzshQ8q0GgXq%2BHV1lknsFCqDvCF5ivsQrW9vLMYoMDHo2LIJqolWo4HZOG%2BvbzhcYLwaofP7s8E4QmZ80rjmHvZ8TR96QEnbp8KE6vlTU427IfP7u8Jv6WsRCcvTSmxz%2BljOgd6AFWblbmAqinHBzwaPwAvIT%2BoPYLmQkFsN%2FpAaJXfouV6xUtWz5QrEgkAtM9wHfoyMpeAWlB3ABHB%2Bb%2FAFcpwI2KBlV9wQOXj%2F9%2BtVpdxwscfT7%2B8oQuOf4MxfGHYJ9Op0tkdou3xDa6GvcK7hezUmGq2Ie7o9vfhQMvFos7lO1T0zRlBiwOxAD1edYW%2FuCgJEv7OZfluH7OWtTPF95E1Hy2bNs%2B8U0Uj8fR9JbfREqAnHuHbvAdyjXnJqXcoW%2FcGr890QWtBFlF10Rzc2%2F%2BM6RD9xdAya3tZy%2F%2FfwIMAMwfSVrTb5e6AAAAAElFTkSuQmCC); | ||
24 | background-position: right center; | ||
25 | background-repeat: no-repeat; | ||
26 | padding-right: 30px; | ||
27 | } | ||
28 | .bound-object { | ||
29 | padding-left: 12px; | ||
30 | } | ||
31 | .so-object-identifier, .bo-object-identifier { | ||
32 | float: right; | ||
33 | color: #999; | ||
34 | } | ||
35 | .binding-item .binding-edit-button { | ||
36 | background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw%2FeHBhY2tldCBiZWdpbj0i77u%2FIiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8%2BIDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDQkI4QzVEMTc3ODcxMUUxQTlCOUNDQUJBMEUyMTIwMSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDQkI4QzVEMjc3ODcxMUUxQTlCOUNDQUJBMEUyMTIwMSI%2BIDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkNCQjhDNUNGNzc4NzExRTFBOUI5Q0NBQkEwRTIxMjAxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNCQjhDNUQwNzc4NzExRTFBOUI5Q0NBQkEwRTIxMjAxIi8%2BIDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY%2BIDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8%2Bs3B0RQAAAd9JREFUeNockbGL2nAUx%2FNLorHaJXKjJ6YcDkVcHByUQwQDbl26FqEu3dykLjoIXXTwDygKFcrRP%2BC8Q0HwQDlwOaRCKFiuCmo0d0Jr1ZjY923ghZfv9%2FN%2B7%2F1eOJ%2FPx%2BEpl8uKZVk3p9PpRlXV81QqdY4cGjww%2F9l2u81Fo1EuFotdbrdbzbbtX%2FP5%2FAqBHBo8MGB5RVF8yWTSv9%2FvXYIgsNVq9XcwGLxCIBdFkcEDA5YZhnFNJwXcbjc3Go32mUzmlsaYYAQ6QGk0GmooFJKoE8fz%2FE9%2BsVjIHo%2FHpes6y2azX8PhsNbtdtMI5NDggQHL0wW%2FdDodfTqdPm02m4dqtfqmXq9LCOTQ4IEBy3u93gdq9YfCplHM2Wz2gsZ7ptggJ%2B0ADwxYRuI1zfqaLvY7l8t9mkwmcqVSeWeapl0oFJqBQOCpVqt9lCTpJWnfWb%2Ffv6fKM2xot9s9FovFz71ez6ST7UQiIZVKpffUzU%2Ffp%2FV6vWLBYPDD8Xi8oJ%2FkarVaKhVatLlHxhgny7KfPCGdTt%2FS945W%2FEPUNO2KNihGIpH44XBI0Tak8Xh8hoJ4PC7RGCZN0BkOh3fEHUV6Gdi50%2BnUqaWxXC6FfD7%2FDQXNZvMtXdZyOBw6IUtw%2FwQYACT6GJDDh744AAAAAElFTkSuQmCC); | ||
37 | background-repeat: no-repeat; | ||
38 | background-position: right center; | ||
39 | border: 0 none; | ||
40 | cursor: pointer; | ||
41 | padding-top: 6px; | ||
42 | width: 12px; | ||
43 | height: 100%; | ||
44 | margin-left: 10px; | ||
13 | } \ No newline at end of file | 45 | } \ No newline at end of file |
diff --git a/js/panels/binding/binding-item.reel/binding-item.html b/js/panels/binding/binding-item.reel/binding-item.html index 23182345..a569b8b4 100644 --- a/js/panels/binding/binding-item.reel/binding-item.html +++ b/js/panels/binding/binding-item.reel/binding-item.html | |||
@@ -16,14 +16,54 @@ | |||
16 | "element": {"#": "binding-item"} | 16 | "element": {"#": "binding-item"} |
17 | } | 17 | } |
18 | }, | 18 | }, |
19 | "label": { | 19 | "soProperty": { |
20 | "prototype": "montage/ui/dynamic-text.reel", | 20 | "prototype": "montage/ui/dynamic-text.reel", |
21 | "properties": { | 21 | "properties": { |
22 | "element": {"#": "label"} | 22 | "element": {"#": "so-property"} |
23 | }, | 23 | }, |
24 | "bindings": { | 24 | "bindings": { |
25 | "value": {"<-": "@owner.sourceObjectPropertyPath"} | 25 | "value": {"<-": "@owner.sourceObjectPropertyPath"} |
26 | } | 26 | } |
27 | }, | ||
28 | "soObject": { | ||
29 | "prototype": "montage/ui/dynamic-text.reel", | ||
30 | "properties": { | ||
31 | "element": {"#": "so-object"} | ||
32 | }, | ||
33 | "bindings": { | ||
34 | "value": {"<-": "@owner.sourceObjectLabel"} | ||
35 | } | ||
36 | }, | ||
37 | "boProperty" : { | ||
38 | "prototype": "montage/ui/dynamic-text.reel", | ||
39 | "properties": { | ||
40 | "element": {"#": "bo-property"} | ||
41 | }, | ||
42 | "bindings": { | ||
43 | "value": {"<-": "@owner.boundObjectPropertyPath"} | ||
44 | } | ||
45 | }, | ||
46 | "boObject": { | ||
47 | "prototype": "montage/ui/dynamic-text.reel", | ||
48 | "properties": { | ||
49 | "element": {"#": "bo-object"} | ||
50 | }, | ||
51 | "bindings": { | ||
52 | "value": {"<-": "@owner.boundObjectLabel"} | ||
53 | } | ||
54 | }, | ||
55 | "editButton": { | ||
56 | "prototype": "montage/ui/button.reel", | ||
57 | "properties": { | ||
58 | "element": {"#": "edit-button"}, | ||
59 | "identifier": "editButton", | ||
60 | "label": " " | ||
61 | }, | ||
62 | "listeners": [{ | ||
63 | "type": "action", | ||
64 | "listener": {"@": "owner"} | ||
65 | }] | ||
66 | |||
27 | } | 67 | } |
28 | 68 | ||
29 | } | 69 | } |
@@ -31,7 +71,15 @@ | |||
31 | </head> | 71 | </head> |
32 | <body> | 72 | <body> |
33 | <li data-montage-id="binding-item" class="binding-item"> | 73 | <li data-montage-id="binding-item" class="binding-item"> |
34 | <span data-montage-id="label"></span> | 74 | <div data-montage-id="sourceObject" class="source-object"> |
75 | <span data-montage-id="so-property" class="so-property"></span> | ||
76 | <span data-montage-id="so-object" class="so-object-identifier"></span> | ||
77 | </div> | ||
78 | <div data-montage-id="boundObject" class="bound-object"> | ||
79 | <span data-montage-id="bo-property" class="bo-property"></span> | ||
80 | <span data-montage-id="bo-object" class="bo-object-identifier"></span> | ||
81 | </div> | ||
82 | <button data-montage-id="edit-button" class="binding-edit-button"></button> | ||
35 | </li> | 83 | </li> |
36 | </body> | 84 | </body> |
37 | </html> \ No newline at end of file | 85 | </html> \ No newline at end of file |
diff --git a/js/panels/binding/binding-item.reel/binding-item.js b/js/panels/binding/binding-item.reel/binding-item.js index 9365da65..bda62ef3 100644 --- a/js/panels/binding/binding-item.reel/binding-item.js +++ b/js/panels/binding/binding-item.reel/binding-item.js | |||
@@ -9,8 +9,70 @@ var Montage = require("montage/core/core").Montage, | |||
9 | 9 | ||
10 | 10 | ||
11 | exports.BindingItem = Montage.create(Component, { | 11 | exports.BindingItem = Montage.create(Component, { |
12 | sourceObjectLabel : { value: null }, | ||
13 | boundObjectLabel : { value: null }, | ||
12 | 14 | ||
13 | sourceObjectPropertyPath : { value: null }, | 15 | _sourceObject : { value: null }, |
16 | sourceObject : { | ||
17 | get: function() { | ||
18 | return this._sourceObject; | ||
19 | }, | ||
20 | set: function(value) { | ||
21 | if(value === this._sourceObject) { return; } | ||
22 | |||
23 | this.sourceObjectLabel = value.identifier; | ||
24 | |||
25 | this._sourceObject = value; | ||
26 | } | ||
27 | }, | ||
28 | _boundObject : { value: null }, | ||
29 | boundObject : { | ||
30 | get: function() { | ||
31 | return this._boundObject; | ||
32 | }, | ||
33 | set: function(value) { | ||
34 | if(value === this._boundObject) { return; } | ||
35 | |||
36 | this.boundObjectLabel = value.identifier; | ||
37 | |||
38 | this._boundObject = value; | ||
39 | } | ||
40 | }, | ||
41 | |||
42 | _sourceObjectPropertyPath : { value: null }, | ||
43 | sourceObjectPropertyPath : { | ||
44 | get: function() { | ||
45 | return this._sourceObjectPropertyPath; | ||
46 | }, | ||
47 | set: function(value) { | ||
48 | if(value === this._sourceObjectPropertyPath) { return; } | ||
49 | this._sourceObjectPropertyPath = value; | ||
50 | this.needsDraw = true; | ||
51 | } | ||
52 | }, | ||
53 | _boundObjectPropertyPath : { value: null }, | ||
54 | boundObjectPropertyPath : { | ||
55 | get: function() { | ||
56 | return this._boundObjectPropertyPath; | ||
57 | }, | ||
58 | set: function(value) { | ||
59 | if(value === this._boundObjectPropertyPath) { return; } | ||
60 | this._boundObjectPropertyPath = value; | ||
61 | this.needsDraw = true; | ||
62 | } | ||
63 | }, | ||
64 | |||
65 | _oneway : { value: null }, | ||
66 | oneway : { | ||
67 | get: function() { | ||
68 | return this._oneway; | ||
69 | }, | ||
70 | set: function(value) { | ||
71 | if(value === this._oneway) { return; } | ||
72 | this._oneway = value; | ||
73 | this.needsDraw = true; | ||
74 | } | ||
75 | }, | ||