1
2
3
4
5
6
7
8
9
10 package nl.tudelft.simulation.dsol.gui.menu.actions;
11
12 import java.awt.event.ActionEvent;
13 import java.awt.event.KeyEvent;
14
15 import javax.naming.NamingException;
16 import javax.naming.event.EventContext;
17 import javax.swing.AbstractAction;
18 import javax.swing.Action;
19 import javax.swing.KeyStroke;
20
21 import nl.tudelft.simulation.dsol.gui.DSOLApplicationInterface;
22 import nl.tudelft.simulation.dsol.gui.windows.ContextFrame;
23 import nl.tudelft.simulation.logger.Logger;
24 import nl.tudelft.simulation.naming.InitialEventContext;
25
26 /***
27 * The ViewContext action <br>
28 * (c) copyright 2002-2005 <a href="http://www.simulation.tudelft.nl">Delft
29 * University of Technology </a>, the Netherlands. <br>
30 * See for project information <a
31 * href="http://www.simulation.tudelft.nl">www.simulation.tudelft.nl </a> <br>
32 * License of use: <a href="http://www.gnu.org/copyleft/lesser.html">Lesser
33 * General Public License (LGPL) </a>, no warranty.
34 *
35 * @version $Revision$ $Date$
36 * @author <a href="http://www.tbm.tudelft.nl/webstaf/peterja">Peter Jacobs </a>
37 */
38 public class ViewContextAction extends AbstractAction
39 {
40 /*** the context */
41 private final EventContext context;
42
43 /*** application the application */
44 private DSOLApplicationInterface application = null;
45
46 /***
47 * constructs a new ViewContextAction
48 *
49 * @param application the application
50 * @throws NamingException on failure
51 */
52 public ViewContextAction(final DSOLApplicationInterface application)
53 throws NamingException
54 {
55 this(new InitialEventContext(), application);
56 }
57
58 /***
59 * constructs a new ViewContextAction
60 *
61 * @param context the specific context to view
62 * @param application the application
63 */
64 public ViewContextAction(final EventContext context,
65 final DSOLApplicationInterface application)
66 {
67 super("Context");
68 this.application = application;
69 this.putValue(Action.MNEMONIC_KEY, new Integer('C'));
70 this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(
71 KeyEvent.VK_F1, 0));
72 this.context = context;
73 }
74
75 /***
76 * @see java.awt.event.ActionListener
77 * #actionPerformed(java.awt.event.ActionEvent)
78 */
79 public void actionPerformed(final ActionEvent e)
80 {
81 try
82 {
83 boolean running = false;
84 try
85 {
86 if (this.application.getExperiment().getSimulator().isRunning())
87 {
88 running = true;
89 this.application.getExperiment().getSimulator().stop();
90 }
91 } catch (NullPointerException nullPointerException)
92 {
93
94 nullPointerException = null;
95 }
96 new ContextFrame(this.context);
97 if (running)
98 {
99 this.application.getExperiment().getSimulator().start();
100 }
101 } catch (Exception exception)
102 {
103 Logger.warning(this, "actionPerformed", exception);
104 }
105 }
106 }