1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.jcurl.demo.tactics;
21
22 import java.awt.BorderLayout;
23 import java.awt.geom.AffineTransform;
24
25 import javax.swing.JComponent;
26
27 import org.jcurl.demo.tactics.JCurlShotPlanner.ZoomHelper;
28 import org.jcurl.demo.tactics.sg.AnimateAffine;
29
30 import com.sun.scenario.scenegraph.JSGPanel;
31 import com.sun.scenario.scenegraph.SGGroup;
32 import com.sun.scenario.scenegraph.SGTransform;
33 import com.sun.scenario.scenegraph.SGTransform.Affine;
34
35
36
37
38
39
40
41
42
43
44 public class BirdScenarioBean extends JComponent {
45
46 private static final long serialVersionUID = -408035623675258196L;
47 private TrajectoryScenarioBean master;
48 private final JSGPanel pc;
49 private final SGGroup scene = new SGGroup();
50 private final Affine zoom = SGTransform.createAffine(new AffineTransform(),
51 scene);
52
53 public BirdScenarioBean() {
54 pc = new JSGPanel();
55 setLayout(new BorderLayout());
56 add(pc, BorderLayout.CENTER);
57 pc.setScene(zoom);
58
59 }
60
61
62 @Override
63 public void doLayout() {
64
65 }
66
67 public TrajectoryScenarioBean getMaster() {
68 return master;
69 }
70
71 public void setMaster(final TrajectoryBean master) {
72 if (master instanceof TrajectoryScenarioBean) {
73 this.master = (TrajectoryScenarioBean) master;
74 for (int i = scene.getChildren().size() - 1; i >= 0; i--)
75 scene.remove(i);
76
77
78 zoom.setAffine(AnimateAffine.map(ZoomHelper.HousePlus, this
79 .getBounds(), zoom.getAffine()));
80 }
81 }
82 }