From 978b9049d057d2a0995758275f68da8641193201 Mon Sep 17 00:00:00 2001 From: Nivesh Rajbhandari Date: Wed, 27 Jun 2012 14:21:27 -0700 Subject: Integrating Materials UI changes. Squashed commit of the following: commit 89ccb55130e67c4516e616ccc56d2a649a2b9160 Author: Nivesh Rajbhandari <mqg734@motorola.com> Date: Wed Jun 27 14:20:01 2012 -0700 Position Materials Editor popup and change buttons' text color. Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> commit 89bca82adc781f4913f8d302a49a8baa907631c5 Author: Nivesh Rajbhandari <mqg734@motorola.com> Date: Wed Jun 27 12:00:51 2012 -0700 Support deleting and editing custom materials. Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> commit 5be5160c4786beb70e8ad4d75562adb135718c6c Merge: 1d9d9f6 2ebf3e3 Author: Nivesh Rajbhandari <mqg734@motorola.com> Date: Wed Jun 27 11:11:37 2012 -0700 Merge branch 'refs/heads/ninja-internal' into WebGLMaterials Conflicts: js/data/panels-data.js Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> commit 1d9d9f6e66ea7585f07ed461cebba99e71f65de0 Author: Nivesh Rajbhandari <mqg734@motorola.com> Date: Tue Jun 26 22:01:22 2012 -0700 "Save as" support to duplicate material with modified settings. Also removed Add button and disabled Reset button for now. Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> commit bf1037508dbc686f2884765344832f906cbf06d0 Author: Nivesh Rajbhandari <mqg734@motorola.com> Date: Tue Jun 26 17:23:31 2012 -0700 Added UI for duplicating and deleting materials in the Materials Library. Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> commit 54930792f9c417df5f739831164aa1f96a41d67a Author: Nivesh Rajbhandari <mqg734@motorola.com> Date: Tue Jun 26 14:29:17 2012 -0700 Added preview of material in materials editor popup and fixed some styling. Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> --- .../materials-library-panel.css | 18 +++- .../materials-library-panel.html | 25 ++--- .../materials-library-panel.js | 109 +++++++++++++++++++-- 3 files changed, 129 insertions(+), 23 deletions(-) (limited to 'js/panels/Materials/materials-library-panel.reel') diff --git a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.css b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.css index bed3acfe..b5d36108 100755 --- a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.css +++ b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.css @@ -15,6 +15,12 @@ margin: 4px 0 4px 0; } +.materials_library_panel .ml_tree_holder { + height: 200px; + min-height: 200px; + max-height: 200px; + overflow-y: scroll; +} .ml_buttons { clear:both; @@ -30,9 +36,19 @@ cursor: pointer; margin: 0 1px; float: left; + width: 40px; +} + +.ml_buttons .ml_duplicate_btn { width: 60px; } -.ml_buttons .nj-skinned:last-child { +.ml_buttons .ml_delete_btn { + width: 50px; float: right; +} + +.ml_buttons .nj-skinned:hover, +.ml_buttons .nj-skinned:active { + color: white; } \ No newline at end of file diff --git a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html index 6fa54495..3adb2108 100755 --- a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html +++ b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html @@ -10,12 +10,12 @@ <link rel="stylesheet" type="text/css" href="materials-library-panel.css"> <script type="text/montage-serialization"> { - "addButton": { + "duplicateButton": { "prototype": "montage/ui/button.reel", "properties": { - "element": {"#": "ml_add_btn"}, - "enabled": false - }, + "element": {"#": "ml_duplicate_btn"}, + "enabled": true + }, "listeners": [ { "type": "action", @@ -23,11 +23,10 @@ } ] }, - "copyButton": { + "editButton": { "prototype": "montage/ui/button.reel", "properties": { - "element": {"#": "ml_copy_btn"}, - "enabled": false + "element": {"#": "ml_edit_btn"} }, "listeners": [ { @@ -82,7 +81,9 @@ "prototype": "js/panels/Materials/materials-library-panel.reel[MaterialsLibraryPanels]", "properties": { "element": {"#": "materials_library_panel"}, - "_materialInfo": {"@": "materialInfo"} + "_materialInfo": {"@": "materialInfo"}, + "materialsController": {"@": "materialsController"}, + "deleteButton": {"@": "deleteButton"} } } } @@ -92,14 +93,14 @@ <body> <div data-montage-id="materials_library_panel" class="materials_library_panel"> - <section data-montage-id="ml_tree_holder" class="animationsLibrary"> + <section data-montage-id="ml_tree_holder" class="ml_tree_holder"> <div data-montage-id="materials_library_tree"></div> </section> <hr /> <div data-montage-id="ml_buttons" class="ml_buttons"> - <button data-montage-id="ml_add_btn" class="nj-skinned">Add</button> - <button data-montage-id="ml_copy_btn" class="nj-skinned">Copy</button> - <button data-montage-id="ml_delete_btn" class="nj-skinned">Delete</button> + <button data-montage-id="ml_duplicate_btn" class="nj-skinned ml_duplicate_btn">Duplicate</button> + <button data-montage-id="ml_edit_btn" class="nj-skinned ml_edit_btn">Edit</button> + <button data-montage-id="ml_delete_btn" class="nj-skinned ml_delete_btn">Delete</button> </div> </div> diff --git a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.js b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.js index cf0d4e93..cd933ea6 100755 --- a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.js +++ b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.js @@ -7,14 +7,36 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot var Montage = require("montage/core/core").Montage, Component = require("montage/ui/component").Component, MaterialsData = require("js/panels/Materials/materials-data.json"), - Popup = require("montage/ui/popup/popup.reel").Popup; + Popup = require("montage/ui/popup/popup.reel").Popup, + MaterialsModel = require("js/models/materials-model").MaterialsModel, + LeafNode = require("js/components/treeview/ninja-leaf.reel").Leaf; exports.MaterialsLibraryPanel = Montage.create(Component, { + deleteButton: { + value: null + }, + materialsData: { value: null }, + materialId: { + value: null + }, + + selectedMaterialNode: { + value: null + }, + + customMaterialsBranch: { + value: null + }, + + customMaterialsCounter: { + value: 2 + }, + _hasFocus: { enumerable: false, value: false @@ -36,21 +58,32 @@ exports.MaterialsLibraryPanel = Montage.create(Component, { value:function(event) { switch(event._currentTarget.label) { - case "Add": - console.log("Add new material"); + case "Duplicate": + this.duplicateMaterial(); break; - case "Copy": - console.log("Copy selected material"); + case "Edit": +// console.log("Edit selected material"); + this._showMaterialPopup({ materialId: this.materialId }); break; case "Delete": - console.log("Delete selected material"); + this.deleteMaterial(); break; } } }, handleNodeActivation: { - value:function(obj) { + value: function(obj, event) { + this.selectedMaterialNode = event.currentTarget; + this.materialId = obj.id; + this.deleteButton.enabled = !!obj.canDelete; + } + }, + + handleDblclick: { + value:function(obj, event) { + this.selectedMaterialNode = event.currentTarget; + this.materialId = obj.id; this._showMaterialPopup({ materialId: obj.id }); } }, @@ -58,7 +91,6 @@ exports.MaterialsLibraryPanel = Montage.create(Component, { handleShowMaterialPopup: { enumerable: false, value: function (event) { - //this._showMaterialPopup(event.detail.materialId); this._showMaterialPopup(event.detail); } }, @@ -80,15 +112,16 @@ exports.MaterialsLibraryPanel = Montage.create(Component, { if(!this._materialPopup) { this._materialPopup = Popup.create(); + this._materialInfo.materialsLibraryRef = this; this._materialPopup.content = this._materialInfo; + this._materialPopup.delegate = this; this._materialPopup.modal = false; this.eventManager.addEventListener("hideMaterialPopup", this, false); this._materialPopup.addEventListener("show", this, false); } this._materialPopup.show(); - materialID = materialObj.materialId; - this._materialInfo.loadMaterials(materialID, materialObj.useSelection, materialObj.whichMaterial); + this._materialInfo.loadMaterials(materialObj.materialId, materialObj.useSelection, materialObj.whichMaterial); } }, @@ -99,5 +132,61 @@ exports.MaterialsLibraryPanel = Montage.create(Component, { this._materialPopup.hide(); } } + }, + + duplicateMaterial: { + enumerable: false, + value: function (matCopyName) { +// console.log("Duplicate selected material"); + var mat = MaterialsModel.getMaterial(this.materialId); + if(mat) { + var matCopy = mat.dup(); + if(!matCopyName) { + matCopyName = this.materialId + "_" + this.customMaterialsCounter++; + } + matCopy.setName(matCopyName); + MaterialsModel.addMaterial(matCopy); + + var leaf = LeafNode.create(); + leaf.id = matCopyName; + leaf.label = matCopyName; + leaf.treeNodeType = "leaf"; + leaf.canDelete = true; + if(!this.customMaterialsBranch) { + this.customMaterialsBranch = this.materialsController.branchControllers[2]; + } + this.customMaterialsBranch.content.push(leaf); + } + } + }, + + deleteMaterial: { + enumerable: false, + value: function () { +// console.log("Delete selected material"); + if(!this.customMaterialsBranch) { + this.customMaterialsBranch = this.materialsController.branchControllers[2]; + } + + var mat = MaterialsModel.getMaterial(this.materialId); + if(mat) { + MaterialsModel.removeMaterial(this.materialId); + + var index = this.customMaterialsBranch.selectedIndexes[0]; + this.customMaterialsBranch.content.splice(index, 1); + } + + this.deleteButton.enabled = false; + } + }, + + willPositionPopup: { + value: function(popup, defaultPosition) { + var content = popup.content.element, + contentHt = parseFloat(content.style.height) || content.offsetHeight || 0, + contentWd = parseFloat(content.style.width) || content.offsetWidth || 0, + pt = webkitConvertPointFromNodeToPage(this.selectedMaterialNode, new WebKitPoint(0, 0)); + return {top: pt.y - contentHt + 10, left: pt.x - contentWd + 10}; + } } }); \ No newline at end of file -- cgit v1.2.3 From 2da05a4c71bfe9b136384d9e94fbfbef19f24550 Mon Sep 17 00:00:00 2001 From: Nivesh Rajbhandari Date: Wed, 27 Jun 2012 17:28:06 -0700 Subject: Performance fix for WebGL materials playing even when the dialog/file is no longer in view. Also pausing videos when switching documents. Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> --- .../Materials/materials-library-panel.reel/materials-library-panel.js | 2 ++ 1 file changed, 2 insertions(+) (limited to 'js/panels/Materials/materials-library-panel.reel') diff --git a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.js b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.js index cd933ea6..8c1aa1dc 100755 --- a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.js +++ b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.js @@ -129,6 +129,8 @@ exports.MaterialsLibraryPanel = Montage.create(Component, { enumerable: false, value: function (event) { if(this._materialPopup){ +// console.log("hiding material popup"); + this._materialInfo.destroy(); this._materialPopup.hide(); } } -- cgit v1.2.3 From 648ee61ae84216d0236e0dbc211addc13b2cfa3a Mon Sep 17 00:00:00 2001 From: Kris Kowal Date: Fri, 6 Jul 2012 11:52:06 -0700 Subject: Expand tabs --- .../materials-library-panel.html | 26 +++++++++++----------- .../materials-library-panel.js | 18 +++++++-------- 2 files changed, 22 insertions(+), 22 deletions(-) (limited to 'js/panels/Materials/materials-library-panel.reel') diff --git a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html index f77d3186..3204ce50 100755 --- a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html +++ b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html @@ -29,16 +29,16 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. </copyright> --> <html lang="en"> - <head> - <meta http-equiv="content-type" content="text/html; charset=utf-8" /> - <link rel="stylesheet" type="text/css" href="materials-library-panel.css"> + <head> + <meta http-equiv="content-type" content="text/html; charset=utf-8" /> + <link rel="stylesheet" type="text/css" href="materials-library-panel.css"> <script type="text/montage-serialization"> { "addButton": { "prototype": "montage/ui/button.reel", "properties": { "element": {"#": "ml_add_btn"}, - "enabled": false + "enabled": false }, "listeners": [ { @@ -51,7 +51,7 @@ POSSIBILITY OF SUCH DAMAGE. "prototype": "montage/ui/button.reel", "properties": { "element": {"#": "ml_copy_btn"}, - "enabled": false + "enabled": false }, "listeners": [ { @@ -64,7 +64,7 @@ POSSIBILITY OF SUCH DAMAGE. "prototype": "montage/ui/button.reel", "properties": { "element": {"#": "ml_delete_btn"}, - "enabled": false + "enabled": false }, "listeners": [ { @@ -109,13 +109,13 @@ POSSIBILITY OF SUCH DAMAGE. "_materialInfo": {"@": "materialInfo"} } } - } - </script> - - </head> - <body> + } + </script> + + </head> + <body> - <div data-montage-id="materials_library_panel" class="materials_library_panel"> + <div data-montage-id="materials_library_panel" class="materials_library_panel"> <section data-montage-id="ml_tree_holder" class="animationsLibrary"> <div data-montage-id="materials_library_tree"></div> </section> @@ -125,7 +125,7 @@ POSSIBILITY OF SUCH DAMAGE. <button data-montage-id="ml_copy_btn" class="nj-skinned">Copy</button> <button data-montage-id="ml_delete_btn" class="nj-skinned">Delete</button> </div> - </div> + </div> </body> </html> diff --git a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.js b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.js index b5d6bb96..1cf3cec7 100755 --- a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.js +++ b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.js @@ -40,8 +40,8 @@ exports.MaterialsLibraryPanel = Montage.create(Component, { }, _hasFocus: { - enumerable: false, - value: false + enumerable: false, + value: false }, didCreate: { @@ -98,10 +98,10 @@ exports.MaterialsLibraryPanel = Montage.create(Component, { }, _showMaterialPopup: { - enumerable: false, - value: function (materialObj) { + enumerable: false, + value: function (materialObj) { - if(!this._materialPopup) + if(!this._materialPopup) { this._materialPopup = Popup.create(); this._materialPopup.content = this._materialInfo; @@ -113,15 +113,15 @@ exports.MaterialsLibraryPanel = Montage.create(Component, { materialID = materialObj.materialId; this._materialInfo.loadMaterials(materialID, materialObj.useSelection, materialObj.whichMaterial); - } + } }, handleHideMaterialPopup: { - enumerable: false, - value: function (event) { + enumerable: false, + value: function (event) { if(this._materialPopup){ this._materialPopup.hide(); } - } + } } }); -- cgit v1.2.3 From 04343eda8c2f870b0da55cfdc8003c99fe1cc4de Mon Sep 17 00:00:00 2001 From: Kris Kowal Date: Fri, 6 Jul 2012 11:53:10 -0700 Subject: Remove trailing spaces --- .../Materials/materials-library-panel.reel/materials-library-panel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'js/panels/Materials/materials-library-panel.reel') diff --git a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.js b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.js index 1cf3cec7..98a87b07 100755 --- a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.js +++ b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.js @@ -96,7 +96,7 @@ exports.MaterialsLibraryPanel = Montage.create(Component, { enumerable:true, serializable: true }, - + _showMaterialPopup: { enumerable: false, value: function (materialObj) { -- cgit v1.2.3 From 6803c0abd279fcb640c38b3881b751bab982cbe0 Mon Sep 17 00:00:00 2001 From: Kris Kowal Date: Fri, 6 Jul 2012 12:42:16 -0700 Subject: Remove trailing spaces --- .../Materials/materials-library-panel.reel/materials-library-panel.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'js/panels/Materials/materials-library-panel.reel') diff --git a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html index 3204ce50..6f2ea27a 100755 --- a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html +++ b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html @@ -111,7 +111,7 @@ POSSIBILITY OF SUCH DAMAGE. } } </script> - + </head> <body> -- cgit v1.2.3 From 9461e7731f91dd03a15b0a62667e722a60c84721 Mon Sep 17 00:00:00 2001 From: Kris Kowal Date: Fri, 6 Jul 2012 12:44:57 -0700 Subject: Remove byte order markers (BOM) --- .../Materials/materials-library-panel.reel/materials-library-panel.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'js/panels/Materials/materials-library-panel.reel') diff --git a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html index 6f2ea27a..bda89b2c 100755 --- a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html +++ b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html @@ -1,4 +1,4 @@ -<!DOCTYPE html> +<!DOCTYPE html> <!-- <copyright> Copyright (c) 2012, Motorola Mobility, Inc All Rights Reserved. -- cgit v1.2.3 From 40c6eb2c06b34f65a74d59ef9687251952858bab Mon Sep 17 00:00:00 2001 From: Kris Kowal Date: Fri, 6 Jul 2012 12:47:27 -0700 Subject: Normalize HTML doctype --- .../Materials/materials-library-panel.reel/materials-library-panel.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'js/panels/Materials/materials-library-panel.reel') diff --git a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html index bda89b2c..a07e93f5 100755 --- a/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html +++ b/js/panels/Materials/materials-library-panel.reel/materials-library-panel.html @@ -1,4 +1,4 @@ -<!DOCTYPE html> +<!doctype html> <!-- <copyright> Copyright (c) 2012, Motorola Mobility, Inc All Rights Reserved. -- cgit v1.2.3