001/*
002 * Copyright (c) 2005-2010 The Regents of the University of California.
003 * All rights reserved.
004 *
005 * '$Author: welker $'
006 * '$Date: 2010-05-06 05:21:26 +0000 (Thu, 06 May 2010) $' 
007 * '$Revision: 24234 $'
008 * 
009 * Permission is hereby granted, without written agreement and without
010 * license or royalty fees, to use, copy, modify, and distribute this
011 * software and its documentation for any purpose, provided that the above
012 * copyright notice and the following two paragraphs appear in all copies
013 * of this software.
014 *
015 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
016 * FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
017 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
018 * THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
019 * SUCH DAMAGE.
020 *
021 * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
022 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
023 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
024 * PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
025 * CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
026 * ENHANCEMENTS, OR MODIFICATIONS.
027 *
028 */
029
030package org.kepler.sms.gui;
031
032import java.awt.Frame;
033import java.awt.event.ActionEvent;
034
035import ptolemy.actor.gui.TableauFrame;
036import ptolemy.kernel.Entity;
037import ptolemy.kernel.util.NamedObj;
038import ptolemy.vergil.toolbox.FigureAction;
039
040public class AnnotateComponentAction extends FigureAction {
041
042        /**
043         * REQUIRED *****
044         * 
045         * Constructor
046         * 
047         * @param parent
048         *            the "frame" (derived from ptolemy.gui.Top) where the menu is
049         *            being added. NOTE this parameter is automatically passed to
050         *            your constructor by the menu system at runtime
051         */
052        public AnnotateComponentAction(TableauFrame parent) {
053                super("");
054                // this.parent = parent;
055                putValue("tooltip", "Configure Semantic Type of Component");
056        }
057
058        /**
059         * 
060         * Invoked when an action occurs.
061         * 
062         *@param e
063         *            ActionEvent
064         */
065        public void actionPerformed(ActionEvent e) {
066                super.actionPerformed(e);
067
068                NamedObj object = getTarget();
069
070                if (object instanceof Entity) {
071                        Entity entity = (Entity) object;
072                        Frame frame = getFrame();
073                        SemanticTypeEditor editor = new SemanticTypeEditor(frame, entity);
074                        editor.setVisible(true);
075                }
076        }
077
078} // AnnotateComponentAction