1
2
3
4
5
6
7
8
9
10 package nl.tudelft.simulation.dsol.gui.actions;
11
12 import java.awt.event.ActionEvent;
13
14 import javax.swing.Action;
15 import javax.swing.ImageIcon;
16
17 import nl.tudelft.simulation.dsol.gui.DSOLApplicationInterface;
18 import nl.tudelft.simulation.dsol.simulators.Animator;
19 import nl.tudelft.simulation.dsol.simulators.SimulatorInterface;
20 import nl.tudelft.simulation.event.EventInterface;
21 import nl.tudelft.simulation.event.EventListenerInterface;
22 import nl.tudelft.simulation.logger.Logger;
23
24 /***
25 * The FastForward action <br>
26 * (c) copyright 2002-2005 <a href="http://www.simulation.tudelft.nl">Delft
27 * University of Technology </a>, the Netherlands. <br>
28 * See for project information <a
29 * href="http://www.simulation.tudelft.nl">www.simulation.tudelft.nl </a> <br>
30 * License of use: <a href="http://www.gnu.org/copyleft/lesser.html">Lesser
31 * General Public License (LGPL) </a>, no warranty.
32 *
33 * @version $Revision$ $Date$
34 * @author <a href="http://www.tbm.tudelft.nl/webstaf/peterja">Peter Jacobs </a>
35 */
36 public class FastForwardAction extends SimulatorAction implements
37 EventListenerInterface
38 {
39
40 /***
41 * constructs a new FastForwardAction
42 *
43 * @param application the application
44 */
45 public FastForwardAction(final DSOLApplicationInterface application)
46 {
47 super("fastForward", application);
48 this
49 .putValue(
50 Action.SMALL_ICON,
51 new ImageIcon(
52 this
53 .getClass()
54 .getResource(
55 "/toolbarButtonGraphics/media/FastForward16.gif")));
56 }
57
58 /***
59 * @see java.awt.event.ActionListener
60 * #actionPerformed(java.awt.event.ActionEvent)
61 */
62 public void actionPerformed(final ActionEvent event)
63 {
64 try
65 {
66 ((Animator) super.simulator).setAnimationDelay(0);
67 if (new Double(this.simulator.getSimulatorTime()).isNaN())
68 {
69 this.application.getExperiment().start();
70 return;
71 }
72 super.simulator.start();
73 } catch (Exception exception)
74 {
75 Logger.warning(this, "actionPerformed", exception);
76 }
77 }
78
79 /***
80 * @see nl.tudelft.simulation.event.EventListenerInterface
81 * #notify(nl.tudelft.simulation.event.EventInterface)
82 */
83 public void notify(final EventInterface event)
84 {
85 super.notify(event);
86 if (event.getType().equals(SimulatorInterface.START_EVENT))
87 {
88 this.setEnabled(false);
89 return;
90 }
91 if (event.getType().equals(SimulatorInterface.STOP_EVENT))
92 {
93 this.setEnabled(true);
94 return;
95 }
96 }
97 }