1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.ui.vaadin.gwt.client.magnoliashell.viewport.animation;
35
36 import com.google.gwt.animation.client.Animation;
37 import com.google.gwt.dom.client.Element;
38 import com.google.gwt.dom.client.Style;
39
40
41
42
43 public class ZoomAnimation extends Animation {
44
45 private final static String ZOOM_OUT_CLASS_NAME = "zoom-out";
46
47 private final static String ZOOM_IN_CLASS_NAME = "zoom-in";
48
49 private boolean isZoomIn;
50
51 private Element element;
52
53 public ZoomAnimation(boolean isZoomIn) {
54 this.isZoomIn = isZoomIn;
55 }
56
57 @Override
58 public void run(final int duration, final double startTime, final Element element) {
59 this.element = element;
60 element.getStyle().setVisibility(Style.Visibility.HIDDEN);
61 doRun(element, duration, startTime);
62 }
63
64 private void doRun(Element element, int duration, double startTime) {
65 element.getStyle().setVisibility(Style.Visibility.VISIBLE);
66 element.addClassName(isZoomIn ? ZOOM_IN_CLASS_NAME : ZOOM_OUT_CLASS_NAME);
67
68 super.run(duration, startTime, element);
69 }
70
71 @Override
72 protected void onComplete() {
73 element.removeClassName(ZoomAnimation.this.isZoomIn ? ZOOM_IN_CLASS_NAME : ZOOM_OUT_CLASS_NAME);
74 super.onComplete();
75 }
76
77 @Override
78 protected void onUpdate(double progress) {
79 }
80
81 public Element getElement() {
82 return element;
83 }
84 }