Papyrus Banner

Alignment Tool

Introduction

Alignment Tool is available in the Papyrus toolbar:

Alignment allows to align the different objects of the model based on a reference object. The reference object is basically the last object selected (primary selection) and can be identified with the handles color:

Normal Selection Primary Selection


To implement Alignment, some rules have been defined.

General Rules

The Alignment Tools allows 6 types of alignment: Alignment Types

These types can be disable if the alignment is not possible. Here is the different rules on which the alignment is based:

  1. The alignment is available only if the selected object can be moved on the reference
  2. When an object and one or several children should be aligned on a third object, only the parent is aligned
  3. An object can only be aligned inside of its container's bounds.(In order to avoid scrollbar and invisible objects)
  4. An object cannot be aligned on one of its children.

Using of Alignment Tool

Here under, some examples of using of alignment tool.

General Case

Basically, alignment is used in order to make the model easier to be read and more aesthetic. To align objects:


  1. Example A: Standard alignment
    In this case the reference object is the right one.
  2. Example B: Parent alignment
    In this second example, the object (the Class ) is aligned on his parent (the Package), the unauthorized alignment appears disable (in grey)

Hierarchy

In this section, some examples of alignment in case of hierarchy between objects (parent / children).

  1. Example A: Only the parent is aligned
    As shown in the result screenshot below , only the parent (the Package) has been aligned.
  2. Example B: Alignment inside the Container bounds is available
    In the align options list, only the ones that keep the objects inside his container are enable.

Labels

In this section, some examples of labels alignments.

  1. Example A: Standard label alignment
  2. Example B: Dependency with another selected object
    As shown in the result screenshot below, only the class is aligned. The label moves according to the connection move.

Edges

Edges alignment could sound not realistic. Actually, edge alignment is an alignment between the extremities of the edge, to make the edge horizontal or vertical. Example: Standard edge alignment

The extremities are alignment in order to have an horizontal connection. The connection handles remained at the same place on the object

Limitation

This section will describe some limitations of the alignment tool.

Hierarchy

A parent cannot be aligned on one of his child:

Label

The extremities (source or target )of a connection cannot be aligned on any Labels of this connection.

Edge

To make the edge alignment available, the edge handles should correspond to the same direction (horizontal or vertical). In the following case, source handle is on TOP and target handle is on LEFT. it is then impossible to align the edge.