Share via


ElementGroupPrototype Class

Contains the information necessary to recreate a set of elements and links. Used to store elements in tools, on the clipboard, and in a drag operation.

Inheritance Hierarchy

System.Object
  Microsoft.VisualStudio.Modeling.ElementGroupPrototype

Namespace:  Microsoft.VisualStudio.Modeling
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.10.0 (in Microsoft.VisualStudio.Modeling.Sdk.10.0.dll)

Syntax

'Declaration
<SerializableAttribute> _
Public NotInheritable Class ElementGroupPrototype _
    Implements ISerializable, IDeserializationCallback
[SerializableAttribute]
public sealed class ElementGroupPrototype : ISerializable, 
    IDeserializationCallback
[SerializableAttribute]
public ref class ElementGroupPrototype sealed : ISerializable, 
    IDeserializationCallback
[<Sealed>]
[<SerializableAttribute>]
type ElementGroupPrototype =  
    class
        interface ISerializable
        interface IDeserializationCallback
    end
public final class ElementGroupPrototype implements ISerializable, IDeserializationCallback

The ElementGroupPrototype type exposes the following members.

Constructors

  Name Description
Public method ElementGroupPrototype(ElementGroup, IEnumerable<ModelElement>) Constructor
Public method ElementGroupPrototype(Partition, Guid) Constructor for taking a rool domain class Id. This is used to determine whether an element can be merged under an parent element.
Public method ElementGroupPrototype(Partition, ICollection<ModelElement>, ElementGroup) Constructor

Top

Properties

  Name Description
Public property ProtoElementLinks Gets collection of all ProtoElementLinks contained in the ElementGroupPrototype.
Public property ProtoElements Gets collection of all ProtoElements contained in the ElementGroupPrototype.
Public property RootProtoElements Gets collection of all root ProtoElements contained in the ElementGroupPrototype.
Public property SourceContext Returns this ElementGroupPrototype's source ElementGroupContext object
Public property SourceRootElementIds returns a read-only list of root element ids from the source context
Public property TargetContext Returns this ElementGroupPrototype's target ElementGroupContext object
Public property TargetRootElementIds returns a read-only list of root element ids from the target context
Public property TopLevelProtoGroup Prototype for the group this ElementGroupPrototype represents
Public property UserData The user-defined data object from the outer-most element group

Top

Methods

  Name Description
Public method CanCreateElementGroup(Partition) Can this prototype element group create a clone of the progenitor element group in the indicated partition?
Public method CanCreateElementGroup(Store) Can this prototype element group create a clone of the progenitor element group in the indicated store?
Public method CanCreateElementGroup(Partition, IElementPartitionMapper) Can this prototype element group create a clone of the progenitor element group in the indicated partition?
Public method CreateElementGroup(Partition) Create a clone of the progenitor element group
Public method CreateElementGroup(Store) Create a clone of the progenitor element group
Public method CreateElementGroup(Partition, IElementPartitionMapper) Create a clone of the progenitor element group
Public method Equals Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetObjectData Populate the serialization info with the data necessary to serialize this object.
Public method GetProtoElement Get the ProtoElement corresponding to the specified id.
Public method GetProtoLink Get the ProtoLink corresponding to the specified id.
Public method GetProtoLinks Returns an IList of ProtoLink objects that contain the passed ProtoElementBase playing in the passed DomainRoleId.
Public methodStatic member GetReconstitutedElement Returns the reconstituted ModelElement given the guid of the source ModelElement.
Public method GetSourceRootElementId Gets the id of the source root ModelElement that corresponds to the specified target root ModelElement id. If it was not found, Guid.Empty is returned.
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Public method IsInRole Returns true if the passed ProtoElementBase plays in the passed role in this ElementGroupPrototype.
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method ResolveProtoLinks Resolves the passed IList of ProtoLinks into the ProtoElements that play in the passed DomainRoleId.
Public method ToString() Returns a string that represents the current object. (Inherited from Object.)
Public method ToString(Partition) Dumps out the names of the Elements and ElementLinks in this ElementGroupPrototype, given the DomainClass definitions in the provided partition.

Top

Fields

  Name Description
Public fieldStatic member CreatingKey Key for context info search
Public fieldStatic member DefaultDataFormatName The default data format name for the ElementGroupPrototype.
Public fieldStatic member ElementGroupIdDictionary Key used in the TargetContext ElementGroupContext for the Element Id dictionary and root element (Id) lists.
Public fieldStatic member RootElementIdList Key used in the Source and Target Context ElementGroupContext for the RootElement Id list and root element (Id) lists.
Public fieldStatic member RootElementList Key used in the Source and Target Context ElementGroupContext for the RootElement list and root element lists.

Top

Explicit Interface Implementations

  Name Description
Explicit interface implemetationPrivate method IDeserializationCallback.OnDeserialization Deserialize the object when the graph is fully loaded

Top

Remarks

An ElementGroupPrototype (EGP) contains a pattern of elements and links, which can be used to create a new set of elements and links in a merge operation. During the merge, the EGP is used to create an ElementGroup, which is then linked into the elements in the target model.

EGPs are used for the following purposes:

  • To carry information in a drag operation;

  • To store information on the clipboard;

  • To store a pattern of objects in a toolbox.

For more information, see How to: Program Copy and Paste Behavior - redirect and How to: Add a Drag-and-Drop Handler.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Reference

Microsoft.VisualStudio.Modeling Namespace