| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> |
| <html> |
| <head> |
| <!-- |
| |
| /****************************************************************************** |
| * Copyright (c) 2005 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| ****************************************************************************/ |
| |
| --> |
| </head> |
| <body> |
| |
| <P>This package contains the classes that define primary classes in the Element Type framework.</P> |
| |
| <P>{@link org.eclipse.gmf.runtime.emf.type.core.IElementType}s are used to |
| represent application types for the purpose of displaying and |
| editing model elements. These types are contributed by |
| extension point. A registry of such types, |
| ({@link org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry}) is |
| maintained, and can be used to find: |
| <UL> |
| <LI>The element type that best matches a given EObject, and</LI> |
| <LI>The element types that |
| can be contained in a given feature of a given EObject</LI> |
| </UL> |
| |
| <P>There are two kinds of element types, {@link org.eclipse.gmf.runtime.emf.type.core.IMetamodelType} and and |
| specializations of metmodel types, {@link org.eclipse.gmf.runtime.emf.type.core.ISpecializationType}.</P> |
| |
| <P>Each metamodel type defines the base icon, name |
| and editing behaviour for all elements with its EClass. Only one metamodel type can be registered for each EClass in a given metamodel. The |
| registry logs an error when an attempt is made to register a new metamodel type that |
| has the same EClass as a type that has already been registered. The second type |
| is rejected from the registry.</P> |
| |
| <P>Specializations of metamodel types |
| can define a new icon and name for their type, but can only contribute |
| behaviour 'before' or 'after' the base editing behaviour. They cannot replace the base |
| editing behaviour.</P> |
| |
| <P> Custom element types (which must be subtypes of metamodel or |
| specialization types) can be contributed to the registry using |
| a {@link org.eclipse.gmf.runtime.emf.type.core.IElementTypeFactory}. Custom element types |
| have arbitrary parameters specified by name and value pairs in XML.</P> |
| |
| <P> The {@link org.eclipse.gmf.runtime.emf.type.core.NullElementType} can be specialized when |
| an element type does not directly correspond to an EClass. Such specializations |
| will not have any default editing behaviour. Instead, they will only have the 'before' |
| and 'after' behaviour contributed by their edit helper advice. As well, the |
| ElementTypeRegistry will not find these specializations when asking for types |
| and advice that match an existing EObject. They will only be found when asking for |
| types and advice that match the specialization types themselves.</P> |
| |
| @see org.eclipse.gmf.runtime.emf.type.core.commands |
| @see org.eclipse.gmf.runtime.emf.type.core.edithelper |
| @see org.eclipse.gmf.runtime.emf.type.core.requests |
| |
| @see <p><a href="../../../../../../extension-points/org_eclipse_gmf_runtime_emf_type_core_elementTypes.html"><tt>org.eclipse.gmf.runtime.emf.type.core.elementTypes</tt></a> extension point</p> |
| |
| @canBeSeenBy %partners |
| |
| </body> |
| </html> |