1 package nl.tudelft.simulation.dsol.gui.menu.actions;
2
3 import java.awt.event.ActionEvent;
4 import java.awt.event.KeyEvent;
5
6 import javax.swing.AbstractAction;
7 import javax.swing.Action;
8 import javax.swing.KeyStroke;
9
10 import nl.tudelft.simulation.dsol.gui.DSOLApplicationInterface;
11 import nl.tudelft.simulation.dsol.gui.animation3D.Animation3DFrame;
12 import nl.tudelft.simulation.logger.Logger;
13
14 /***
15 * @author roy chin
16 *
17 * ir. R.T.H. Chin sk.tbm.tudelft.nl
18 */
19 public class ViewAnimation3dAction extends AbstractAction
20 {
21 /*** application the application */
22 private DSOLApplicationInterface application = null;
23
24 /***
25 * constructs a new ViewContextAction
26 *
27 * @param application the application
28 */
29 public ViewAnimation3dAction(final DSOLApplicationInterface application)
30 {
31 super("3D animation");
32 this.application = application;
33 this.putValue(Action.MNEMONIC_KEY, new Integer('3'));
34 this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(
35 KeyEvent.VK_F5, 0));
36 this.setEnabled(true);
37 }
38
39 /***
40 * @see java.awt.event.ActionListener#actionPerformed
41 * (java.awt.event.ActionEvent)
42 */
43 public void actionPerformed(final ActionEvent arg0)
44 {
45 try
46 {
47 boolean running = false;
48 try
49 {
50 if (this.application.getExperiment().getSimulator().isRunning())
51 {
52 running = true;
53 this.application.getExperiment().getSimulator().stop();
54 }
55 } catch (NullPointerException nullPointerException)
56 {
57
58 nullPointerException = null;
59 }
60 Animation3DFrame.initialize(ViewAnimation3dAction.this.application);
61 if (running)
62 {
63 this.application.getExperiment().getSimulator().start();
64 }
65 } catch (Exception exception)
66 {
67 Logger.warning(this, "actionPerformed", exception);
68 }
69 }
70 }