1 package org.opentrafficsim.web.animation;
2
3 import org.opentrafficsim.core.gtu.GTU;
4 import org.opentrafficsim.core.network.OTSLink;
5 import org.opentrafficsim.core.network.OTSNode;
6 import org.opentrafficsim.draw.gtu.DefaultCarAnimation;
7 import org.opentrafficsim.draw.gtu.GtuGeneratorQueueAnimation;
8 import org.opentrafficsim.draw.network.LinkAnimation;
9 import org.opentrafficsim.draw.network.NodeAnimation;
10 import org.opentrafficsim.draw.road.BusStopAnimation;
11 import org.opentrafficsim.draw.road.LaneAnimation;
12 import org.opentrafficsim.draw.road.SensorAnimation;
13 import org.opentrafficsim.draw.road.TrafficLightAnimation;
14 import org.opentrafficsim.road.network.lane.Lane;
15 import org.opentrafficsim.road.network.lane.Shoulder;
16 import org.opentrafficsim.road.network.lane.Stripe;
17 import org.opentrafficsim.road.network.lane.conflict.Conflict;
18 import org.opentrafficsim.road.network.lane.object.BusStop;
19 import org.opentrafficsim.road.network.lane.object.sensor.Sensor;
20 import org.opentrafficsim.road.network.lane.object.sensor.SingleSensor;
21 import org.opentrafficsim.road.network.lane.object.trafficlight.TrafficLight;
22
23 import nl.tudelft.simulation.dsol.animation.Locatable;
24 import nl.tudelft.simulation.dsol.web.animation.D2.HTMLAnimationPanel;
25
26
27
28
29
30
31
32
33
34
35
36
37
38 public final class WebAnimationToggles
39 {
40
41
42
43 private WebAnimationToggles()
44 {
45
46 }
47
48
49
50
51
52 public static void setTextAnimationTogglesFull(final HTMLAnimationPanel panel)
53 {
54 panel.addToggleAnimationButtonText("Node", NodeAnimation.ElevatedNode.class, "Show/hide nodes", true);
55 panel.addToggleAnimationButtonText("NodeId", NodeAnimation.Text.class, "Show/hide node Ids", false);
56 panel.addToggleAnimationButtonText("Link", OTSLink.class, "Show/hide links", true);
57 panel.addToggleAnimationButtonText("LinkId", LinkAnimation.Text.class, "Show/hide link Ids", false);
58 panel.addToggleAnimationButtonText("Lane", Lane.class, "Show/hide lanes", true);
59 panel.addToggleAnimationButtonText("LaneId", LaneAnimation.Text.class, "Show/hide lane Ids", false);
60 panel.addToggleAnimationButtonText("LaneCenter", LaneAnimation.CenterLine.class, "Show/hide lane center lines", false);
61 panel.addToggleAnimationButtonText("Stripe", Stripe.class, "Show/hide stripes", true);
62 panel.addToggleAnimationButtonText("Shoulder", Shoulder.class, "Show/hide shoulders", true);
63 panel.addToggleAnimationButtonText("GTU", GTU.class, "Show/hide GTUs", true);
64 panel.addToggleAnimationButtonText("GTUId", DefaultCarAnimation.Text.class, "Show/hide GTU Ids", false);
65 panel.addToggleAnimationButtonText("Sensor", SingleSensor.class, "Show/hide sensors", true);
66 panel.addToggleAnimationButtonText("SensorId", SensorAnimation.Text.class, "Show/hide sensors Ids", false);
67 panel.addToggleAnimationButtonText("Light", TrafficLight.class, "Show/hide traffic lights", true);
68 panel.addToggleAnimationButtonText("LightId", TrafficLightAnimation.Text.class, "Show/hide sensors Ids", false);
69 panel.addToggleAnimationButtonText("Conflict", Conflict.class, "Show/hide conflicts", false);
70 panel.addToggleAnimationButtonText("Generator", GtuGeneratorQueueAnimation.class, "Show/hide generators", false);
71 panel.addToggleAnimationButtonText("Bus", BusStop.class, "Show/hide bus stops", false);
72 panel.addToggleAnimationButtonText("BusId", BusStopAnimation.Text.class, "Show/hide bus stop Ids", false);
73 }
74
75
76
77
78
79 public static void setTextAnimationTogglesStandard(final HTMLAnimationPanel panel)
80 {
81 panel.addToggleAnimationButtonText("Node", NodeAnimation.ElevatedNode.class, "Show/hide nodes", false);
82 panel.addToggleAnimationButtonText("NodeId", NodeAnimation.Text.class, "Show/hide node Ids", false);
83 panel.addToggleAnimationButtonText("Link", OTSLink.class, "Show/hide links", false);
84 panel.addToggleAnimationButtonText("LinkId", LinkAnimation.Text.class, "Show/hide link Ids", false);
85 panel.addToggleAnimationButtonText("Lane", Lane.class, "Show/hide lanes", true);
86 panel.addToggleAnimationButtonText("LaneId", LaneAnimation.Text.class, "Show/hide lane Ids", false);
87 panel.addToggleAnimationButtonText("LaneCenter", LaneAnimation.CenterLine.class, "Show/hide lane center lines", false);
88 panel.addToggleAnimationButtonText("Stripe", Stripe.class, "Show/hide stripes", true);
89 panel.addToggleAnimationButtonText("Shoulder", Shoulder.class, "Show/hide shoulders", true);
90 panel.addToggleAnimationButtonText("GTU", GTU.class, "Show/hide GTUs", true);
91 panel.addToggleAnimationButtonText("GTUId", DefaultCarAnimation.Text.class, "Show/hide GTU Ids", false);
92 panel.addToggleAnimationButtonText("Sensor", Sensor.class, "Show/hide sensors", false);
93 panel.addToggleAnimationButtonText("SensorId", SensorAnimation.Text.class, "Show/hide sensors Ids", false);
94 panel.addToggleAnimationButtonText("Light", TrafficLight.class, "Show/hide traffic lights", true);
95 panel.addToggleAnimationButtonText("LightId", TrafficLightAnimation.Text.class, "Show/hide sensors Ids", false);
96 panel.addToggleAnimationButtonText("Conflict", Conflict.class, "Show/hide conflicts", false);
97 panel.addToggleAnimationButtonText("Generator", GtuGeneratorQueueAnimation.class, "Show/hide generators", false);
98 }
99
100
101
102
103
104
105 public final static void showAnimationClass(final HTMLAnimationPanel panel, final Class<? extends Locatable> locatableClass)
106 {
107 panel.showClass(locatableClass);
108 }
109
110
111
112
113
114
115 public final static void hideAnimationClass(final HTMLAnimationPanel panel, final Class<? extends Locatable> locatableClass)
116 {
117 panel.hideClass(locatableClass);
118 }
119
120
121
122
123
124 public static void showAnimationFull(final HTMLAnimationPanel panel)
125 {
126 showAnimationClass(panel, OTSNode.class);
127 hideAnimationClass(panel, NodeAnimation.Text.class);
128 showAnimationClass(panel, OTSLink.class);
129 hideAnimationClass(panel, LinkAnimation.Text.class);
130 showAnimationClass(panel, Lane.class);
131 hideAnimationClass(panel, LaneAnimation.Text.class);
132 hideAnimationClass(panel, LaneAnimation.CenterLine.class);
133 showAnimationClass(panel, Stripe.class);
134 showAnimationClass(panel, Shoulder.class);
135 showAnimationClass(panel, GTU.class);
136 hideAnimationClass(panel, DefaultCarAnimation.Text.class);
137 showAnimationClass(panel, SingleSensor.class);
138 hideAnimationClass(panel, SensorAnimation.Text.class);
139 showAnimationClass(panel, TrafficLight.class);
140 hideAnimationClass(panel, TrafficLightAnimation.Text.class);
141 showAnimationClass(panel, Conflict.class);
142 hideAnimationClass(panel, BusStop.class);
143 hideAnimationClass(panel, BusStopAnimation.Text.class);
144 showAnimationClass(panel, GtuGeneratorQueueAnimation.class);
145 }
146
147
148
149
150
151 public static void showAnimationStandard(final HTMLAnimationPanel panel)
152 {
153 hideAnimationClass(panel, OTSNode.class);
154 hideAnimationClass(panel, NodeAnimation.Text.class);
155 hideAnimationClass(panel, OTSLink.class);
156 hideAnimationClass(panel, LinkAnimation.Text.class);
157 showAnimationClass(panel, Lane.class);
158 hideAnimationClass(panel, LaneAnimation.Text.class);
159 hideAnimationClass(panel, LaneAnimation.CenterLine.class);
160 showAnimationClass(panel, Stripe.class);
161 showAnimationClass(panel, Shoulder.class);
162 showAnimationClass(panel, GTU.class);
163 hideAnimationClass(panel, DefaultCarAnimation.Text.class);
164 hideAnimationClass(panel, SingleSensor.class);
165 hideAnimationClass(panel, SensorAnimation.Text.class);
166 showAnimationClass(panel, TrafficLight.class);
167 hideAnimationClass(panel, TrafficLightAnimation.Text.class);
168 hideAnimationClass(panel, Conflict.class);
169 hideAnimationClass(panel, BusStop.class);
170 hideAnimationClass(panel, BusStopAnimation.Text.class);
171 hideAnimationClass(panel, GtuGeneratorQueueAnimation.class);
172 }
173
174 }