1. Requirements
2. Use Cases
   1. UseCreateMenu
      1. How to
   2. Create or modify ElementCreationModel
      1. How to
   3. Generate "ElementCreationModel" from a profile
   4. Hide, change order or add submenus
      1. How to
   5. Create or modify ElementCreationModel at runtime thanks to a GUI

# Requirements

AddNewChild (id=newChild001):
  Papyrus shall add in the menu new child for new customized elements by using extended type
HideElement (id=newChild002):
  Papyrus shall not display all UML or DSML element creation
newChildFromProfile (id=newChild003):
  Papyrus shall add the creation of new element from a subset of profile
newChildMenuDisplay (id=newChild004):
  Papyrus shall be able to associate icons to folder or creation menu
RoleAndElementCreation (id=newChild005):
  When an element can be created from several roles for a container, Papyrus shall let the possibility to choose the role or to let to the possibility to be created from all roles.

# Use Cases

## UseCreateMenu

The Papyrus User shall use this functionality from the model explorer in order to create elements in the model. He can decide to display or not this element creation.

### How to

In order to not display a menu, a user can edit the model that represents the creation menu and set the attribute visibility to false.

## Create or modify ElementCreationModel

An advanced User is able to create or modify creation menu. This menu is a model that can be edited

### How to

An advanced user can contribute to the menu by adding a new plugin that contains:

- a xmi file that represents a creation menu. The model must be an instance of org.eclipse.papyrus.infra.newchild/resource/elementCreationMenuModel.ecore. It contains
  - CreationMenu
    - It corresponds to a menu
    - The ElemenTypeIDRef corresponds a reference to the element Type.
    - The role can be filled in order to specify the role play by the element.
    - If displayAllRole is set to true, it displays all roles played by the element if the number of roles is greater than 1. By default this property is true;
  - Folder
    - It is possible to add owns label an icon.
  - Visibility to specify if the folder is visible.
- a reference to an extension point, to specify that papyrus must take in account this file to display the menu

    <extension
             point="org.eclipse.papyrus.infra.newchild">
          <menuCreationModel
                model="YourCreationMenu.xmi">
          </menuCreationModel>
    </extension>

In the following example, a menu creation for a package is presented. This menu is contained in the folder SimpleUMLTest. We have associated an image for this menu.

In this following example, a creation menu will be specified to allow creation of nested classifier. That 's why the role "nestedClassifier" is precised. The label for this creation is "nestedClass"

In the following example a creation menu is created for activities. In this case, all roles are displayed. Thanks to this, when we want to associate an activity to a state, 3 roles are proposed.

## Generate "ElementCreationModel" from a profile

From a stereotyped profile, a model of new child menu can be generated. For example a user after designing a profile, want to have a dedicated menu from this profile/ For the moment this function is not implemented.

## Hide, change order or add submenus

The User can modify the creation menu by adding submenus: order about new child menu, precise if the role must be displayed.

### How to

It only needed to change the order of element in the corresponding creation menu model

## Create or modify ElementCreationModel at runtime thanks to a GUI

A user can edit a the model that represents the creation menu at runtime for papyrus thanks to a dedicated UI. For the moment this function is not implemented.