1 package org.opentrafficsim.swing.gui;
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.GTUGeneratorAnimation;
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
25
26
27
28
29
30
31
32
33
34
35
36
37 public final class AnimationToggles
38 {
39
40
41
42
43 private AnimationToggles()
44 {
45
46 }
47
48
49
50
51
52 public static void setTextAnimationTogglesFull(final OTSAnimationPanel panel)
53 {
54 panel.addToggleAnimationButtonText("Node", OTSNode.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("Stripe", Stripe.class, "Show/hide stripes", true);
61 panel.addToggleAnimationButtonText("Shoulder", Shoulder.class, "Show/hide shoulders", true);
62 panel.addToggleAnimationButtonText("GTU", GTU.class, "Show/hide GTUs", true);
63 panel.addToggleAnimationButtonText("GTUId", DefaultCarAnimation.Text.class, "Show/hide GTU Ids", false);
64 panel.addToggleAnimationButtonText("Sensor", SingleSensor.class, "Show/hide sensors", true);
65 panel.addToggleAnimationButtonText("SensorId", SensorAnimation.Text.class, "Show/hide sensors Ids", false);
66 panel.addToggleAnimationButtonText("Light", TrafficLight.class, "Show/hide traffic lights", true);
67 panel.addToggleAnimationButtonText("LightId", TrafficLightAnimation.Text.class, "Show/hide sensors Ids", false);
68 panel.addToggleAnimationButtonText("Conflict", Conflict.class, "Show/hide conflicts", false);
69 panel.addToggleAnimationButtonText("Generator", GTUGeneratorAnimation.class, "Show/hide generators", false);
70 panel.addToggleAnimationButtonText("Bus", BusStop.class, "Show/hide bus stops", false);
71 panel.addToggleAnimationButtonText("BusId", BusStopAnimation.Text.class, "Show/hide bus stop Ids", false);
72 }
73
74
75
76
77
78 public static void setTextAnimationTogglesStandard(final OTSAnimationPanel panel)
79 {
80 panel.addToggleAnimationButtonText("Node", OTSNode.class, "Show/hide nodes", false);
81 panel.addToggleAnimationButtonText("NodeId", NodeAnimation.Text.class, "Show/hide node Ids", false);
82 panel.addToggleAnimationButtonText("Link", OTSLink.class, "Show/hide links", false);
83 panel.addToggleAnimationButtonText("LinkId", LinkAnimation.Text.class, "Show/hide link Ids", false);
84 panel.addToggleAnimationButtonText("Lane", Lane.class, "Show/hide lanes", true);
85 panel.addToggleAnimationButtonText("LaneId", LaneAnimation.Text.class, "Show/hide lane Ids", false);
86 panel.addToggleAnimationButtonText("Stripe", Stripe.class, "Show/hide stripes", true);
87 panel.addToggleAnimationButtonText("Shoulder", Shoulder.class, "Show/hide shoulders", true);
88 panel.addToggleAnimationButtonText("GTU", GTU.class, "Show/hide GTUs", true);
89 panel.addToggleAnimationButtonText("GTUId", DefaultCarAnimation.Text.class, "Show/hide GTU Ids", false);
90 panel.addToggleAnimationButtonText("Sensor", Sensor.class, "Show/hide sensors", false);
91 panel.addToggleAnimationButtonText("SensorId", SensorAnimation.Text.class, "Show/hide sensors Ids", false);
92 panel.addToggleAnimationButtonText("Light", TrafficLight.class, "Show/hide traffic lights", true);
93 panel.addToggleAnimationButtonText("LightId", TrafficLightAnimation.Text.class, "Show/hide sensors Ids", false);
94 panel.addToggleAnimationButtonText("Conflict", Conflict.class, "Show/hide conflicts", false);
95 panel.addToggleAnimationButtonText("Generator", GTUGeneratorAnimation.class, "Show/hide generators", false);
96 }
97
98
99
100
101
102 public static void setIconAnimationTogglesFull(final OTSAnimationPanel panel)
103 {
104 panel.addToggleAnimationButtonIcon("Node", OTSNode.class, "/icons/Node24.png", "Show/hide nodes", true, false);
105 panel.addToggleAnimationButtonIcon("NodeId", NodeAnimation.Text.class, "/icons/Id24.png", "Show/hide node Ids", false,
106 true);
107 panel.addToggleAnimationButtonIcon("Link", OTSLink.class, "/icons/Link24.png", "Show/hide links", true, false);
108 panel.addToggleAnimationButtonIcon("LinkId", LinkAnimation.Text.class, "/icons/Id24.png", "Show/hide link Ids", false,
109 true);
110 panel.addToggleAnimationButtonIcon("Lane", Lane.class, "/icons/Lane24.png", "Show/hide lanes", true, false);
111 panel.addToggleAnimationButtonIcon("LaneId", LaneAnimation.Text.class, "/icons/Id24.png", "Show/hide lane Ids", false,
112 true);
113 panel.addToggleAnimationButtonIcon("Stripe", Stripe.class, "/icons/Stripe24.png", "Show/hide stripes", true, false);
114 panel.addToggleAnimationButtonIcon("Shoulder", Shoulder.class, "/icons/Shoulder24.png", "Show/hide shoulders", true,
115 false);
116 panel.addToggleAnimationButtonIcon("GTU", GTU.class, "/icons/Gtu24.png", "Show/hide GTUs", true, false);
117 panel.addToggleAnimationButtonIcon("GTUId", DefaultCarAnimation.Text.class, "/icons/Id24.png", "Show/hide GTU Ids",
118 false, true);
119 panel.addToggleAnimationButtonIcon("Sensor", Sensor.class, "/icons/Sensor24.png", "Show/hide sensors", true, false);
120 panel.addToggleAnimationButtonIcon("SensorId", SensorAnimation.Text.class, "/icons/Id24.png", "Show/hide sensors Ids",
121 false, true);
122 panel.addToggleAnimationButtonIcon("Light", TrafficLight.class, "/icons/TrafficLight24.png", "Show/hide traffic lights",
123 true, false);
124 panel.addToggleAnimationButtonIcon("LightId", TrafficLightAnimation.Text.class, "/icons/Id24.png",
125 "Show/hide sensors Ids", false, true);
126 panel.addToggleAnimationButtonIcon("Conflict", Conflict.class, "/icons/Conflict24.png", "Show/hide conflicts", false,
127 false);
128 panel.addToggleAnimationButtonIcon("Generator", GTUGeneratorAnimation.class, "/icons/Generator24.png",
129 "Show/hide generators", false, false);
130 panel.addToggleAnimationButtonIcon("Bus", BusStop.class, "/icons/BusStop24.png", "Show/hide bus stops", true, false);
131 panel.addToggleAnimationButtonIcon("BusId", BusStopAnimation.Text.class, "/icons/Id24.png", "Show/hide bus stops",
132 false, true);
133 }
134
135
136
137
138
139 public static void setIconAnimationTogglesStandard(final OTSAnimationPanel panel)
140 {
141 panel.addToggleAnimationButtonIcon("Node", OTSNode.class, "/icons/Node24.png", "Show/hide nodes", false, false);
142 panel.addToggleAnimationButtonIcon("NodeId", NodeAnimation.Text.class, "/icons/Id24.png", "Show/hide node Ids", false,
143 true);
144 panel.addToggleAnimationButtonIcon("Link", OTSLink.class, "/icons/Link24.png", "Show/hide links", false, false);
145 panel.addToggleAnimationButtonIcon("LinkId", LinkAnimation.Text.class, "/icons/Id24.png", "Show/hide link Ids", false,
146 true);
147 panel.addToggleAnimationButtonIcon("Lane", Lane.class, "/icons/Lane24.png", "Show/hide lanes", true, false);
148 panel.addToggleAnimationButtonIcon("LaneId", LaneAnimation.Text.class, "/icons/Id24.png", "Show/hide lane Ids", false,
149 true);
150 panel.addToggleAnimationButtonIcon("Stripe", Stripe.class, "/icons/Stripe24.png", "Show/hide stripes", true, false);
151 panel.addToggleAnimationButtonIcon("Shoulder", Shoulder.class, "/icons/Shoulder24.png", "Show/hide shoulders", true,
152 false);
153 panel.addToggleAnimationButtonIcon("GTU", GTU.class, "/icons/Gtu24.png", "Show/hide GTUs", true, false);
154 panel.addToggleAnimationButtonIcon("GTUId", DefaultCarAnimation.Text.class, "/icons/Id24.png", "Show/hide GTU Ids",
155 false, true);
156 panel.addToggleAnimationButtonIcon("Sensor", Sensor.class, "/icons/Sensor24.png", "Show/hide sensors", false, false);
157 panel.addToggleAnimationButtonIcon("SensorId", SensorAnimation.Text.class, "/icons/Id24.png", "Show/hide sensors Ids",
158 false, true);
159 panel.addToggleAnimationButtonIcon("Light", TrafficLight.class, "/icons/TrafficLight24.png", "Show/hide traffic lights",
160 true, false);
161 panel.addToggleAnimationButtonIcon("LightId", TrafficLightAnimation.Text.class, "/icons/Id24.png",
162 "Show/hide sensors Ids", false, true);
163 panel.addToggleAnimationButtonIcon("Conflict", Conflict.class, "/icons/Conflict24.png", "Show/hide conflicts", false,
164 false);
165 panel.addToggleAnimationButtonIcon("Generator", GTUGeneratorAnimation.class, "/icons/Generator24.png",
166 "Show/hide generators", false, false);
167 panel.addToggleAnimationButtonIcon("Bus", BusStop.class, "/icons/BusStop24.png", "Show/hide bus stops", false, false);
168 panel.addToggleAnimationButtonIcon("BusId", BusStopAnimation.Text.class, "/icons/Id24.png", "Show/hide bus stops",
169 false, true);
170 }
171
172
173
174
175
176
177 public final static void showAnimationClass(final OTSAnimationPanel panel, final Class<? extends Locatable> locatableClass)
178 {
179 panel.getAnimationPanel().showClass(locatableClass);
180 panel.updateAnimationClassCheckBox(locatableClass);
181 }
182
183
184
185
186
187
188 public final static void hideAnimationClass(final OTSAnimationPanel panel, final Class<? extends Locatable> locatableClass)
189 {
190 panel.getAnimationPanel().hideClass(locatableClass);
191 panel.updateAnimationClassCheckBox(locatableClass);
192 }
193
194
195
196
197
198 public static void showAnimationFull(final OTSAnimationPanel panel)
199 {
200 showAnimationClass(panel, OTSNode.class);
201 hideAnimationClass(panel, NodeAnimation.Text.class);
202 showAnimationClass(panel, OTSLink.class);
203 hideAnimationClass(panel, LinkAnimation.Text.class);
204 showAnimationClass(panel, Lane.class);
205 hideAnimationClass(panel, LaneAnimation.Text.class);
206 showAnimationClass(panel, Stripe.class);
207 showAnimationClass(panel, Shoulder.class);
208 showAnimationClass(panel, GTU.class);
209 hideAnimationClass(panel, DefaultCarAnimation.Text.class);
210 showAnimationClass(panel, SingleSensor.class);
211 hideAnimationClass(panel, SensorAnimation.Text.class);
212 showAnimationClass(panel, TrafficLight.class);
213 hideAnimationClass(panel, TrafficLightAnimation.Text.class);
214 showAnimationClass(panel, Conflict.class);
215 hideAnimationClass(panel, BusStop.class);
216 hideAnimationClass(panel, BusStopAnimation.Text.class);
217 showAnimationClass(panel, GTUGeneratorAnimation.class);
218 }
219
220
221
222
223
224 public static void showAnimationStandard(final OTSAnimationPanel panel)
225 {
226 hideAnimationClass(panel, OTSNode.class);
227 hideAnimationClass(panel, NodeAnimation.Text.class);
228 hideAnimationClass(panel, OTSLink.class);
229 hideAnimationClass(panel, LinkAnimation.Text.class);
230 showAnimationClass(panel, Lane.class);
231 hideAnimationClass(panel, LaneAnimation.Text.class);
232 showAnimationClass(panel, Stripe.class);
233 showAnimationClass(panel, Shoulder.class);
234 showAnimationClass(panel, GTU.class);
235 hideAnimationClass(panel, DefaultCarAnimation.Text.class);
236 hideAnimationClass(panel, SingleSensor.class);
237 hideAnimationClass(panel, SensorAnimation.Text.class);
238 showAnimationClass(panel, TrafficLight.class);
239 hideAnimationClass(panel, TrafficLightAnimation.Text.class);
240 hideAnimationClass(panel, Conflict.class);
241 hideAnimationClass(panel, BusStop.class);
242 hideAnimationClass(panel, BusStopAnimation.Text.class);
243 hideAnimationClass(panel, GTUGeneratorAnimation.class);
244 }
245
246 }