From 01211be8e96360dcccdc421e5cb19c7708f5dfdd Mon Sep 17 00:00:00 2001
From: Armen Kesablyan
Date: Wed, 28 Mar 2012 14:37:49 -0700
Subject: Bug #1073: Panels interact with hottest drag drop

Signed-off-by: Armen Kesablyan <armen@motorola.com>
---
 js/panels/drag-drop-composer.js | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

(limited to 'js/panels')

diff --git a/js/panels/drag-drop-composer.js b/js/panels/drag-drop-composer.js
index b36c8334..4791bd6d 100644
--- a/js/panels/drag-drop-composer.js
+++ b/js/panels/drag-drop-composer.js
@@ -91,7 +91,9 @@ exports.DragDropComposer = Montage.create(Composer, {
             e.stopImmediatePropagation();
             if (!this._dragover) {
                 this._dragover = true;
-                this.component.element.classList.add("dragOver");
+                if (this.component.application.ninja.componentBeingDragged) {
+                    this.component.element.classList.add("dragOver");
+                }
             }
         }
     },
-- 
cgit v1.2.3


From bff711520b7d21cfffe07c7a14fe8870243ba796 Mon Sep 17 00:00:00 2001
From: Armen Kesablyan
Date: Thu, 29 Mar 2012 14:06:22 -0700
Subject: Resizing Bugs

Signed-off-by: Armen Kesablyan <armen@motorola.com>
---
 js/panels/Splitter.js | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

(limited to 'js/panels')

