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 }