ANIMATOR : Replace Keyframe add logic 98/18198/1
authorseongwon.shim <seongwon.shim@samsung.com>
Tue, 18 Mar 2014 07:24:57 +0000 (16:24 +0900)
committerseongwon.shim <seongwon.shim@samsung.com>
Tue, 18 Mar 2014 07:28:50 +0000 (16:28 +0900)
Replace property copy logic when add Keyframe to writing related neighborhood keyfram's css property when build css

Change-Id: Idbe6a392fea90aa818c9d13cb56a1398d91149af
Signed-off-by: seongwon.shim <seongwon.shim@samsung.com>
org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/model/AnimatorFrame.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/model/AnimatorKeyframe.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/model/AnimatorModelManager.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/model/AnimatorSelector.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/command/TimelineKeyframeEditCommand.java

index 169287b..d921688 100644 (file)
@@ -481,7 +481,12 @@ public class AnimatorFrame extends AnimatorModel {
                 }
             } else if (frameLink != null) {// set default value
                 if (isTransformRelatedProperties(key)) {
-                    transformRelatedProperties.put(key, widgetProperties.get(key));
+                       String value = ((AnimatorKeyframe)getParent()).getPropertyInPreviousFrames(key, this);
+                       if(value != null) {
+                               transformRelatedProperties.put(key, value);
+                       } else {
+                               transformRelatedProperties.put(key, widgetProperties.get(key));
+                       }
                 } else {
                     String value = widgetProperties.get(key);
                     if (value != null) {
index d9f83b6..1060e4f 100644 (file)
@@ -623,4 +623,23 @@ public class AnimatorKeyframe extends AnimatorModel {
             frame.addFrameTime(calcTime);
         }
     }
+    
+       public String getPropertyInPreviousFrames(String key,
+                       AnimatorFrame animatorFrame) {
+               
+               AnimatorFrame previousFrame = null;
+               if(animatorFrame != null)
+                       previousFrame = (AnimatorFrame)getPrevChild(animatorFrame);
+               else {
+                       previousFrame = getLastFrame();
+               }
+               
+               while(previousFrame != null) {
+                       if(previousFrame.containsKey(key))
+                               return previousFrame.getProperty(key);
+                       previousFrame = (AnimatorFrame)getPrevChild(previousFrame);
+               }
+               
+               return ((AnimatorSelector)getParent()).getPropertyInPreviousFrames(key, this);
+       }
 }
index d07394e..17fbc16 100644 (file)
@@ -745,7 +745,7 @@ public class AnimatorModelManager implements ISelectionListener, IPageDataSetLis
 
         if (!selector.isExistKeyframe(keyframe)) {// case 1
             selector.addChild(keyframe);
-            copyPropertiesInLeftOrRightFrame(frame, keyframe);
+//            copyPropertiesInLeftOrRightFrame(frame, keyframe);
         } else {// case 2
             findAnimatedPropertyAndSetInFrame(frame, keyframe);
         }
@@ -758,7 +758,7 @@ public class AnimatorModelManager implements ISelectionListener, IPageDataSetLis
      * @param frame
      * @param keyframe
      */
-    private void copyPropertiesInLeftOrRightFrame(AnimatorFrame frame, AnimatorKeyframe keyframe) {
+    /*private void copyPropertiesInLeftOrRightFrame(AnimatorFrame frame, AnimatorKeyframe keyframe) {
         AnimatorSelector selector = (AnimatorSelector) keyframe.getParent();
         AnimatorKeyframe previousKeyframe = (AnimatorKeyframe) selector.getPrevChild(keyframe);
         AnimatorKeyframe nextKeyframe = (AnimatorKeyframe) selector.getNextChild(keyframe);
@@ -777,7 +777,7 @@ public class AnimatorModelManager implements ISelectionListener, IPageDataSetLis
         for (String key : fromProperties.keySet()) {
             toProperties.put(key, fromProperties.get(key));
         }
-    }
+    }*/
 
     /**
      * find animated properties
@@ -799,6 +799,10 @@ public class AnimatorModelManager implements ISelectionListener, IPageDataSetLis
         for (String key : animatedProperties) {
             if (key.indexOf("color") >= 0) // TODO remove this after fixing color property
                 continue;
+            if(key.indexOf("timing-function") >=0) {
+//             frame.addProperty(key, easingProperty);
+               continue;
+            }
             String start = previousFrameProperties.get(key);
             String end = nextFrameProperties.get(key);
             String interpolatedValue =
index a339488..c4fb6d2 100644 (file)
@@ -706,4 +706,17 @@ public class AnimatorSelector extends AnimatorModel {
 
         return endTime;
     }
+    
+    public String getPropertyInPreviousFrames(String key, AnimatorKeyframe keyframe) {
+               
+       AnimatorKeyframe previousKeyframeFrame = (AnimatorKeyframe)getPrevChild(keyframe);
+               while(previousKeyframeFrame != null) {
+                       String value = previousKeyframeFrame.getPropertyInPreviousFrames(key, null);
+                       if(value != null)
+                               return value;
+                       previousKeyframeFrame = (AnimatorKeyframe)getPrevChild(previousKeyframeFrame);
+               }               
+               
+               return null;
+       }
 }
index ac6c119..ccdedea 100644 (file)
@@ -28,6 +28,7 @@ import org.tizen.webuibuilder.animator.model.AnimatorFrame;
 import org.tizen.webuibuilder.animator.model.AnimatorKeyframe;
 import org.tizen.webuibuilder.animator.model.AnimatorModelEvent;
 import org.tizen.webuibuilder.animator.model.AnimatorModelManager;
+import org.tizen.webuibuilder.animator.model.AnimatorSelector;
 import org.tizen.webuibuilder.animator.utils.AnimatorUtils;
 
 
@@ -81,6 +82,9 @@ public class TimelineKeyframeEditCommand extends Command {
 
         ((AnimatorFrame) keyframe.getChild(0)).setFrameTime(0.0);
         ((AnimatorFrame) keyframe.getChild(size - 1)).setFrameTime(afterDuration);
+        
+        ((AnimatorSelector)keyframe.getParent()).removeChild(keyframe);
+        ((AnimatorSelector)keyframe.getParent()).addChild(keyframe);
 
         AnimatorModelManager animatorModelManager =
                 AnimatorModelManager.getInstance(AnimatorUtils.getAppManager());
@@ -117,6 +121,9 @@ public class TimelineKeyframeEditCommand extends Command {
 
         ((AnimatorFrame) keyframe.getChild(0)).setFrameTime(0.0);
         ((AnimatorFrame) keyframe.getChild(size - 1)).setFrameTime(beforeDuration);
+        
+        ((AnimatorSelector)keyframe.getParent()).removeChild(keyframe);
+        ((AnimatorSelector)keyframe.getParent()).addChild(keyframe);
 
         AnimatorModelManager animatorModelManager =
                 AnimatorModelManager.getInstance(AnimatorUtils.getAppManager());