Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Schindl2013-10-23 14:10:00 +0000
committerTom Schindl2013-10-23 14:10:00 +0000
commit50aa392db20de22251a264895ca44fb8e6ba1440 (patch)
tree4e7402980d96d7669fba7d2418965ad344b82a2f /bundles/runtime/org.eclipse.fx.ui.mobile
parent0ec99073efc0604c1c51177a1c8b176f6ff23867 (diff)
downloadorg.eclipse.efxclipse-50aa392db20de22251a264895ca44fb8e6ba1440.tar.gz
org.eclipse.efxclipse-50aa392db20de22251a264895ca44fb8e6ba1440.tar.xz
org.eclipse.efxclipse-50aa392db20de22251a264895ca44fb8e6ba1440.zip
Bug 420181 - [mobile] Add a fade transition
Diffstat (limited to 'bundles/runtime/org.eclipse.fx.ui.mobile')
-rw-r--r--bundles/runtime/org.eclipse.fx.ui.mobile/src/org/eclipse/fx/ui/mobile/TransitionType.java3
-rw-r--r--bundles/runtime/org.eclipse.fx.ui.mobile/src/org/eclipse/fx/ui/mobile/animations/TransitionDelegate.java67
2 files changed, 69 insertions, 1 deletions
diff --git a/bundles/runtime/org.eclipse.fx.ui.mobile/src/org/eclipse/fx/ui/mobile/TransitionType.java b/bundles/runtime/org.eclipse.fx.ui.mobile/src/org/eclipse/fx/ui/mobile/TransitionType.java
index feb77eff7..584f56782 100644
--- a/bundles/runtime/org.eclipse.fx.ui.mobile/src/org/eclipse/fx/ui/mobile/TransitionType.java
+++ b/bundles/runtime/org.eclipse.fx.ui.mobile/src/org/eclipse/fx/ui/mobile/TransitionType.java
@@ -16,7 +16,8 @@ public enum TransitionType {
NONE(null),
SLIDE_LEFT(TransitionDelegate.slideLeft()),
SLIDE_RIGHT(TransitionDelegate.slideRight()),
- FADE(TransitionDelegate.fade());
+ FADE(TransitionDelegate.fade()),
+ ZOOM_SLIDE(TransitionDelegate.zoomSlide());
private final TransitionDelegate delegate;
diff --git a/bundles/runtime/org.eclipse.fx.ui.mobile/src/org/eclipse/fx/ui/mobile/animations/TransitionDelegate.java b/bundles/runtime/org.eclipse.fx.ui.mobile/src/org/eclipse/fx/ui/mobile/animations/TransitionDelegate.java
index a7467e30b..e045e8bb0 100644
--- a/bundles/runtime/org.eclipse.fx.ui.mobile/src/org/eclipse/fx/ui/mobile/animations/TransitionDelegate.java
+++ b/bundles/runtime/org.eclipse.fx.ui.mobile/src/org/eclipse/fx/ui/mobile/animations/TransitionDelegate.java
@@ -4,10 +4,17 @@ import javafx.animation.Animation;
import javafx.animation.FadeTransition;
import javafx.animation.Interpolator;
import javafx.animation.ParallelTransition;
+import javafx.animation.ParallelTransitionBuilder;
+import javafx.animation.ScaleTransition;
+import javafx.animation.ScaleTransitionBuilder;
+import javafx.animation.SequentialTransition;
+import javafx.animation.SequentialTransitionBuilder;
import javafx.animation.TranslateTransition;
+import javafx.animation.TranslateTransitionBuilder;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Bounds;
+import javafx.scene.Node;
import javafx.scene.layout.BorderPane;
import javafx.util.Duration;
@@ -120,4 +127,64 @@ public abstract class TransitionDelegate {
}
};
}
+
+ public static TransitionDelegate zoomSlide() {
+ return new TransitionDelegate() {
+
+ @Override
+ protected void resetProperties(Card from, Card to) {
+ to.setTranslateX(0);
+ to.setScaleX(1);
+ to.setScaleY(1);
+
+ from.setTranslateX(0);
+ from.setScaleX(1);
+ from.setScaleY(1);
+
+ to.setEffect(null);
+ from.setEffect(null);
+ }
+
+ @Override
+ protected Animation createAndPrepareAnimation(Card from, Card to) {
+ double deltaX = -from.getBoundsInLocal().getWidth();
+ to.setTranslateX(-deltaX);
+
+// curNode.setEffect(new DropShadow(2, 2, 2, Color.RED));
+// newNode.setEffect(new DropShadow(2, 2, 2, Color.RED));
+
+ TranslateTransition slideFrom = translateTransition(from,deltaX);
+ TranslateTransition slideTo = translateTransition(to,deltaX);
+
+ ScaleTransition zoomOutFrom = scaleTransition(from, 0.7);
+ ScaleTransition zoomOutTo = scaleTransition(from, 0.7);
+
+ ScaleTransition zoomInFrom = scaleTransition(from, 1);
+ ScaleTransition zoomInTo = scaleTransition(from, 1);
+
+ return new SequentialTransition(
+ new ParallelTransition(zoomOutFrom, zoomOutTo),
+ new ParallelTransition(slideFrom, slideTo),
+ new ParallelTransition(zoomInFrom, zoomInTo)
+ );
+ }
+
+ private TranslateTransition translateTransition(Node node, double deltaX) {
+ TranslateTransition t = new TranslateTransition(Duration.millis(300));
+ t.setNode(node);
+ t.setInterpolator(Interpolator.EASE_BOTH);
+ t.setByX(deltaX);
+ return t;
+ }
+
+ private ScaleTransition scaleTransition(Node node, double to) {
+ ScaleTransition t = new ScaleTransition(Duration.millis(300));
+ t.setNode(node);
+ t.setToX(to);
+ t.setToY(to);
+ t.setInterpolator(Interpolator.EASE_BOTH);
+ return t;
+ }
+ };
+ }
}

Back to the top