]> source.dussan.org Git - gwtquery.git/commitdiff
Use ClipAnimations by default because they extends default ones. Add properties based...
authorManuel Carrasco Moñino <manuel.carrasco.m@gmail.com>
Sat, 7 Dec 2013 16:24:54 +0000 (17:24 +0100)
committerManuel Carrasco Moñino <manuel.carrasco.m@gmail.com>
Sat, 7 Dec 2013 16:24:54 +0000 (17:24 +0100)
gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/Effects.java
gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/effects/ClipAnimation.java
gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/effects/TransitionsAnimation.java

index 8de5d91cae236f971b64765fcc6579e65d981459..75026b3a76ee0dd4d8b243bc9fb23ebaea528d89 100755 (executable)
@@ -24,10 +24,8 @@ import com.google.gwt.query.client.plugins.effects.ClipAnimation;
 import com.google.gwt.query.client.plugins.effects.ClipAnimation.Action;
 import com.google.gwt.query.client.plugins.effects.ClipAnimation.Direction;
 import com.google.gwt.query.client.plugins.effects.Fx;
-import com.google.gwt.query.client.plugins.effects.PropertiesAnimation;
 import com.google.gwt.query.client.plugins.effects.PropertiesAnimation.Easing;
 import com.google.gwt.query.client.plugins.effects.PropertiesAnimation.EasingCurve;
-import com.google.gwt.query.client.plugins.effects.TransitionsAnimation;
 import com.google.gwt.query.client.plugins.effects.TransitionsAnimation.TransitionsClipAnimation;
 
 /**
@@ -169,15 +167,14 @@ public class Effects extends QueuePlugin<Effects> {
   public Effects animate(Object stringOrProperties, final int duration,
       final Easing easing, final Function... funcs) {
 
-
     final Properties p = (stringOrProperties instanceof String)
         ? $$((String) stringOrProperties) : (Properties) stringOrProperties;
 
     for (Element e: elements()) {
       if (Fx.css3) {
-        new TransitionsAnimation(easing, e, p, funcs).run(duration);
+        new TransitionsClipAnimation(easing, e, p, funcs).run(duration);
       } else {
-        queueAnimation(e, new PropertiesAnimation(easing, e, p, funcs), duration);
+        queueAnimation(e, new ClipAnimation(easing, e, p, funcs), duration);
       }
     }
     return this;
index e0047fc087a49f01b3c78b7ca6db8a3837ac67d2..deead04dc2bb4f65cd7b527fef7815c0dbf4462e 100755 (executable)
@@ -49,7 +49,7 @@ public class ClipAnimation extends PropertiesAnimation {
   }
 
   private static final String[] attrsToSave = new String[]{
-      "position", "overflow", "visibility", "white-space", "top", "left", "width", "height"};
+    "position", "overflow", "visibility", "white-space", "top", "left", "width", "height"};
 
   private Action action;
   private Corner corner;
@@ -59,7 +59,11 @@ public class ClipAnimation extends PropertiesAnimation {
   private Action currentAction;
 
   public ClipAnimation(Element elem, Properties p, Function... funcs) {
-    super(elem, p, funcs);
+    this(null, elem, p, funcs);
+  }
+
+  public ClipAnimation(Easing easing, Element elem, Properties p, Function... funcs) {
+    super(easing, elem, p, funcs);
     corner = Corner.CENTER;
     try {
       corner = Corner.valueOf(getNormalizedValue("clip-origin", p));
@@ -77,8 +81,8 @@ public class ClipAnimation extends PropertiesAnimation {
     g = GQuery.$(e).as(Effects.Effects);
   }
 
-  private static String getNormalizedValue(String value, Properties p) {
-    return JsUtils.hyphenize(p.getStr("clip-direction")).replace("-", "_").toUpperCase();
+  public static String getNormalizedValue(String value, Properties p) {
+    return JsUtils.hyphenize(p.getStr(value)).replace("-", "_").toUpperCase();
   }
 
   public ClipAnimation(Element elem, Action a, Corner c, Direction d, Easing easing,
@@ -97,6 +101,9 @@ public class ClipAnimation extends PropertiesAnimation {
   @Override
   public void onComplete() {
     super.onComplete();
+    if (action == null) {
+      return;
+    }
     if (currentAction == Action.HIDE) {
       g.hide();
     }
@@ -110,6 +117,9 @@ public class ClipAnimation extends PropertiesAnimation {
   public void onStart() {
     boolean hidden = !g.isVisible();
     super.onStart();
+    if (action == null) {
+      return;
+    }
     currentAction = action != Action.TOGGLE ? action :  hidden ? Action.SHOW : Action.HIDE;
 
     g.saveCssAttrs(attrsToSave);
@@ -139,6 +149,9 @@ public class ClipAnimation extends PropertiesAnimation {
   @Override
   public void onUpdate(double progress) {
     super.onUpdate(progress);
+    if (action == null) {
+      return;
+    }
     if (currentAction == Action.HIDE) {
       progress = (1 - progress);
     }
index 14865119caa76b788a73ff454e1e467b02f111a6..0bb7e1e3e90597de3d31a5c5ed74d485bbef2f91 100755 (executable)
@@ -15,7 +15,9 @@
  */
 package com.google.gwt.query.client.plugins.effects;
 
-import static com.google.gwt.query.client.GQuery.*;
+import static com.google.gwt.query.client.GQuery.$;
+import static com.google.gwt.query.client.GQuery.$$;
+import static com.google.gwt.query.client.plugins.effects.ClipAnimation.getNormalizedValue;
 
 import com.google.gwt.dom.client.Element;
 import com.google.gwt.query.client.Function;
@@ -40,6 +42,28 @@ public class TransitionsAnimation extends PropertiesAnimation {
     private Direction direction;
     private Action currentAction;
 
+    public TransitionsClipAnimation(Element elem, Properties p, Function... funcs) {
+      this(null, elem, p, funcs);
+    }
+
+    public TransitionsClipAnimation(Easing easing, Element elem, Properties p, Function... funcs) {
+      super(easing, elem, p, funcs);
+      corner = Corner.CENTER;
+      try {
+        corner = Corner.valueOf(getNormalizedValue("clip-origin", p));
+      } catch (Exception e) {
+      }
+      direction = Direction.BIDIRECTIONAL;
+      try {
+        direction = Direction.valueOf(getNormalizedValue("clip-direction", p));
+      } catch (Exception e) {
+      }
+      try {
+        action = Action.valueOf(getNormalizedValue("clip-action", p));
+      } catch (Exception e) {
+      }
+    }
+
     public TransitionsClipAnimation(Element elem, Action a, Corner c, Direction d, Easing easing,
         Properties p, final Function... funcs) {
       super(easing, elem, p, funcs);
@@ -52,7 +76,9 @@ public class TransitionsAnimation extends PropertiesAnimation {
       boolean hidden = !g.isVisible();
 
       super.onStart();
-
+      if (action == null) {
+        return;
+      }
       currentAction = action != Action.TOGGLE ? action :  hidden ? Action.SHOW : Action.HIDE;
       int bit = currentAction == Action.HIDE ? 1 : 0;
 
@@ -84,6 +110,9 @@ public class TransitionsAnimation extends PropertiesAnimation {
     @Override
     public void onComplete() {
       super.onComplete();
+      if (action == null) {
+        return;
+      }
       if (currentAction == Action.HIDE) {
         g.hide();
       }