diff options
author | Armen Kesablyan | 2012-06-01 13:13:21 -0700 |
---|---|---|
committer | Armen Kesablyan | 2012-06-01 13:13:21 -0700 |
commit | 10d97af27fca224752ad04551ca5c41982222d1f (patch) | |
tree | 27d2899cca3a9f28a0b6e222d39436d83009fafc /js/panels/binding | |
parent | 9e187e40d9982654081e52be656e00b3ca4d36b5 (diff) | |
parent | 77677e5ffb08a5dec4bf0be279130d7b1a99d03f (diff) | |
download | ninja-10d97af27fca224752ad04551ca5c41982222d1f.tar.gz |
Merge branch 'binding' of https://github.com/dhg637/ninja-internal into binding
Diffstat (limited to 'js/panels/binding')
-rw-r--r-- | js/panels/binding/binding-item.reel/binding-item.css | 45 | ||||
-rw-r--r-- | js/panels/binding/binding-item.reel/binding-item.html | 85 | ||||
-rw-r--r-- | js/panels/binding/binding-item.reel/binding-item.js | 88 |
3 files changed, 218 insertions, 0 deletions
diff --git a/js/panels/binding/binding-item.reel/binding-item.css b/js/panels/binding/binding-item.reel/binding-item.css new file mode 100644 index 00000000..0f4416b9 --- /dev/null +++ b/js/panels/binding/binding-item.reel/binding-item.css | |||
@@ -0,0 +1,45 @@ | |||
1 | /* <copyright> | ||
2 | This file contains proprietary software owned by Motorola Mobility, Inc.<br/> | ||
3 | No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/> | ||
4 | (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. | ||
5 | </copyright> */ | ||
6 | |||
7 | .binding-item { | ||
8 | color: #FFF; | ||
9 | margin: 0 8px; | ||
10 | padding: 3px; | ||
11 | border-bottom: 1px solid #505050; | ||
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; | ||
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 new file mode 100644 index 00000000..a569b8b4 --- /dev/null +++ b/js/panels/binding/binding-item.reel/binding-item.html | |||
@@ -0,0 +1,85 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <!-- <copyright> | ||
3 | This file contains proprietary software owned by Motorola Mobility, Inc.<br/> | ||
4 | No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/> | ||
5 | (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. | ||
6 | </copyright> --> | ||
7 | <html lang="en"> | ||
8 | <head> | ||
9 | <meta http-equiv="content-type" content="text/html; charset=utf-8" /> | ||
10 | <link rel="stylesheet" href="binding-item.css" type="text/css"> | ||
11 | <script type="text/montage-serialization"> | ||
12 | { | ||
13 | "owner": { | ||
14 | "prototype": "js/panels/binding/binding-item.reel", | ||
15 | "properties": { | ||
16 | "element": {"#": "binding-item"} | ||
17 | } | ||
18 | }, | ||
19 | "soProperty": { | ||
20 | "prototype": "montage/ui/dynamic-text.reel", | ||
21 | "properties": { | ||
22 | "element": {"#": "so-property"} | ||
23 | }, | ||
24 | "bindings": { | ||
25 | "value": {"<-": "@owner.sourceObjectPropertyPath"} | ||
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 | |||
67 | } | ||
68 | |||
69 | } | ||
70 | </script> | ||
71 | </head> | ||
72 | <body> | ||
73 | <li data-montage-id="binding-item" class="binding-item"> | ||
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> | ||
83 | </li> | ||
84 | </body> | ||
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 new file mode 100644 index 00000000..bda62ef3 --- /dev/null +++ b/js/panels/binding/binding-item.reel/binding-item.js | |||
@@ -0,0 +1,88 @@ | |||
1 | /* <copyright> | ||
2 | This file contains proprietary software owned by Motorola Mobility, Inc.<br/> | ||
3 | No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/> | ||
4 | (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. | ||
5 | </copyright> */ | ||
6 | |||
7 | var Montage = require("montage/core/core").Montage, | ||
8 | Component = require("montage/ui/component").Component; | ||
9 | |||
10 | |||
11 | exports.BindingItem = Montage.create(Component, { | ||
12 | sourceObjectLabel : { value: null }, | ||
13 | boundObjectLabel : { value: null }, | ||
14 | |||
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 | }, | ||