001/*
002 * Copyright (c) 2003-2010 The Regents of the University of California.
003 * All rights reserved.
004 *
005 * '$Author: berkley $'
006 * '$Date: 2010-04-28 00:12:36 +0000 (Wed, 28 Apr 2010) $' 
007 * '$Revision: 24000 $'
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.gui;
031
032import java.io.InputStream;
033
034import org.kepler.icon.IconMetadataHandler;
035import org.kepler.objectmanager.ActorMetadata;
036import org.kepler.objectmanager.InvalidMetadataException;
037
038import ptolemy.kernel.util.NamedObj;
039
040public class GraphicalActorMetadata extends ActorMetadata
041{
042        /**
043         * Constructor. Takes in xml metadata. This should be a moml entity with the
044         * kepler additional metadata properties. The entity is parsed and an
045         * ActorMetadata object is created with appropriate fields.
046         * 
047         * @param moml the xml metadata
048         */
049        public GraphicalActorMetadata(InputStream moml) throws InvalidMetadataException 
050  {
051    super(moml);
052    addGraphicalHandlers();
053  }
054  
055  /**
056         * builds a new ActorMetadata object from an existing NamedObj
057         * 
058         * @param am the ActorMetadata to build this object from.
059         */
060  public GraphicalActorMetadata(NamedObj obj)
061  {
062    super(obj);
063    addGraphicalHandlers();
064  }
065  
066  /**
067   * add the graphical handlers to the actormetadata object
068   */
069  public GraphicalActorMetadata(ActorMetadata am)
070    throws Exception
071  {
072    super((NamedObj)am.getActorAsNamedObj(null));
073    addGraphicalHandlers();
074  }
075  
076  /**
077   * add the handlers to add graphical elements to the actor
078   */
079  private void addGraphicalHandlers()
080  {
081    addMetadataHandler(new IconMetadataHandler());
082  }
083}