1
14 package demo.view.anim;
15
16 import demo.view.DemoBase;
17 import y.anim.AnimationFactory;
18 import y.anim.AnimationObject;
19 import y.anim.AnimationPlayer;
20 import y.base.GraphEvent;
21 import y.base.GraphListener;
22 import y.base.Node;
23 import y.view.Drawable;
24 import y.view.Graph2D;
25 import y.view.Graph2DView;
26 import y.view.Graph2DViewRepaintManager;
27 import y.view.NodeRealizer;
28 import y.view.ViewAnimationFactory;
29
30
38 public class FadeInFadeOutDemo extends DemoBase
39 {
40 private static final long PREFERRED_DURATION = 500;
41
42
46 public FadeInFadeOutDemo()
47 {
48 view.getGraph2D().addGraphListener(new FadeHandler(view));
49 }
50
51 public static void main( String[] args )
52 {
53 initLnF();
54 final FadeInFadeOutDemo demo = new FadeInFadeOutDemo();
55 demo.start("Fade Demo");
56 }
57
58
61 private final class FadeHandler implements GraphListener
62 {
63 private AnimationPlayer player;
64 private ViewAnimationFactory factory;
65
66 public FadeHandler(Graph2DView view) {
67 factory = new ViewAnimationFactory(new Graph2DViewRepaintManager(view));
68 player = factory.createConfiguredPlayer();
69 }
70
71 public void onGraphEvent( final GraphEvent e )
72 {
73 final Graph2D graph = (Graph2D)e.getGraph();
74 switch (e.getType())
75 {
76 case GraphEvent.NODE_CREATION:
77 {
78 final NodeRealizer nr = graph.getRealizer((Node)e.getData());
79 nr.setVisible(false);
80 player.animate(factory.fadeIn(nr, PREFERRED_DURATION));
81 break;
82 }
83 case GraphEvent.PRE_NODE_REMOVAL:
84 {
85 final NodeRealizer nr = graph.getRealizer((Node)e.getData());
86
87 final Drawable dnr = ViewAnimationFactory.createDrawable(nr);
90 nr.setVisible(false);
91
92 final AnimationObject fadeOut = factory.fadeOut(dnr, PREFERRED_DURATION);
93
94 player.animate(
97 AnimationFactory.createSequence(
98 AnimationFactory.createPause(100), fadeOut));
99 break;
100 }
101 }
102 }
103 }
104 }
105