diff options
author | Valerio Virgillito | 2012-03-15 16:28:39 -0700 |
---|---|---|
committer | Valerio Virgillito | 2012-03-15 16:28:39 -0700 |
commit | bb6449a3a2adcbc1d109a042e4ee23e7b2614821 (patch) | |
tree | 9d7a8eb7e1bb06f5402117315e61218b74cc105f | |
parent | db59414f48d79f8f959dcc105cfaf616268ca235 (diff) | |
parent | 1d0a4ae3e1a051c7cf1ac02ebbc03f48d1cdfb6c (diff) | |
download | ninja-bb6449a3a2adcbc1d109a042e4ee23e7b2614821.tar.gz |
Merge pull request #118 from mencio/pi-fixes
Fixed issues with Properties panel, focus and grid redraw
-rw-r--r-- | js/components/focus-manager.reel/focus-manager.js | 49 | ||||
-rwxr-xr-x | js/controllers/elements/element-controller.js | 17 | ||||
-rwxr-xr-x | js/ninja.reel/ninja.css | 4 | ||||
-rwxr-xr-x | js/ninja.reel/ninja.html | 11 | ||||
-rwxr-xr-x | js/panels/Splitter.js | 6 | ||||
-rwxr-xr-x | js/panels/properties.reel/properties.html | 72 | ||||
-rwxr-xr-x | js/panels/properties.reel/properties.js | 64 | ||||
-rwxr-xr-x | js/stage/stage.reel/stage.html | 7 | ||||
-rwxr-xr-x | js/stage/stage.reel/stage.js | 11 |
9 files changed, 126 insertions, 115 deletions
diff --git a/js/components/focus-manager.reel/focus-manager.js b/js/components/focus-manager.reel/focus-manager.js new file mode 100644 index 00000000..65a84bc1 --- /dev/null +++ b/js/components/focus-manager.reel/focus-manager.js | |||
@@ -0,0 +1,49 @@ | |||
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 | exports.FocusManager = Montage.create(Component, { | ||
11 | |||
12 | hasTemplate: { | ||
13 | value: false | ||
14 | }, | ||
15 | |||
16 | element: { | ||
17 | serializable: true, | ||
18 | enumerable: true, | ||
19 | get: function() { | ||
20 | return this._element; | ||
21 | }, | ||
22 | set: function(value) { | ||
23 | // call super set | ||
24 | Object.getPropertyDescriptor(Component, "element").set.call(this, value); | ||
25 | } | ||
26 | }, | ||
27 | |||
28 | hiddenInput: { | ||
29 | value: null | ||
30 | }, | ||
31 | |||
32 | prepareForDraw: { | ||
33 | value: function() { | ||
34 | this.hiddenInput = document.createElement("input"); | ||
35 | this.hiddenInput.type = "text"; | ||
36 | |||
37 | this.element.appendChild(this.hiddenInput); | ||
38 | |||
39 | } | ||
40 | }, | ||
41 | |||
42 | setFocus: { | ||
43 | value: function() { | ||
44 | this.hiddenInput.focus(); | ||
45 | } | ||
46 | } | ||
47 | |||
48 | }); | ||
49 | |||
diff --git a/js/controllers/elements/element-controller.js b/js/controllers/elements/element-controller.js index 9f00604f..70aba54e 100755 --- a/js/controllers/elements/element-controller.js +++ b/js/controllers/elements/element-controller.js | |||
@@ -51,23 +51,6 @@ var ElementController = exports.ElementController = Montage.create(NJComponent, | |||
51 | 51 | ||
52 | setAttribute: { | 52 | setAttribute: { |
53 | value: function(el, att, value) { | 53 | value: function(el, att, value) { |
54 | if(att === "id") { | ||
55 | if(value === "") { | ||
56 | el.setAttribute(att, value); | ||
57 | return; | ||
58 | } | ||
59 | |||
60 | // Then check if this is a valid id by the following spec: http://www.w3.org/TR/REC-html40/types.html#h-6.2 | ||
61 | var regexID = /^([a-zA-Z])+([a-zA-Z0-9_\.\:\-])+/; | ||
62 | if(!regexID.test(value)) { | ||
63 | alert("Invalid ID"); | ||
64 | return; | ||
65 | } else if (this.application.ninja.currentDocument._document.getElementById(value) !== null) { | ||
66 | alert("The following ID: " + value + " is already in Use"); | ||
67 | } | ||
68 | |||
69 | } | ||
70 | |||
71 | el.setAttribute(att, value); | 54 | el.setAttribute(att, value); |
72 | } | 55 | } |
73 | }, | 56 | }, |
diff --git a/js/ninja.reel/ninja.css b/js/ninja.reel/ninja.css index 83c0e569..61251eff 100755 --- a/js/ninja.reel/ninja.css +++ b/js/ninja.reel/ninja.css | |||
@@ -7,3 +7,7 @@ | |||
7 | .main { | 7 | .main { |
8 | padding: 100px; | 8 | padding: 100px; |
9 | } | 9 | } |
10 | |||
11 | .hidden { | ||
12 | display: none; | ||
13 | } | ||
diff --git a/js/ninja.reel/ninja.html b/js/ninja.reel/ninja.html index 3dc45498..f9e1efdd 100755 --- a/js/ninja.reel/ninja.html +++ b/js/ninja.reel/ninja.html | |||
@@ -287,6 +287,13 @@ | |||
287 | "name": "MainMenuController" | 287 | "name": "MainMenuController" |
288 | }, | 288 | }, |
289 | 289 | ||
290 | "focusManager": { | ||
291 | "object": "js/components/focus-manager.reel", | ||
292 | "properties": { | ||
293 | "element": {"#": "focus-container" } | ||
294 | } | ||
295 | }, | ||
296 | |||
290 | "owner": { | 297 | "owner": { |
291 | "module": "js/ninja.reel", | 298 | "module": "js/ninja.reel", |
292 | "name": "Ninja", | 299 | "name": "Ninja", |
@@ -396,7 +403,9 @@ | |||
396 | 403 | ||
397 | <section data-montage-id="bottomSplitter" class="bottomSplitter splitter"></section> | 404 | <section data-montage-id="bottomSplitter" class="bottomSplitter splitter"></section> |
398 | </section> | 405 | </section> |
399 | 406 | ||
407 | <div data-montage-id="focus-container" class="hidden"></div> | ||
408 | |||
400 | <section id="popupWindows"></section> | 409 | <section id="popupWindows"></section> |
401 | 410 | ||
402 | </div> | 411 | </div> |
diff --git a/js/panels/Splitter.js b/js/panels/Splitter.js index a396ea28..e92cb2dd 100755 --- a/js/panels/Splitter.js +++ b/js/panels/Splitter.js | |||
@@ -91,12 +91,6 @@ exports.Splitter = Montage.create(Component, { | |||
91 | } | 91 | } |
92 | }, | 92 | }, |
93 | 93 | ||
94 | didDraw: { | ||
95 | value: function() { | ||
96 | this.application.ninja.stage.resizeCanvases = true; | ||
97 | } | ||
98 | }, | ||
99 | |||
100 | handleClick : { | 94 | handleClick : { |
101 | value: function() { | 95 | value: function() { |
102 | if (!this.disabled) { | 96 | if (!this.disabled) { |
diff --git a/js/panels/properties.reel/properties.html b/js/panels/properties.reel/properties.html index 72a6def6..d212ae80 100755 --- a/js/panels/properties.reel/properties.html +++ b/js/panels/properties.reel/properties.html | |||
@@ -10,35 +10,19 @@ | |||
10 | <link rel="stylesheet" href="properties.css" type="text/css"> | 10 | <link rel="stylesheet" href="properties.css" type="text/css"> |
11 | <script type="text/montage-serialization"> | 11 | <script type="text/montage-serialization"> |
12 | { | 12 | { |
13 | "elementNameInput1": { | 13 | "elementName": { |
14 | "module": "montage/ui/textfield.reel", | 14 | "prototype": "montage/ui/textfield.reel", |
15 | "name": "Textfield", | ||
16 | "properties": { | 15 | "properties": { |
17 | "element": {"#": "elementName"}, | 16 | "element": {"#": "elementName"}, |
18 | "readOnly": true | 17 | "readOnly": true |
19 | }, | ||
20 | "bindings": { | ||
21 | "value": { | ||
22 | "boundObject": {"@": "owner"}, | ||
23 | "boundObjectPropertyPath": "elementName", | ||
24 | "oneway": true | ||
25 | } | ||
26 | } | 18 | } |
27 | }, | 19 | }, |
28 | 20 | ||
29 | "elementID": { | 21 | "elementId": { |
30 | "module": "montage/ui/textfield.reel", | 22 | "prototype": "montage/ui/textfield.reel", |
31 | "name": "Textfield", | ||
32 | "properties": { | 23 | "properties": { |
33 | "element": {"#": "elementID"}, | 24 | "element": {"#": "elementId"}, |
34 | "readOnly": false | 25 | "readOnly": false |
35 | }, | ||
36 | "bindings": { | ||
37 | "value": { | ||
38 | "boundObject": {"@": "owner"}, | ||
39 | "boundObjectPropertyPath": "elementID", | ||
40 | "oneway": true | ||
41 | } | ||
42 | } | 26 | } |
43 | }, | 27 | }, |
44 | 28 | ||
@@ -46,35 +30,11 @@ | |||
46 | "module": "montage/ui/textfield.reel", | 30 | "module": "montage/ui/textfield.reel", |
47 | "name": "Textfield", | 31 | "name": "Textfield", |
48 | "properties": { | 32 | "properties": { |
49 | "element": {"#": "elementClassName"}, | 33 | "element": {"#": "elementClass"}, |
50 | "readOnly": false | 34 | "readOnly": false |
51 | }, | ||
52 | "bindings": { | ||
53 | "value": { | ||
54 | "boundObject": {"@": "owner"}, | ||
55 | "boundObjectPropertyPath": "elementClassName", | ||
56 | "oneway": true | ||
57 | } | ||
58 | } | ||
59 | }, | ||
60 | |||
61 | "elementNameAttribute": { | ||
62 | "module": "montage/ui/textfield.reel", | ||
63 | "name": "Textfield", | ||
64 | "properties": { | ||
65 | "element": {"#": "elementNameAttribute"}, | ||
66 | "readOnly": false | ||
67 | }, | ||
68 | "bindings": { | ||
69 | "value": { | ||
70 | "boundObject": {"@": "owner"}, | ||
71 | "boundObjectPropertyPath": "nameAttribute", | ||
72 | "oneway": false | ||
73 | } | ||
74 | } | 35 | } |
75 | }, | 36 | }, |