diff --git a/js/panels/Splitter.js b/js/panels/Splitter.js
index 6791e0d5..ac45b4ba 100755
--- a/js/panels/Splitter.js
+++ b/js/panels/Splitter.js
@@ -94,7 +94,11 @@ exports.Splitter = Montage.create(Component, {
     handleClick : {
         value: function() {
             if (!this.disabled) {
-                this.panel.addEventListener("webkitTransitionEnd", this, false);
+                if(this.panel.element) {
+                    this.panel.element.addEventListener("webkitTransitionEnd", this, false);
+                } else {
+                    this.panel.addEventListener("webkitTransitionEnd", this, false);
+                }
                 this.collapsed = !this.collapsed;
                 this.needsDraw = true;
             }
@@ -103,7 +107,12 @@ exports.Splitter = Montage.create(Component, {
 
     handleWebkitTransitionEnd: {
         value: function() {
-            this.panel.removeEventListener("webkitTransitionEnd", this, false);
+            if(this.panel.element) {
+                this.panel.element.removeEventListener("webkitTransitionEnd", this, false);
+            } else {
+                this.panel.removeEventListener("webkitTransitionEnd", this, false);
+            }
+
             this.application.ninja.stage.resizeCanvases = true;
         }
     },
-- 
cgit v1.2.3


From 7aefa059c79c9bef5c7a8a93cdfbd1ce55f69118 Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Thu, 29 Mar 2012 16:28:34 -0700
Subject: Presets - Remove style transition when transition doesn't start. Also
 added temporary fix for aggregating animations (from timeline/presets)

---
 js/panels/presets/default-animation-presets.js | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

(limited to 'js/panels')

diff --git a/js/panels/presets/default-animation-presets.js b/js/panels/presets/default-animation-presets.js
index b12a94b2..578c1622 100644
--- a/js/panels/presets/default-animation-presets.js
+++ b/js/panels/presets/default-animation-presets.js
@@ -14,7 +14,9 @@ exports.animationPresets = {
                 "selectorBase" : "border-morph",
                 "rules" : [{
                     "styles" : {
-                        "-webkit-animation": "border-morph 2s infinite"
+                        "-webkit-animation-name": "border-morph",
+                        "-webkit-animation-duration": "2s",
+                        "-webkit-animation-iteration-count": "infinite"
                     }
                 },
                     {
-- 
cgit v1.2.3


From a11ef2eed7049835c8bdfa50a2b893632c46eaa0 Mon Sep 17 00:00:00 2001
From: Valerio Virgillito
Date: Wed, 4 Apr 2012 11:11:58 -0700
Subject: Squashed commit of Preparing for the montage undo-manager:
 Architecture changes

Reworked the add and remove elements into 1 function which can take 1 or more elements.
Removed the _element from the selection array
Many other changes related to those 2 changes
Undo/Redo shortcuts are now using montage undo/redo manager.

Signed-off-by: Valerio Virgillito <valerio@motorola.com>
---
 .../CSSPanel/CSSPanelBase.reel/CSSPanelBase.js     |  6 ++--
 .../ComponentsPanelBase.js                         |  2 +-
 .../Timeline/TimelinePanel.reel/TimelinePanel.js   | 37 ++++++++++++++++------
 js/panels/Timeline/Tween.reel/Tween.js             |  2 +-
 .../animations-presets.reel/animations-presets.js  |  4 +--
 .../presets/style-presets.reel/style-presets.js    |  4 +--
 .../transitions-presets.js                         |  4 +--
 js/panels/properties.reel/properties.js            | 16 ++++------
 .../sections/three-d-view.reel/three-d-view.js     |  2 +-
 9 files changed, 46 insertions(+), 31 deletions(-)

(limited to 'js/panels')

diff --git a/js/panels/CSSPanel/CSSPanelBase.reel/CSSPanelBase.js b/js/panels/CSSPanel/CSSPanelBase.reel/CSSPanelBase.js
index ecf0f9cd..2a3fc068 100755
--- a/js/panels/CSSPanel/CSSPanelBase.reel/CSSPanelBase.js
+++ b/js/panels/CSSPanel/CSSPanelBase.reel/CSSPanelBase.js
@@ -520,9 +520,7 @@ var CSSPanel = exports.CSSPanelBase = (require("montage/core/core").Montage).cre
                 this.inComputedStyleMode = false; // No computed styles mode for multiple items
                 
                 ///// if multiple items are selected, then show common rules
-                var elements = items.map(function(item) {
-                    return item._element;
-                });
+                var elements = Array.prototype.slice.call(this.application.ninja.selectedElements, 0);
                 
                 ///// show toolbar, but hide computed style button
                 this.sections.styles.toolbar.style.display = '';
@@ -538,7 +536,7 @@ var CSSPanel = exports.CSSPanelBase = (require("montage/core/core").Montage).cre
                 this.sections.styles.statusMsg.classList.add('nj-css-panel-hide');
                 this.sections.styles.showComputedEl.classList.remove('nj-css-panel-hide');// .style.display = '';
                 this.sections.styles.toolbar.style.display = '';
-                this.showStylesForElement(items[0]._element, null);
+                this.showStylesForElement(items[0], null);
             } else {
                 this.sections.styles.statusMsg.classList.add('nj-css-panel-hide');
                 this._inMultiSelectMode = false;
diff --git a/js/panels/Components/ComponentsPanelBase.reel/ComponentsPanelBase.js b/js/panels/Components/ComponentsPanelBase.reel/ComponentsPanelBase.js
index 3505393c..e990551b 100755
--- a/js/panels/Components/ComponentsPanelBase.reel/ComponentsPanelBase.js
+++ b/js/panels/Components/ComponentsPanelBase.reel/ComponentsPanelBase.js
@@ -302,7 +302,7 @@ var ComponentsPanelBase = exports.ComponentsPanelBase = Montage.create(Component
 
                 that.application.ninja.currentDocument.setComponentInstance(instance, element);
 
-                NJevent("elementAdding", {"el": element, "data":styles});
+                that.application.ninja.elementMediator.addElements(element, styles);
             });
 
         }
diff --git a/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js b/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js
index a1e320c4..033d0f79 100644
--- a/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js
+++ b/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js
@@ -318,7 +318,7 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, {
                              "newLayer",
                              "deleteLayer",
                              "elementAdded",
-                             "elementDeleted",
+                             "elementsRemoved",
                              "selectionChange"],
                 i,
                 arrEventsLength = arrEvents.length;
@@ -826,7 +826,7 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, {
                                 for(var index=0;index<arrLayerLength;index++){
                                       if(this.arrLayers[index].layerData.layerID===dLayer[hashVariable].layerID){
                                           dLayer[hashVariable].deleted = true;
-                                          ElementMediator.deleteElements(dLayer[hashVariable].elementsList);
+                                          ElementMediator.removeElements(dLayer[hashVariable].elementsList);
                                           this.arrLayers.splice(index, 1);
                                           break;
                                       }
@@ -861,18 +861,37 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, {
         }
     },
 
-    handleElementDeleted:{
+    handleElementsRemoved:{
         value:function (event) {
             var length,lengthVal;
             this.deleteElement = event.detail;
-            lengthVal = this.currentLayerSelected.layerData.elementsList.length - 1;
-            for (length = lengthVal ;length >= 0 ;length--) {
-                if (this.currentLayerSelected.layerData.elementsList[length] === this.deleteElement) {
-                    this.currentLayerSelected.layerData.elementsList.splice(length, 1);
-                    break;
+
+            // Handling deletion of multiple elements.
+            // TODO: Optimize this double array loop
+            if(Array.isArray(this.deleteElement)) {
+                this.deleteElement = Array.prototype.slice.call(this.deleteElement, 0);
+                lengthVal = this.currentLayerSelected.layerData.elementsList.length - 1;
+                this.deleteElement.forEach(function(element) {
+                    for (length = lengthVal ;length >= 0 ;length--) {
+                        if (this.currentLayerSelected.layerData.elementsList[length] === element) {
+                            this.currentLayerSelected.layerData.elementsList.splice(length, 1);
+                            break;
+                        }
+                        //length--;
+                    }
+                }, this);
+            } else {
+                lengthVal = this.currentLayerSelected.layerData.elementsList.length - 1;
+                for (length = lengthVal ;length >= 0 ;length--) {
+                    if (this.currentLayerSelected.layerData.elementsList[length] === this.deleteElement) {
+                        this.currentLayerSelected.layerData.elementsList.splice(length, 1);
+                        break;
+                    }
+                    //length--;
                 }
-                //length--;
             }
+
+
         }
     },
 
diff --git a/js/panels/Timeline/Tween.reel/Tween.js b/js/panels/Timeline/Tween.reel/Tween.js
index 2b308d9a..7339139f 100644
--- a/js/panels/Timeline/Tween.reel/Tween.js
+++ b/js/panels/Timeline/Tween.reel/Tween.js
@@ -162,7 +162,7 @@ var Tween = exports.Tween = Montage.create(Component, {
         	
             if (event.detail.source && event.detail.source !== "tween") {
                 // check for correct element selection
-                if (this.application.ninja.selectedElements[0]._element != this.parentComponent.parentComponent.animatedElement) {
+                if (this.application.ninja.selectedElements[0]!= this.parentComponent.parentComponent.animatedElement) {
                     console.log("Wrong element selected for this keyframe track");
                 } else {
                     // update tweenedProperties and tell containing track to update CSS rule
diff --git a/js/panels/presets/animations-presets.reel/animations-presets.js b/js/panels/presets/animations-presets.reel/animations-presets.js
index 6a16da54..92437cfd 100644
--- a/js/panels/presets/animations-presets.reel/animations-presets.js
+++ b/js/panels/presets/animations-presets.reel/animations-presets.js
@@ -23,6 +23,6 @@ exports.AnimationsLibrary = Montage.create(Component, {
     handleNodeActivation: {
         value: function(presetData) {
             this.application.ninja.presetsController.applyPreset(presetData);
-        }
-    }
+      	}
+ 	}
 });
diff --git a/js/panels/presets/style-presets.reel/style-presets.js b/js/panels/presets/style-presets.reel/style-presets.js
index 6a28e069..5f10bbe3 100644
--- a/js/panels/presets/style-presets.reel/style-presets.js
+++ b/js/panels/presets/style-presets.reel/style-presets.js
@@ -23,12 +23,12 @@ exports.StylesLibrary = Montage.create(Component, {
     handleNodeActivation: {
         value: function(presetData) {
             this.application.ninja.presetsController.applyPreset(presetData, true);
-        }
+            }
     },
     handleDragEnd : {
         value: function(sourceObject) {
             console.log(sourceObject);
         }
-    }
+  	}
 
 });
diff --git a/js/panels/presets/transitions-presets.reel/transitions-presets.js b/js/panels/presets/transitions-presets.reel/transitions-presets.js
index ace38dbb..4ca2a662 100644
--- a/js/panels/presets/transitions-presets.reel/transitions-presets.js
+++ b/js/panels/presets/transitions-presets.reel/transitions-presets.js
@@ -23,6 +23,6 @@ exports.TransitionsLibrary = Montage.create(Component, {
     handleNodeActivation: {
         value: function(presetData) {
             this.application.ninja.presetsController.applyPreset(presetData);
-        }
-    }
+    	}
+ 	}
 });
diff --git a/js/panels/properties.reel/properties.js b/js/panels/properties.reel/properties.js
index 40e9b86a..d5acd503 100755
--- a/js/panels/properties.reel/properties.js
+++ b/js/panels/properties.reel/properties.js
@@ -87,7 +87,7 @@ exports.Properties = Montage.create(Component, {
                 this.displayStageProperties();
             } else {
                 if(this.application.ninja.selectedElements.length === 1) {
-                    this.displayElementProperties(this.application.ninja.selectedElements[0]._element);
+                    this.displayElementProperties(this.application.ninja.selectedElements[0]);
                 } else {
                     this.displayGroupProperties(this.application.ninja.selectedElements);
                 }
@@ -120,7 +120,6 @@ exports.Properties = Montage.create(Component, {
             } else if(event.target.id === "elementClass") {
                 if(this.application.ninja.selectedElements.length) {
                     ElementsMediator.setAttribute(this.application.ninja.selectedElements[0], "class", this.elementClass.value, "Change", "pi");
-                    console.log(this.application.ninja.selectedElements[0]._element.className);
                 } else {
                     ElementsMediator.setAttribute(this.application.ninja.currentDocument.documentRoot, "class", this.elementClass.value, "Change", "pi", this.application.ninja.currentDocument.documentRoot.elementModel.elementClass);
                 }
@@ -138,8 +137,8 @@ exports.Properties = Montage.create(Component, {
 
     handleElementChanging: {
         value: function(event) {
-//            this.positionSize.leftPosition = parseFloat(ElementsMediator.getProperty(this.application.ninja.selectedElements[0]._element, "left"));
-//            this.positionSize.topPosition = parseFloat(ElementsMediator.getProperty(this.application.ninja.selectedElements[0]._element, "top"));
+//            this.positionSize.leftPosition = parseFloat(ElementsMediator.getProperty(this.application.ninja.selectedElements[0], "left"));
+//            this.positionSize.topPosition = parseFloat(ElementsMediator.getProperty(this.application.ninja.selectedElements[0], "top"));
         }
     },
 
@@ -148,23 +147,22 @@ exports.Properties = Montage.create(Component, {
 //            console.log("Element Change PI ", event.detail.source); // If the event comes from the pi don't need to update
             if(event.detail.source && event.detail.source !== "pi") {
                 // TODO - This should only update the properties that were changed.
-                var el = this.application.ninja.selectedElements[0]._element || this.application.ninja.selectedElements[0];
+                var el = this.application.ninja.selectedElements[0];
                 this.positionSize.leftPosition = parseFloat(ElementsMediator.getProperty(el, "left"));
                 this.positionSize.topPosition = parseFloat(ElementsMediator.getProperty(el, "top"));
                 this.positionSize.heightSize = parseFloat(ElementsMediator.getProperty(el, "height"));
                 this.positionSize.widthSize = parseFloat(ElementsMediator.getProperty(el, "width"));
 
-                if(this.threeD.inGlobalMode)
-                {
+                if(this.threeD.inGlobalMode) {
                     this.threeD.x3D = ElementsMediator.get3DProperty(el, "x3D");
                     this.threeD.y3D = ElementsMediator.get3DProperty(el, "y3D");
                     this.threeD.z3D = ElementsMediator.get3DProperty(el, "z3D");
                     this.threeD.xAngle = ElementsMediator.get3DProperty(el, "xAngle");
                     this.threeD.yAngle = ElementsMediator.get3DProperty(el, "yAngle");
                     this.threeD.zAngle = ElementsMediator.get3DProperty(el, "zAngle");
+                }
             }
         }
-        }
     },
 
     handleSelectionChange: {
@@ -173,7 +171,7 @@ exports.Properties = Montage.create(Component, {
                 this.displayStageProperties();
             } else {
                 if(this.application.ninja.selectedElements.length === 1) {
-                    this.displayElementProperties(this.application.ninja.selectedElements[0]._element);
+                    this.displayElementProperties(this.application.ninja.selectedElements[0]);
                 } else {
                     this.displayGroupProperties(this.application.ninja.selectedElements);
                 }
diff --git a/js/panels/properties.reel/sections/three-d-view.reel/three-d-view.js b/js/panels/properties.reel/sections/three-d-view.reel/three-d-view.js
index 35591afa..f72d1ff6 100755
--- a/js/panels/properties.reel/sections/three-d-view.reel/three-d-view.js
+++ b/js/panels/properties.reel/sections/three-d-view.reel/three-d-view.js
@@ -231,7 +231,7 @@ exports.ThreeD = Montage.create(Component, {
     _getSelectedItem: {
         value: function(els) {
             if(els.length) {
-                return els[0]._element || els[0];
+                return els[0];
             } else {
                 return this.boundObject.application.ninja.currentDocument.documentRoot;
             }
-- 
cgit v1.2.3