View Javadoc

    1   /*
    2    * @(#) MenuBarActions.java 20-jul-2004
    3    *
    4    * Copyright (c) 2002-2005 Delft University of Technology Jaffalaan 5, 2628 BX
    5    * Delft, the Netherlands. All rights reserved.
    6    *
    7    * This software is proprietary information of Delft University of Technology
    8    * The code is published under the Lesser General Public License
    9    */
    10  package nl.tudelft.simulation.dsol.gui.editor2D.actions;
    11
    12  import java.awt.event.ActionEvent;
    13  import java.awt.event.ActionListener;
    14  import java.util.ArrayList;
    15  import java.util.Iterator;
    16  import java.util.List;
    17
    18  import javax.swing.JCheckBoxMenuItem;
    19  import javax.swing.SwingConstants;
    20
    21  import nl.tudelft.simulation.dsol.animation.Editable;
    22  import nl.tudelft.simulation.dsol.animation.D2.EditableRenderable2DInterface;
    23  import nl.tudelft.simulation.dsol.animation.D2.Renderable2DInterface;
    24  import nl.tudelft.simulation.dsol.gui.DSOLApplicationInterface;
    25  import nl.tudelft.simulation.dsol.gui.editor2D.EditableSaverInterface;
    26  import nl.tudelft.simulation.dsol.gui.editor2D.Editor2DPanel;
    27  import nl.tudelft.simulation.dsol.gui.editor2D.MenuBar;
    28  import nl.tudelft.simulation.logger.Logger;
    29
    30  /***
    31   * MenuBarActions.java <br>
    32   * (c) copyright 2002-2005 <a href="http://www.simulation.tudelft.nl">Delft
    33   * University of Technology </a>, the Netherlands. <br>
    34   * See for project information <a
    35   * href="http://www.simulation.tudelft.nl">www.simulation.tudelft.nl </a> <br>
    36   * License of use: <a href="http://www.gnu.org/copyleft/lesser.html">Lesser
    37   * General Public License (LGPL) </a>, no warranty.
    38   *
    39   * @version $Revision$ $Date$
    40   * @author <a href="http://www.tbm.tudelft.nl/webstaf/royc/index.htm">Roy Chin
    41   *         </a>
    42   */
    43  public class MenuBarActions implements ActionListener
    44  {
    45
    46  	/*** Menubar */
    47  	private MenuBar source = null;
    48
    49  	/*** The application */
    50  	private DSOLApplicationInterface application = null;
    51
    52  	/***
    53  	 * Constructor
    54  	 *
    55  	 * @param source Parent
    56  	 * @param application The application
    57  	 */
    58  	public MenuBarActions(final MenuBar source,
    59  			final DSOLApplicationInterface application)
    60  	{
    61  		super();
    62  		this.source = source;
    63  		this.application = application;
    64  	}
    65
    66  	/***
    67  	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
    68  	 */
    69  	public void actionPerformed(final ActionEvent event)
    70  	{
    71  		Object src = event.getSource();
    72  		if (src.equals(this.source.getExitItem()))
    73  		{
    74  			this.source.getParentFrame().setVisible(false);
    75  		} else if (src.equals(this.source.getSaveEditablesItem()))
    76  		{
    77  			try
    78  			{
    79  				// SAVE editables
    80  				// First find all editables
    81  				List editables = new ArrayList();
    82  				Editor2DPanel panel = this.source.getSource()
    83  						.getEditableAnimationPanel();
    84  				for (Iterator i = panel.getElements().iterator(); i.hasNext();)
    85  				{
    86  					Renderable2DInterface renderable = (Renderable2DInterface) i
    87  							.next();
    88  					if (renderable instanceof EditableRenderable2DInterface)
    89  					{
    90  						Editable editable = (Editable) renderable.getSource();
    91  						editables.add(editable);
    92  					}
    93  				}
    94  				// Now call the save method
    95  				String editableSaver = this.application.getProperties()
    96  						.getProperty("dsol-gui.editor2D.panel.editableSaver");
    97
    98  				if (editableSaver != null)
    99  				{
    100 					try
    101 					{
    102 						Class editableSaverClass = Class.forName(editableSaver);
    103 						EditableSaverInterface saver = (EditableSaverInterface) editableSaverClass
    104 								.newInstance();
    105 						saver.saveEditables(editables);
    106 					} catch (Exception exception)
    107 					{
    108 						Logger.warning(this, "actionPerformed", exception);
    109 					}
    110 				}
    111 			} catch (ClassCastException exception)
    112 			{
    113 				Logger.warning(this, "actionPerformed", exception);
    114 			}
    115 		} else if (src.equals(this.source.getNavigationItem()))
    116 		{
    117 			// Note: this code is currently not used because it
    118 			// did not work as expected.
    119 			JCheckBoxMenuItem item = (JCheckBoxMenuItem) src;
    120 			if (item.getState())
    121 			{
    122 				this.source.getParentFrame().addJToolBar(
    123 						this.source.getParentFrame().getNavigationToolbar(),
    124 						SwingConstants.TOP);
    125 			} else
    126 			{
    127 				this.source.getParentFrame().removeJToolBar(
    128 						this.source.getParentFrame().getNavigationToolbar());
    129 				this.source.getParentFrame().repaint();
    130 				this.source.getParentFrame().getContentPane().repaint();
    131 			}
    132 		}
    133
    134 	}
    135
    136 }