// $Id: AtomLabelRegistry.java,v 1.1 2006/05/20 17:02:02 Sasha Buzko Exp $ // // Copyright 2000-2004 The Regents of the University of California. // All Rights Reserved. // // Permission to use, copy, modify and distribute any part of this // Molecular Biology Toolkit (MBT) // for educational, research and non-profit purposes, without fee, and without // a written agreement is hereby granted, provided that the above copyright // notice, this paragraph and the following three paragraphs appear in all // copies. // // Those desiring to incorporate this MBT into commercial products // or use for commercial purposes should contact the Technology Transfer & // Intellectual Property Services, University of California, San Diego, 9500 // Gilman Drive, Mail Code 0910, La Jolla, CA 92093-0910, Ph: (858) 534-5815, // FAX: (858) 534-7345, E-MAIL:invent@ucsd.edu. // // IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR // DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING // LOST PROFITS, ARISING OUT OF THE USE OF THIS MBT, EVEN IF THE // UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // // THE MBT PROVIDED HEREIN IS ON AN "AS IS" BASIS, AND THE // UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, // UPDATES, ENHANCEMENTS, OR MODIFICATIONS. THE UNIVERSITY OF CALIFORNIA MAKES // NO REPRESENTATIONS AND EXTENDS NO WARRANTIES OF ANY KIND, EITHER IMPLIED OR // EXPRESS, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF // MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR THAT THE USE OF THE // MBT WILL NOT INFRINGE ANY PATENT, TRADEMARK OR OTHER RIGHTS. // // For further information, please see: http://mbt.sdsc.edu // // History: // $Log: AtomLabelRegistry.java,v $ // Revision 1.1 2006/05/20 17:02:02 Sasha Buzko // Updated version // // Revision 1.1 2006/04/30 20:13:57 Sasha Buzko // New version of the app // // Revision 1.1 2006/04/15 19:42:21 Sasha Buzko // Initial commit // // Revision 1.2 2005/11/13 23:44:35 Administrator // *** empty log message *** // // Revision 1.1 2005/11/13 04:35:14 Administrator // *** empty log message *** // // Revision 1.3 2004/04/09 00:12:52 moreland // Updated copyright to new UCSD wording. // // Revision 1.2 2004/01/29 17:53:39 moreland // Updated copyright and class comment block. // // Revision 1.1 2003/12/16 21:42:41 moreland // Added new style implementation classes. // // Revision 1.0 2003/12/15 23:38:39 moreland // First version. // package edu.sdsc.mbt.viewables; import java.util.Enumeration; import java.util.Hashtable; /** * A class used to register AtomLabel implementation objects. * The names of the AtomLabel objects can be retrieved and * used in a GUI menu in order for a user to pick the desired * AtomLabel algorithm. The retrieved AtomLabel object may then be * handed to a StructureStyle instance in order to assocate one * or more Atom representations to a given label scheme. *

* @author John L. Moreland * @see edu.sdsc.mbt.viewables.AtomLabel * @see edu.sdsc.mbt.viewables.StructureStyles */ public class AtomLabelRegistry { // The registered AtomLabel objects private static Hashtable atomLabelObjects = new Hashtable( ); // The default AtomLabel object name private static String defaultName = null; // Add the well-known AtomLabel implementation names. static { add( AtomLabelNone.NAME, AtomLabelNone.create() ); add( AtomLabelByAtomName.NAME, AtomLabelByAtomName.create() ); add( AtomLabelByAtomElement.NAME, AtomLabelByAtomElement.create() ); add( AtomLabelByAtomCompound.NAME, AtomLabelByAtomCompound.create() ); add( AtomLabelByChainId.NAME, AtomLabelByChainId.create() ); defaultName = AtomLabelNone.NAME; } // // Registration methods // /** * Return the number of registered AtomLabel impelementations. */ public static int count( ) { return atomLabelObjects.size( ); } /** * Return the name of the default AtomLabel impelementation. */ public static String getDefaultName( ) { return defaultName; } /** * Add a new AtomLabel implementation. */ public static void add( String name, AtomLabel atomLabel ) { atomLabelObjects.put( name, atomLabel ); } /** * Remove an existing AtomLabel implementation. */ public static void remove( String name ) { atomLabelObjects.remove( name ); } /** * Get an AtomLabel implementation by name. */ public static AtomLabel get( String name ) { return (AtomLabel) atomLabelObjects.get( name ); } /** * Get the default AtomLabel implementation. */ public static AtomLabel getDefault( ) { return (AtomLabel) atomLabelObjects.get( defaultName ); } /** * Return an Enumeration of String values for all registered * AtomLabel objects. */ public static Enumeration names( ) { return atomLabelObjects.keys( ); } }